From 37cb62b14f827bf2b89e36d9bf548f658161ce59 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 12 May 2010 22:22:46 -0400 Subject: [PATCH] Upgraded libvorbis from 1.0.1 to 1.3.1 and moved it to Dependencies. --- .../libvorbis}/AUTHORS | 0 Dependencies/libvorbis/CHANGES | 100 + .../libvorbis}/COPYING | 2 +- Dependencies/libvorbis/Makefile.am | 45 + Dependencies/libvorbis/Makefile.in | 774 + .../libvorbis}/README | 110 +- Dependencies/libvorbis/aclocal.m4 | 8921 +++++++ Dependencies/libvorbis/autogen.sh | 129 + Dependencies/libvorbis/compile | 142 + .../libvorbis}/config.guess | 645 +- Dependencies/libvorbis/config.h.in | 91 + .../libvorbis}/config.sub | 206 +- Dependencies/libvorbis/configure | 15651 ++++++++++++ .../libvorbis/configure.ac | 187 +- Dependencies/libvorbis/depcomp | 530 + .../libvorbis/doc/01-introduction.tex | 529 + Dependencies/libvorbis/doc/02-bitpacking.tex | 247 + Dependencies/libvorbis/doc/03-codebook.tex | 406 + Dependencies/libvorbis/doc/04-codec.tex | 661 + Dependencies/libvorbis/doc/05-comment.tex | 240 + Dependencies/libvorbis/doc/06-floor0.tex | 192 + Dependencies/libvorbis/doc/07-floor1.tex | 392 + Dependencies/libvorbis/doc/08-residue.tex | 452 + Dependencies/libvorbis/doc/09-helper.tex | 181 + Dependencies/libvorbis/doc/10-tables.tex | 77 + Dependencies/libvorbis/doc/Doxyfile.in | 1142 + Dependencies/libvorbis/doc/Makefile.am | 149 + Dependencies/libvorbis/doc/Makefile.in | 685 + Dependencies/libvorbis/doc/Vorbis_I_spec.cfg | 4 + Dependencies/libvorbis/doc/Vorbis_I_spec.css | 138 + Dependencies/libvorbis/doc/Vorbis_I_spec.html | 13722 ++++++++++ Dependencies/libvorbis/doc/Vorbis_I_spec.pdf | 8663 +++++++ Dependencies/libvorbis/doc/Vorbis_I_spec.tex | 132 + .../libvorbis/doc/a1-encapsulation-ogg.tex | 185 + .../libvorbis/doc/a2-encapsulation-rtp.tex | 9 + Dependencies/libvorbis/doc/components.png | Bin 0 -> 9741 bytes Dependencies/libvorbis/doc/eightphase.png | Bin 0 -> 11130 bytes Dependencies/libvorbis/doc/evenlsp.png | Bin 0 -> 2540 bytes Dependencies/libvorbis/doc/fish_xiph_org.png | Bin 0 -> 2503 bytes Dependencies/libvorbis/doc/floor1-1.png | Bin 0 -> 3420 bytes Dependencies/libvorbis/doc/floor1-2.png | Bin 0 -> 3752 bytes Dependencies/libvorbis/doc/floor1-3.png | Bin 0 -> 4627 bytes Dependencies/libvorbis/doc/floor1-4.png | Bin 0 -> 4163 bytes .../doc/floor1_inverse_dB_table.html | 120 +- Dependencies/libvorbis/doc/floorval.png | Bin 0 -> 2545 bytes Dependencies/libvorbis/doc/footer.tex | 33 + Dependencies/libvorbis/doc/fourphase.png | Bin 0 -> 9992 bytes Dependencies/libvorbis/doc/framing.html | 431 + Dependencies/libvorbis/doc/helper.html | 239 + Dependencies/libvorbis/doc/hufftree-under.png | Bin 0 -> 1206 bytes Dependencies/libvorbis/doc/hufftree.png | Bin 0 -> 1228 bytes Dependencies/libvorbis/doc/index.html | 114 + Dependencies/libvorbis/doc/lspmap.png | Bin 0 -> 3799 bytes Dependencies/libvorbis/doc/oddlsp.png | Bin 0 -> 1928 bytes Dependencies/libvorbis/doc/oggstream.html | 234 + Dependencies/libvorbis/doc/programming.html | 554 + Dependencies/libvorbis/doc/residue-pack.png | Bin 0 -> 32318 bytes Dependencies/libvorbis/doc/residue2.png | Bin 0 -> 20427 bytes Dependencies/libvorbis/doc/rfc5215.txt | 1459 ++ Dependencies/libvorbis/doc/rfc5215.xml | 1176 + Dependencies/libvorbis/doc/squarepolar.png | Bin 0 -> 8406 bytes .../libvorbis}/doc/stereo.html | 352 +- Dependencies/libvorbis/doc/stream.png | Bin 0 -> 2171 bytes Dependencies/libvorbis/doc/v-comment.html | 285 + .../libvorbis}/doc/vorbis-clip.txt | 0 .../libvorbis}/doc/vorbis-errors.txt | 0 .../libvorbis/doc/vorbis-fidelity.html | 180 + Dependencies/libvorbis/doc/vorbis.html | 234 + .../libvorbis/doc/vorbisenc/Makefile.am | 11 + .../libvorbis/doc/vorbisenc/Makefile.in | 393 + .../libvorbis/doc/vorbisenc/changes.html | 104 + .../libvorbis/doc/vorbisenc/examples.html | 133 + .../libvorbis}/doc/vorbisenc/index.html | 10 +- .../vorbisenc/ov_ectl_ratemanage2_arg.html | 92 + .../doc/vorbisenc/ov_ectl_ratemanage_arg.html | 92 + .../libvorbis/doc/vorbisenc/overview.html | 382 + .../libvorbis/doc/vorbisenc/reference.html | 74 + .../libvorbis}/doc/vorbisenc/style.css | 0 .../doc/vorbisenc/vorbis_encode_ctl.html | 183 + .../doc/vorbisenc/vorbis_encode_init.html | 20 +- .../doc/vorbisenc/vorbis_encode_init_vbr.html | 19 +- .../vorbisenc/vorbis_encode_setup_init.html | 88 + .../vorbis_encode_setup_managed.html | 102 + .../vorbisenc/vorbis_encode_setup_vbr.html | 90 + .../libvorbis}/doc/vorbisenc/vorbis_info.html | 45 +- .../libvorbis}/doc/vorbisfile/Makefile.am | 3 +- .../libvorbis/doc/vorbisfile/Makefile.in | 406 + .../doc/vorbisfile/OggVorbis_File.html | 52 +- .../libvorbis}/doc/vorbisfile/callbacks.html | 38 +- .../doc/vorbisfile/chaining_example_c.html | 90 + .../doc/vorbisfile/chainingexample.html | 51 +- .../libvorbis}/doc/vorbisfile/crosslap.html | 8 +- .../doc/vorbisfile/datastructures.html | 6 +- .../libvorbis}/doc/vorbisfile/decoding.html | 20 +- .../libvorbis}/doc/vorbisfile/example.html | 21 +- .../doc/vorbisfile/exampleindex.html | 6 +- .../libvorbis}/doc/vorbisfile/fileinfo.html | 6 +- .../libvorbis}/doc/vorbisfile/index.html | 6 +- .../doc/vorbisfile/initialization.html | 43 +- .../libvorbis}/doc/vorbisfile/ov_bitrate.html | 6 +- .../doc/vorbisfile/ov_bitrate_instant.html | 6 +- .../doc/vorbisfile/ov_callbacks.html | 117 + .../libvorbis}/doc/vorbisfile/ov_clear.html | 12 +- .../libvorbis}/doc/vorbisfile/ov_comment.html | 6 +- .../doc/vorbisfile/ov_crosslap.html | 10 +- .../libvorbis/doc/vorbisfile/ov_fopen.html | 124 + .../libvorbis}/doc/vorbisfile/ov_info.html | 6 +- .../libvorbis/doc/vorbisfile/ov_open.html | 183 + .../doc/vorbisfile/ov_open_callbacks.html | 147 + .../doc/vorbisfile/ov_pcm_seek.html | 6 +- .../doc/vorbisfile/ov_pcm_seek_lap.html | 6 +- .../doc/vorbisfile/ov_pcm_seek_page.html | 6 +- .../doc/vorbisfile/ov_pcm_seek_page_lap.html | 6 +- .../doc/vorbisfile/ov_pcm_tell.html | 6 +- .../doc/vorbisfile/ov_pcm_total.html | 8 +- .../doc/vorbisfile/ov_raw_seek.html | 6 +- .../doc/vorbisfile/ov_raw_seek_lap.html | 6 +- .../doc/vorbisfile/ov_raw_tell.html | 10 +- .../doc/vorbisfile/ov_raw_total.html | 8 +- .../libvorbis}/doc/vorbisfile/ov_read.html | 37 +- .../doc/vorbisfile/ov_read_float.html | 11 +- .../doc/vorbisfile/ov_seekable.html | 6 +- .../doc/vorbisfile/ov_serialnumber.html | 6 +- .../libvorbis}/doc/vorbisfile/ov_streams.html | 6 +- .../libvorbis}/doc/vorbisfile/ov_test.html | 22 +- .../doc/vorbisfile/ov_test_callbacks.html | 33 +- .../doc/vorbisfile/ov_test_open.html | 6 +- .../doc/vorbisfile/ov_time_seek.html | 6 +- .../doc/vorbisfile/ov_time_seek_lap.html | 6 +- .../doc/vorbisfile/ov_time_seek_page.html | 6 +- .../doc/vorbisfile/ov_time_seek_page_lap.html | 6 +- .../doc/vorbisfile/ov_time_tell.html | 6 +- .../doc/vorbisfile/ov_time_total.html | 8 +- .../libvorbis}/doc/vorbisfile/overview.html | 6 +- .../libvorbis}/doc/vorbisfile/reference.html | 9 +- .../libvorbis}/doc/vorbisfile/return.html | 6 +- .../doc/vorbisfile/seekexample.html | 27 +- .../libvorbis}/doc/vorbisfile/seeking.html | 6 +- .../doc/vorbisfile/seeking_example_c.html | 13 +- .../doc/vorbisfile/seeking_test_c.html | 13 +- .../doc/vorbisfile/seekingexample.html | 7 +- .../libvorbis}/doc/vorbisfile/style.css | 0 .../libvorbis}/doc/vorbisfile/threads.html | 6 +- .../doc/vorbisfile/vorbis_comment.html | 6 +- .../doc/vorbisfile/vorbis_info.html | 6 +- .../doc/vorbisfile/vorbisfile_example_c.html | 8 +- Dependencies/libvorbis/doc/vorbisword2.png | Bin 0 -> 1173 bytes Dependencies/libvorbis/doc/wait.png | Bin 0 -> 311 bytes Dependencies/libvorbis/doc/white-xifish.png | Bin 0 -> 770 bytes Dependencies/libvorbis/doc/window1.png | Bin 0 -> 1703 bytes Dependencies/libvorbis/doc/window2.png | Bin 0 -> 1601 bytes Dependencies/libvorbis/doc/xifish.pdf | Bin 0 -> 1876 bytes Dependencies/libvorbis/examples/Makefile.am | 34 + Dependencies/libvorbis/examples/Makefile.in | 524 + .../libvorbis}/examples/chaining_example.c | 29 +- .../libvorbis/examples/decoder_example.c | 314 + .../libvorbis}/examples/encoder_example.c | 111 +- Dependencies/libvorbis/examples/frameview.pl | 630 + .../libvorbis/examples/seeking_example.c | 259 + .../libvorbis}/examples/vorbisfile_example.c | 21 +- .../libvorbis}/include/Makefile.am | 2 - Dependencies/libvorbis/include/Makefile.in | 514 + .../libvorbis/include/vorbis/Makefile.am | 7 + .../libvorbis/include/vorbis/Makefile.in | 434 + .../libvorbis}/include/vorbis/codec.h | 51 +- .../libvorbis/include/vorbis/vorbisenc.h | 436 + .../libvorbis}/include/vorbis/vorbisfile.h | 89 +- Dependencies/libvorbis/install-sh | 323 + .../libvorbis}/lib/Makefile.am | 26 +- Dependencies/libvorbis/lib/Makefile.in | 765 + .../libvorbis}/lib/analysis.c | 79 +- .../libvorbis}/lib/backends.h | 47 +- .../libvorbis}/lib/barkmel.c | 20 +- Dependencies/libvorbis/lib/bitrate.c | 253 + .../libvorbis}/lib/bitrate.h | 61 +- .../libvorbis}/lib/block.c | 477 +- .../libvorbis}/lib/books/Makefile.am | 1 - Dependencies/libvorbis/lib/books/Makefile.in | 514 + .../libvorbis/lib/books/coupled/Makefile.am | 3 + .../libvorbis/lib/books/coupled/Makefile.in | 356 + .../lib/books/coupled/res_books_51.h | 12257 +++++++++ .../lib/books/coupled/res_books_stereo.h | 15783 ++++++++++++ .../libvorbis}/lib/books/floor/Makefile.am | 2 - .../libvorbis/lib/books/floor/Makefile.in | 356 + .../libvorbis/lib/books/floor/floor_books.h | 1547 ++ .../lib/books/uncoupled/Makefile.am | 2 - .../libvorbis/lib/books/uncoupled/Makefile.in | 356 + .../lib/books/uncoupled/res_books_uncoupled.h | 7758 ++++++ .../libvorbis}/lib/codebook.c | 471 +- Dependencies/libvorbis/lib/codebook.h | 119 + .../libvorbis}/lib/codec_internal.h | 53 +- .../libvorbis}/lib/envelope.c | 161 +- .../libvorbis}/lib/envelope.h | 7 +- .../libvorbis}/lib/floor0.c | 51 +- .../libvorbis}/lib/floor1.c | 929 +- .../libvorbis}/lib/highlevel.h | 32 +- .../libvorbis}/lib/info.c | 246 +- .../libvorbis}/lib/lookup.c | 14 +- .../libvorbis}/lib/lookup.h | 8 +- Dependencies/libvorbis/lib/lookup_data.h | 192 + .../libvorbis}/lib/lookups.pl | 6 +- .../libvorbis}/lib/lpc.c | 53 +- .../libvorbis}/lib/lpc.h | 8 +- .../libvorbis}/lib/lsp.c | 111 +- .../libvorbis}/lib/lsp.h | 12 +- Dependencies/libvorbis/lib/mapping0.c | 816 + Dependencies/libvorbis/lib/masking.h | 785 + .../libvorbis}/lib/mdct.c | 347 +- .../libvorbis}/lib/mdct.h | 20 +- .../libvorbis}/lib/misc.h | 23 +- .../libvorbis}/lib/modes/Makefile.am | 4 +- Dependencies/libvorbis/lib/modes/Makefile.in | 360 + .../libvorbis}/lib/modes/floor_all.h | 186 +- .../libvorbis}/lib/modes/psych_11.h | 20 +- .../libvorbis}/lib/modes/psych_16.h | 42 +- .../libvorbis}/lib/modes/psych_44.h | 462 +- .../libvorbis}/lib/modes/psych_8.h | 31 +- .../libvorbis}/lib/modes/residue_16.h | 68 +- .../libvorbis}/lib/modes/residue_44.h | 182 +- .../libvorbis/lib/modes/residue_44p51.h | 451 + .../libvorbis}/lib/modes/residue_44u.h | 144 +- .../libvorbis}/lib/modes/residue_8.h | 58 +- .../libvorbis}/lib/modes/setup_11.h | 44 +- .../libvorbis}/lib/modes/setup_16.h | 54 +- .../libvorbis}/lib/modes/setup_22.h | 46 +- .../libvorbis/lib/modes/setup_32.h | 93 +- Dependencies/libvorbis/lib/modes/setup_44.h | 117 + .../libvorbis/lib/modes/setup_44p51.h | 74 + Dependencies/libvorbis/lib/modes/setup_44u.h | 74 + .../libvorbis}/lib/modes/setup_8.h | 53 +- .../libvorbis}/lib/modes/setup_X.h | 166 +- .../libvorbis}/lib/os.h | 79 +- Dependencies/libvorbis/lib/psy.c | 1195 + .../libvorbis}/lib/psy.h | 93 +- .../libvorbis}/lib/psytune.c | 411 +- .../libvorbis}/lib/registry.c | 25 +- .../libvorbis}/lib/registry.h | 12 +- .../libvorbis}/lib/res0.c | 708 +- .../libvorbis}/lib/scales.h | 52 +- .../libvorbis}/lib/sharedbook.c | 523 +- .../libvorbis}/lib/smallft.c | 35 +- .../libvorbis}/lib/smallft.h | 6 +- .../libvorbis}/lib/synthesis.c | 52 +- .../libvorbis}/lib/tone.c | 8 +- Dependencies/libvorbis/lib/vorbisenc.c | 1215 + .../libvorbis}/lib/vorbisfile.c | 1818 +- Dependencies/libvorbis/lib/window.c | 2135 ++ .../libvorbis}/lib/window.h | 6 +- .../libvorbis}/libvorbis.spec | 37 +- Dependencies/libvorbis/libvorbis.spec.in | 121 + Dependencies/libvorbis/ltmain.sh | 8413 +++++++ .../libvorbis/m4}/Makefile.am | 3 +- Dependencies/libvorbis/m4/Makefile.in | 356 + Dependencies/libvorbis/m4/add_cflags.m4 | 15 + .../libvorbis/m4/ogg.m4 | 38 +- Dependencies/libvorbis/m4/pkg.m4 | 157 + Dependencies/libvorbis/macos/compat/strdup.c | 21 + .../libvorbis/macos/compat/sys/types.h | 1 + .../libvorbis}/macos/decoder_example.mcp | Bin .../libvorbis}/macos/encoder_example.mcp | Bin .../libvorbis}/macos/libvorbis.mcp | Bin .../libvorbis}/macos/libvorbis.mcp.exp | 0 .../libvorbis}/macos/libvorbisenc.mcp | Bin .../libvorbis}/macos/libvorbisenc.mcp.exp | 0 .../libvorbis}/macos/libvorbisfile.mcp | Bin .../libvorbis}/macos/libvorbisfile.mcp.exp | 0 .../libvorbis}/macos/vorbis.mcp | Bin .../macosx/English.lproj/InfoPlist.strings | Bin 0 -> 142 bytes Dependencies/libvorbis/macosx/Info.plist | 30 + .../macosx/Vorbis.xcodeproj/project.pbxproj | 891 + Dependencies/libvorbis/missing | 360 + Dependencies/libvorbis/symbian/bld.inf | 35 + Dependencies/libvorbis/symbian/config.h | 54 + Dependencies/libvorbis/symbian/vorbis.mmp | 43 + Dependencies/libvorbis/test/Makefile.am | 19 + Dependencies/libvorbis/test/Makefile.in | 478 + Dependencies/libvorbis/test/test.c | 100 + Dependencies/libvorbis/test/util.c | 53 + Dependencies/libvorbis/test/util.h | 24 + Dependencies/libvorbis/test/write_read.c | 298 + Dependencies/libvorbis/test/write_read.h | 28 + .../libvorbis}/todo.txt | 4 +- .../libvorbis/vorbis-uninstalled.pc.in | 14 + .../libvorbis}/vorbis.m4 | 32 +- .../libvorbis}/vorbis.pc.in | 0 .../libvorbis/vorbisenc-uninstalled.pc.in | 14 + .../libvorbis}/vorbisenc.pc.in | 0 .../libvorbis/vorbisfile-uninstalled.pc.in | 14 + .../libvorbis}/vorbisfile.pc.in | 0 Dependencies/libvorbis/vq/16.vqs | 74 + Dependencies/libvorbis/vq/16u.vqs | 69 + Dependencies/libvorbis/vq/44c-1.vqs | 63 + Dependencies/libvorbis/vq/44c0.vqs | 65 + Dependencies/libvorbis/vq/44c1.vqs | 66 + Dependencies/libvorbis/vq/44c2.vqs | 37 + Dependencies/libvorbis/vq/44c3.vqs | 36 + Dependencies/libvorbis/vq/44c4.vqs | 36 + Dependencies/libvorbis/vq/44c5.vqs | 37 + Dependencies/libvorbis/vq/44c6.vqs | 37 + Dependencies/libvorbis/vq/44c7.vqs | 38 + Dependencies/libvorbis/vq/44c8.vqs | 39 + Dependencies/libvorbis/vq/44c9.vqs | 37 + Dependencies/libvorbis/vq/44p-1.vqs | 49 + Dependencies/libvorbis/vq/44p0.vqs | 49 + Dependencies/libvorbis/vq/44p1.vqs | 49 + Dependencies/libvorbis/vq/44p2.vqs | 52 + Dependencies/libvorbis/vq/44p3.vqs | 52 + Dependencies/libvorbis/vq/44p4.vqs | 52 + Dependencies/libvorbis/vq/44p5.vqs | 52 + Dependencies/libvorbis/vq/44p6.vqs | 52 + Dependencies/libvorbis/vq/44p7.vqs | 52 + Dependencies/libvorbis/vq/44p8.vqs | 52 + Dependencies/libvorbis/vq/44p9.vqs | 52 + Dependencies/libvorbis/vq/44u0.vqs | 33 + Dependencies/libvorbis/vq/44u1.vqs | 33 + Dependencies/libvorbis/vq/44u2.vqs | 32 + Dependencies/libvorbis/vq/44u3.vqs | 33 + Dependencies/libvorbis/vq/44u4.vqs | 33 + Dependencies/libvorbis/vq/44u5.vqs | 35 + Dependencies/libvorbis/vq/44u6.vqs | 35 + Dependencies/libvorbis/vq/44u7.vqs | 34 + Dependencies/libvorbis/vq/44u8.vqs | 35 + Dependencies/libvorbis/vq/44u9.vqs | 36 + Dependencies/libvorbis/vq/8.vqs | 43 + Dependencies/libvorbis/vq/8u.vqs | 41 + Dependencies/libvorbis/vq/Makefile.am | 37 + Dependencies/libvorbis/vq/Makefile.in | 522 + Dependencies/libvorbis/vq/bookutil.c | 477 + .../libvorbis}/vq/bookutil.h | 6 +- .../libvorbis}/vq/distribution.c | 194 +- Dependencies/libvorbis/vq/floor_11.vqs | 10 + Dependencies/libvorbis/vq/floor_22.vqs | 27 + Dependencies/libvorbis/vq/floor_44.vqs | 83 + .../libvorbis}/vq/huffbuild.c | 53 +- .../libvorbis}/vq/latticebuild.c | 14 +- .../libvorbis}/vq/latticetune.c | 36 +- .../libvorbis/vq/localcodebook.h | 75 +- Dependencies/libvorbis/vq/make_floor_books.pl | 108 + .../libvorbis/vq/make_residue_books.pl | 177 + Dependencies/libvorbis/vq/metrics.c | 295 + .../libvorbis}/vq/vqgen.c | 216 +- .../libvorbis}/vq/vqgen.h | 10 +- Dependencies/libvorbis/win32/VS2005/README | 16 + .../libvorbis/win32/VS2005/libogg.vsprops | 19 + .../VS2005/libvorbis/libvorbis_dynamic.vcproj | 348 + .../VS2005/libvorbis/libvorbis_static.vcproj | 336 + .../libvorbisfile_dynamic.vcproj | 108 + .../libvorbisfile/libvorbisfile_static.vcproj | 96 + .../libvorbis/win32/VS2005/vorbis_dynamic.sln | 92 + .../libvorbis/win32/VS2005/vorbis_static.sln | 92 + .../VS2005/vorbisdec/vorbisdec_dynamic.vcproj | 106 + .../VS2005/vorbisdec/vorbisdec_static.vcproj | 106 + .../VS2005/vorbisenc/vorbisenc_dynamic.vcproj | 106 + .../VS2005/vorbisenc/vorbisenc_static.vcproj | 106 + Dependencies/libvorbis/win32/VS2008/README | 16 + .../libvorbis/win32/VS2008/libogg.vsprops | 19 + .../VS2008/libvorbis/libvorbis_dynamic.vcproj | 348 + .../VS2008/libvorbis/libvorbis_static.vcproj | 336 + .../libvorbisfile_dynamic.vcproj | 108 + .../libvorbisfile/libvorbisfile_static.vcproj | 96 + .../libvorbis/win32/VS2008/vorbis_dynamic.sln | 92 + .../libvorbis/win32/VS2008/vorbis_static.sln | 92 + .../VS2008/vorbisdec/vorbisdec_dynamic.vcproj | 106 + .../VS2008/vorbisdec/vorbisdec_static.vcproj | 106 + .../VS2008/vorbisenc/vorbisenc_dynamic.vcproj | 106 + .../VS2008/vorbisenc/vorbisenc_static.vcproj | 106 + .../libvorbis}/win32/vorbis.def | 9 +- .../libvorbis}/win32/vorbisenc.def | 2 +- .../libvorbis}/win32/vorbisfile.def | 3 +- libvorbis-1.0.1/HACKING | 48 - libvorbis-1.0.1/Makefile.am | 24 - libvorbis-1.0.1/Makefile.in | 434 - libvorbis-1.0.1/aclocal.m4 | 6990 ------ libvorbis-1.0.1/autogen.sh | 75 - libvorbis-1.0.1/configure | 20939 ---------------- libvorbis-1.0.1/debian/Makefile.am | 7 - libvorbis-1.0.1/debian/Makefile.in | 212 - libvorbis-1.0.1/debian/changelog | 109 - libvorbis-1.0.1/debian/control | 60 - libvorbis-1.0.1/debian/copyright | 38 - libvorbis-1.0.1/debian/libvorbis-dev.docs | 1 - libvorbis-1.0.1/debian/libvorbis-dev.examples | 2 - libvorbis-1.0.1/debian/libvorbis-dev.install | 16 - libvorbis-1.0.1/debian/libvorbis0a.install | 1 - libvorbis-1.0.1/debian/libvorbisenc2.install | 1 - libvorbis-1.0.1/debian/libvorbisfile3.install | 1 - libvorbis-1.0.1/debian/rules | 154 - libvorbis-1.0.1/doc/Makefile.am | 94 - libvorbis-1.0.1/doc/Makefile.in | 373 - libvorbis-1.0.1/doc/Vorbis_I_spec.html | 2271 -- libvorbis-1.0.1/doc/Vorbis_I_spec.pdf | Bin 350026 -> 0 bytes libvorbis-1.0.1/doc/components.png | Bin 10464 -> 0 bytes .../doc/draft-kerr-avt-vorbis-rtp-02.txt | 1022 - libvorbis-1.0.1/doc/eightphase.png | Bin 10445 -> 0 bytes libvorbis-1.0.1/doc/evenlsp.png | Bin 2779 -> 0 bytes libvorbis-1.0.1/doc/floor1-1.png | Bin 3660 -> 0 bytes libvorbis-1.0.1/doc/floor1-2.png | Bin 3977 -> 0 bytes libvorbis-1.0.1/doc/floor1-3.png | Bin 4959 -> 0 bytes libvorbis-1.0.1/doc/floor1-4.png | Bin 4440 -> 0 bytes libvorbis-1.0.1/doc/floorval.png | Bin 2767 -> 0 bytes libvorbis-1.0.1/doc/fourphase.png | Bin 9718 -> 0 bytes libvorbis-1.0.1/doc/framing.html | 395 - libvorbis-1.0.1/doc/helper.html | 196 - libvorbis-1.0.1/doc/hufftree-under.png | Bin 1412 -> 0 bytes libvorbis-1.0.1/doc/hufftree.png | Bin 1437 -> 0 bytes libvorbis-1.0.1/doc/index.html | 76 - libvorbis-1.0.1/doc/lspmap.png | Bin 4330 -> 0 bytes libvorbis-1.0.1/doc/oddlsp.png | Bin 2141 -> 0 bytes libvorbis-1.0.1/doc/oggstream.html | 196 - libvorbis-1.0.1/doc/programming.html | 502 - libvorbis-1.0.1/doc/residue-pack.png | Bin 35241 -> 0 bytes libvorbis-1.0.1/doc/residue2.png | Bin 21388 -> 0 bytes libvorbis-1.0.1/doc/squarepolar.png | Bin 8156 -> 0 bytes libvorbis-1.0.1/doc/stream.png | Bin 2327 -> 0 bytes libvorbis-1.0.1/doc/v-comment.html | 231 - libvorbis-1.0.1/doc/vorbis-fidelity.html | 142 - libvorbis-1.0.1/doc/vorbis.html | 197 - libvorbis-1.0.1/doc/vorbisenc/Makefile.am | 11 - libvorbis-1.0.1/doc/vorbisenc/Makefile.in | 238 - libvorbis-1.0.1/doc/vorbisenc/overview.html | 58 - libvorbis-1.0.1/doc/vorbisenc/reference.html | 41 - .../doc/vorbisenc/vorbis_encode_ctl.html | 67 - libvorbis-1.0.1/doc/vorbisfile/Makefile.in | 238 - .../doc/vorbisfile/chaining_example_c.html | 86 - .../doc/vorbisfile/ov_callbacks.html | 78 - libvorbis-1.0.1/doc/vorbisfile/ov_open.html | 115 - .../doc/vorbisfile/ov_open_callbacks.html | 110 - libvorbis-1.0.1/doc/vorbisword2.png | Bin 1394 -> 0 bytes libvorbis-1.0.1/doc/wait.png | Bin 455 -> 0 bytes libvorbis-1.0.1/doc/white-ogg.png | Bin 1422 -> 0 bytes libvorbis-1.0.1/doc/white-xifish.png | Bin 965 -> 0 bytes libvorbis-1.0.1/doc/window1.png | Bin 1953 -> 0 bytes libvorbis-1.0.1/doc/window2.png | Bin 1882 -> 0 bytes libvorbis-1.0.1/examples/Makefile.am | 27 - libvorbis-1.0.1/examples/Makefile.in | 392 - libvorbis-1.0.1/examples/decoder_example.c | 307 - libvorbis-1.0.1/examples/seeking_example.c | 217 - libvorbis-1.0.1/include/Makefile.in | 315 - libvorbis-1.0.1/include/vorbis/Makefile.am | 9 - libvorbis-1.0.1/include/vorbis/Makefile.in | 258 - libvorbis-1.0.1/include/vorbis/vorbisenc.h | 93 - libvorbis-1.0.1/install-sh | 269 - libvorbis-1.0.1/lib/Makefile.in | 554 - libvorbis-1.0.1/lib/bitrate.c | 531 - libvorbis-1.0.1/lib/books/Makefile.in | 314 - libvorbis-1.0.1/lib/books/coupled/Makefile.in | 211 - .../lib/books/coupled/res_books_stereo.h | 19080 -------------- libvorbis-1.0.1/lib/books/floor/Makefile.in | 211 - libvorbis-1.0.1/lib/books/floor/floor_books.h | 1455 -- .../lib/books/uncoupled/Makefile.in | 211 - .../lib/books/uncoupled/res_books_uncoupled.h | 10907 -------- libvorbis-1.0.1/lib/lookup_data.h | 189 - libvorbis-1.0.1/lib/mapping0.c | 763 - libvorbis-1.0.1/lib/masking.h | 785 - libvorbis-1.0.1/lib/modes/Makefile.in | 212 - libvorbis-1.0.1/lib/modes/setup_32.h | 246 - libvorbis-1.0.1/lib/modes/setup_44.h | 176 - libvorbis-1.0.1/lib/psy.c | 1148 - libvorbis-1.0.1/lib/vorbisenc.c | 1134 - libvorbis-1.0.1/lib/window.c | 2136 -- libvorbis-1.0.1/ltmain.sh | 6343 ----- libvorbis-1.0.1/macos/compat/strdup.c | 21 - libvorbis-1.0.1/macos/compat/sys/types.h | 1 - .../macosx/English.lproj/InfoPlist.strings | Bin 546 -> 0 bytes .../macosx/vorbis.pbproj/project.pbxproj | 1200 - libvorbis-1.0.1/missing | 198 - libvorbis-1.0.1/mkinstalldirs | 40 - libvorbis-1.0.1/vq/Makefile.am | 36 - libvorbis-1.0.1/vq/Makefile.in | 386 - libvorbis-1.0.1/vq/auxpartition.pl | 71 - libvorbis-1.0.1/vq/bookutil.c | 717 - libvorbis-1.0.1/vq/latticehint.c | 430 - libvorbis-1.0.1/vq/latticepare.c | 595 - libvorbis-1.0.1/vq/residue_entropy | 58 - libvorbis-1.0.1/vq/vqsplit.c | 612 - libvorbis-1.0.1/win32/Makefile.am | 14 - libvorbis-1.0.1/win32/Makefile.in | 212 - .../win32/build_vorbis_dynamic.bat | 19 - .../win32/build_vorbis_dynamic_debug.bat | 19 - libvorbis-1.0.1/win32/build_vorbis_static.bat | 19 - .../win32/build_vorbis_static_debug.bat | 19 - .../win32/build_vorbisenc_dynamic.bat | 19 - .../win32/build_vorbisenc_dynamic_debug.bat | 19 - .../win32/build_vorbisenc_static.bat | 19 - .../win32/build_vorbisenc_static_debug.bat | 19 - .../win32/build_vorbisfile_dynamic.bat | 19 - .../win32/build_vorbisfile_dynamic_debug.bat | 19 - .../win32/build_vorbisfile_static.bat | 19 - .../win32/build_vorbisfile_static_debug.bat | 19 - libvorbis-1.0.1/win32/vorbis.dsw | 101 - libvorbis-1.0.1/win32/vorbis_dynamic.dsp | 281 - libvorbis-1.0.1/win32/vorbis_static.dsp | 257 - libvorbis-1.0.1/win32/vorbisenc_dynamic.dsp | 121 - libvorbis-1.0.1/win32/vorbisenc_static.dsp | 100 - libvorbis-1.0.1/win32/vorbisfile_dynamic.dsp | 119 - libvorbis-1.0.1/win32/vorbisfile_static.dsp | 100 - 496 files changed, 137743 insertions(+), 95900 deletions(-) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/AUTHORS (100%) create mode 100644 Dependencies/libvorbis/CHANGES rename {libvorbis-1.0.1 => Dependencies/libvorbis}/COPYING (97%) create mode 100644 Dependencies/libvorbis/Makefile.am create mode 100644 Dependencies/libvorbis/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/README (60%) create mode 100644 Dependencies/libvorbis/aclocal.m4 create mode 100755 Dependencies/libvorbis/autogen.sh create mode 100755 Dependencies/libvorbis/compile rename {libvorbis-1.0.1 => Dependencies/libvorbis}/config.guess (82%) create mode 100644 Dependencies/libvorbis/config.h.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/config.sub (88%) create mode 100755 Dependencies/libvorbis/configure rename libvorbis-1.0.1/configure.in => Dependencies/libvorbis/configure.ac (53%) create mode 100755 Dependencies/libvorbis/depcomp create mode 100644 Dependencies/libvorbis/doc/01-introduction.tex create mode 100644 Dependencies/libvorbis/doc/02-bitpacking.tex create mode 100644 Dependencies/libvorbis/doc/03-codebook.tex create mode 100644 Dependencies/libvorbis/doc/04-codec.tex create mode 100644 Dependencies/libvorbis/doc/05-comment.tex create mode 100644 Dependencies/libvorbis/doc/06-floor0.tex create mode 100644 Dependencies/libvorbis/doc/07-floor1.tex create mode 100644 Dependencies/libvorbis/doc/08-residue.tex create mode 100644 Dependencies/libvorbis/doc/09-helper.tex create mode 100644 Dependencies/libvorbis/doc/10-tables.tex create mode 100644 Dependencies/libvorbis/doc/Doxyfile.in create mode 100644 Dependencies/libvorbis/doc/Makefile.am create mode 100644 Dependencies/libvorbis/doc/Makefile.in create mode 100644 Dependencies/libvorbis/doc/Vorbis_I_spec.cfg create mode 100644 Dependencies/libvorbis/doc/Vorbis_I_spec.css create mode 100644 Dependencies/libvorbis/doc/Vorbis_I_spec.html create mode 100644 Dependencies/libvorbis/doc/Vorbis_I_spec.pdf create mode 100644 Dependencies/libvorbis/doc/Vorbis_I_spec.tex create mode 100644 Dependencies/libvorbis/doc/a1-encapsulation-ogg.tex create mode 100644 Dependencies/libvorbis/doc/a2-encapsulation-rtp.tex create mode 100644 Dependencies/libvorbis/doc/components.png create mode 100644 Dependencies/libvorbis/doc/eightphase.png create mode 100644 Dependencies/libvorbis/doc/evenlsp.png create mode 100644 Dependencies/libvorbis/doc/fish_xiph_org.png create mode 100644 Dependencies/libvorbis/doc/floor1-1.png create mode 100644 Dependencies/libvorbis/doc/floor1-2.png create mode 100644 Dependencies/libvorbis/doc/floor1-3.png create mode 100644 Dependencies/libvorbis/doc/floor1-4.png rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/floor1_inverse_dB_table.html (71%) create mode 100644 Dependencies/libvorbis/doc/floorval.png create mode 100644 Dependencies/libvorbis/doc/footer.tex create mode 100644 Dependencies/libvorbis/doc/fourphase.png create mode 100644 Dependencies/libvorbis/doc/framing.html create mode 100644 Dependencies/libvorbis/doc/helper.html create mode 100644 Dependencies/libvorbis/doc/hufftree-under.png create mode 100644 Dependencies/libvorbis/doc/hufftree.png create mode 100644 Dependencies/libvorbis/doc/index.html create mode 100644 Dependencies/libvorbis/doc/lspmap.png create mode 100644 Dependencies/libvorbis/doc/oddlsp.png create mode 100644 Dependencies/libvorbis/doc/oggstream.html create mode 100644 Dependencies/libvorbis/doc/programming.html create mode 100644 Dependencies/libvorbis/doc/residue-pack.png create mode 100644 Dependencies/libvorbis/doc/residue2.png create mode 100755 Dependencies/libvorbis/doc/rfc5215.txt create mode 100755 Dependencies/libvorbis/doc/rfc5215.xml create mode 100644 Dependencies/libvorbis/doc/squarepolar.png rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/stereo.html (52%) create mode 100644 Dependencies/libvorbis/doc/stream.png create mode 100644 Dependencies/libvorbis/doc/v-comment.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbis-clip.txt (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbis-errors.txt (100%) create mode 100644 Dependencies/libvorbis/doc/vorbis-fidelity.html create mode 100644 Dependencies/libvorbis/doc/vorbis.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/Makefile.am create mode 100644 Dependencies/libvorbis/doc/vorbisenc/Makefile.in create mode 100644 Dependencies/libvorbis/doc/vorbisenc/changes.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/examples.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisenc/index.html (68%) create mode 100644 Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage2_arg.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage_arg.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/overview.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/reference.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisenc/style.css (100%) create mode 100644 Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_ctl.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisenc/vorbis_encode_init.html (71%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisenc/vorbis_encode_init_vbr.html (67%) create mode 100644 Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_init.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_managed.html create mode 100644 Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_vbr.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisenc/vorbis_info.html (58%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/Makefile.am (97%) create mode 100644 Dependencies/libvorbis/doc/vorbisfile/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/OggVorbis_File.html (61%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/callbacks.html (72%) create mode 100644 Dependencies/libvorbis/doc/vorbisfile/chaining_example_c.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/chainingexample.html (73%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/crosslap.html (94%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/datastructures.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/decoding.html (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/example.html (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/exampleindex.html (81%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/fileinfo.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/index.html (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/initialization.html (59%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_bitrate.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_bitrate_instant.html (88%) create mode 100644 Dependencies/libvorbis/doc/vorbisfile/ov_callbacks.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_clear.html (57%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_comment.html (88%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_crosslap.html (90%) create mode 100644 Dependencies/libvorbis/doc/vorbisfile/ov_fopen.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_info.html (89%) create mode 100644 Dependencies/libvorbis/doc/vorbisfile/ov_open.html create mode 100644 Dependencies/libvorbis/doc/vorbisfile/ov_open_callbacks.html rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_seek.html (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_seek_lap.html (93%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_seek_page.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_seek_page_lap.html (94%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_tell.html (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_pcm_total.html (84%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_raw_seek.html (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_raw_seek_lap.html (93%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_raw_tell.html (67%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_raw_total.html (87%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_read.html (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_read_float.html (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_seekable.html (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_serialnumber.html (88%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_streams.html (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_test.html (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_test_callbacks.html (63%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_test_open.html (89%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_seek.html (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_seek_lap.html (93%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_seek_page.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_seek_page_lap.html (94%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_tell.html (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/ov_time_total.html (84%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/overview.html (88%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/reference.html (87%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/return.html (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/seekexample.html (78%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/seeking.html (93%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/seeking_example_c.html (80%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/seeking_test_c.html (80%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/seekingexample.html (94%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/style.css (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/threads.html (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/vorbis_comment.html (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/vorbis_info.html (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/doc/vorbisfile/vorbisfile_example_c.html (88%) create mode 100644 Dependencies/libvorbis/doc/vorbisword2.png create mode 100644 Dependencies/libvorbis/doc/wait.png create mode 100644 Dependencies/libvorbis/doc/white-xifish.png create mode 100644 Dependencies/libvorbis/doc/window1.png create mode 100644 Dependencies/libvorbis/doc/window2.png create mode 100644 Dependencies/libvorbis/doc/xifish.pdf create mode 100644 Dependencies/libvorbis/examples/Makefile.am create mode 100644 Dependencies/libvorbis/examples/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/examples/chaining_example.c (76%) create mode 100644 Dependencies/libvorbis/examples/decoder_example.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/examples/encoder_example.c (78%) create mode 100755 Dependencies/libvorbis/examples/frameview.pl create mode 100644 Dependencies/libvorbis/examples/seeking_example.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/examples/vorbisfile_example.c (80%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/include/Makefile.am (73%) create mode 100644 Dependencies/libvorbis/include/Makefile.in create mode 100644 Dependencies/libvorbis/include/vorbis/Makefile.am create mode 100644 Dependencies/libvorbis/include/vorbis/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/include/vorbis/codec.h (86%) create mode 100644 Dependencies/libvorbis/include/vorbis/vorbisenc.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/include/vorbis/vorbisfile.h (60%) create mode 100755 Dependencies/libvorbis/install-sh rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/Makefile.am (68%) create mode 100644 Dependencies/libvorbis/lib/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/analysis.c (71%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/backends.h (80%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/barkmel.c (71%) create mode 100644 Dependencies/libvorbis/lib/bitrate.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/bitrate.h (51%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/block.c (74%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/books/Makefile.am (77%) create mode 100644 Dependencies/libvorbis/lib/books/Makefile.in create mode 100644 Dependencies/libvorbis/lib/books/coupled/Makefile.am create mode 100644 Dependencies/libvorbis/lib/books/coupled/Makefile.in create mode 100644 Dependencies/libvorbis/lib/books/coupled/res_books_51.h create mode 100644 Dependencies/libvorbis/lib/books/coupled/res_books_stereo.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/books/floor/Makefile.am (75%) create mode 100644 Dependencies/libvorbis/lib/books/floor/Makefile.in create mode 100644 Dependencies/libvorbis/lib/books/floor/floor_books.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/books/uncoupled/Makefile.am (77%) create mode 100644 Dependencies/libvorbis/lib/books/uncoupled/Makefile.in create mode 100644 Dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/codebook.c (54%) create mode 100644 Dependencies/libvorbis/lib/codebook.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/codec_internal.h (74%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/envelope.c (77%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/envelope.h (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/floor0.c (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/floor1.c (60%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/highlevel.h (77%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/info.c (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lookup.c (90%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lookup.h (84%) create mode 100644 Dependencies/libvorbis/lib/lookup_data.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lookups.pl (95%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lpc.c (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lpc.h (80%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lsp.c (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/lsp.h (75%) create mode 100644 Dependencies/libvorbis/lib/mapping0.c create mode 100644 Dependencies/libvorbis/lib/masking.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/mdct.c (64%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/mdct.h (89%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/misc.h (75%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/Makefile.am (81%) create mode 100644 Dependencies/libvorbis/lib/modes/Makefile.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/floor_all.h (62%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/psych_11.h (78%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/psych_16.h (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/psych_44.h (54%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/psych_8.h (82%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/residue_16.h (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/residue_44.h (55%) create mode 100644 Dependencies/libvorbis/lib/modes/residue_44p51.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/residue_44u.h (64%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/residue_8.h (61%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/setup_11.h (77%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/setup_16.h (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/setup_22.h (76%) rename libvorbis-1.0.1/lib/modes/setup_44u.h => Dependencies/libvorbis/lib/modes/setup_32.h (59%) create mode 100644 Dependencies/libvorbis/lib/modes/setup_44.h create mode 100644 Dependencies/libvorbis/lib/modes/setup_44p51.h create mode 100644 Dependencies/libvorbis/lib/modes/setup_44u.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/setup_8.h (73%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/modes/setup_X.h (59%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/os.h (62%) create mode 100644 Dependencies/libvorbis/lib/psy.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/psy.h (62%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/psytune.c (57%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/registry.c (62%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/registry.h (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/res0.c (52%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/scales.h (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/sharedbook.c (51%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/smallft.c (98%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/smallft.h (84%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/synthesis.c (85%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/tone.c (86%) create mode 100644 Dependencies/libvorbis/lib/vorbisenc.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/vorbisfile.c (50%) create mode 100644 Dependencies/libvorbis/lib/window.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/lib/window.h (83%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/libvorbis.spec (79%) create mode 100644 Dependencies/libvorbis/libvorbis.spec.in create mode 100755 Dependencies/libvorbis/ltmain.sh rename {libvorbis-1.0.1/lib/books/coupled => Dependencies/libvorbis/m4}/Makefile.am (50%) create mode 100644 Dependencies/libvorbis/m4/Makefile.in create mode 100644 Dependencies/libvorbis/m4/add_cflags.m4 rename libvorbis-1.0.1/acinclude.m4 => Dependencies/libvorbis/m4/ogg.m4 (70%) create mode 100644 Dependencies/libvorbis/m4/pkg.m4 create mode 100644 Dependencies/libvorbis/macos/compat/strdup.c create mode 100644 Dependencies/libvorbis/macos/compat/sys/types.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/decoder_example.mcp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/encoder_example.mcp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbis.mcp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbis.mcp.exp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbisenc.mcp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbisenc.mcp.exp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbisfile.mcp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/libvorbisfile.mcp.exp (100%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/macos/vorbis.mcp (100%) create mode 100644 Dependencies/libvorbis/macosx/English.lproj/InfoPlist.strings create mode 100644 Dependencies/libvorbis/macosx/Info.plist create mode 100644 Dependencies/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj create mode 100755 Dependencies/libvorbis/missing create mode 100644 Dependencies/libvorbis/symbian/bld.inf create mode 100644 Dependencies/libvorbis/symbian/config.h create mode 100644 Dependencies/libvorbis/symbian/vorbis.mmp create mode 100644 Dependencies/libvorbis/test/Makefile.am create mode 100644 Dependencies/libvorbis/test/Makefile.in create mode 100644 Dependencies/libvorbis/test/test.c create mode 100644 Dependencies/libvorbis/test/util.c create mode 100644 Dependencies/libvorbis/test/util.h create mode 100644 Dependencies/libvorbis/test/write_read.c create mode 100644 Dependencies/libvorbis/test/write_read.h rename {libvorbis-1.0.1 => Dependencies/libvorbis}/todo.txt (89%) create mode 100644 Dependencies/libvorbis/vorbis-uninstalled.pc.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vorbis.m4 (73%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vorbis.pc.in (100%) create mode 100644 Dependencies/libvorbis/vorbisenc-uninstalled.pc.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vorbisenc.pc.in (100%) create mode 100644 Dependencies/libvorbis/vorbisfile-uninstalled.pc.in rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vorbisfile.pc.in (100%) create mode 100644 Dependencies/libvorbis/vq/16.vqs create mode 100644 Dependencies/libvorbis/vq/16u.vqs create mode 100644 Dependencies/libvorbis/vq/44c-1.vqs create mode 100644 Dependencies/libvorbis/vq/44c0.vqs create mode 100644 Dependencies/libvorbis/vq/44c1.vqs create mode 100644 Dependencies/libvorbis/vq/44c2.vqs create mode 100644 Dependencies/libvorbis/vq/44c3.vqs create mode 100644 Dependencies/libvorbis/vq/44c4.vqs create mode 100644 Dependencies/libvorbis/vq/44c5.vqs create mode 100644 Dependencies/libvorbis/vq/44c6.vqs create mode 100644 Dependencies/libvorbis/vq/44c7.vqs create mode 100644 Dependencies/libvorbis/vq/44c8.vqs create mode 100644 Dependencies/libvorbis/vq/44c9.vqs create mode 100644 Dependencies/libvorbis/vq/44p-1.vqs create mode 100644 Dependencies/libvorbis/vq/44p0.vqs create mode 100644 Dependencies/libvorbis/vq/44p1.vqs create mode 100644 Dependencies/libvorbis/vq/44p2.vqs create mode 100644 Dependencies/libvorbis/vq/44p3.vqs create mode 100644 Dependencies/libvorbis/vq/44p4.vqs create mode 100644 Dependencies/libvorbis/vq/44p5.vqs create mode 100644 Dependencies/libvorbis/vq/44p6.vqs create mode 100644 Dependencies/libvorbis/vq/44p7.vqs create mode 100644 Dependencies/libvorbis/vq/44p8.vqs create mode 100644 Dependencies/libvorbis/vq/44p9.vqs create mode 100644 Dependencies/libvorbis/vq/44u0.vqs create mode 100644 Dependencies/libvorbis/vq/44u1.vqs create mode 100644 Dependencies/libvorbis/vq/44u2.vqs create mode 100644 Dependencies/libvorbis/vq/44u3.vqs create mode 100644 Dependencies/libvorbis/vq/44u4.vqs create mode 100644 Dependencies/libvorbis/vq/44u5.vqs create mode 100644 Dependencies/libvorbis/vq/44u6.vqs create mode 100644 Dependencies/libvorbis/vq/44u7.vqs create mode 100644 Dependencies/libvorbis/vq/44u8.vqs create mode 100644 Dependencies/libvorbis/vq/44u9.vqs create mode 100644 Dependencies/libvorbis/vq/8.vqs create mode 100644 Dependencies/libvorbis/vq/8u.vqs create mode 100644 Dependencies/libvorbis/vq/Makefile.am create mode 100644 Dependencies/libvorbis/vq/Makefile.in create mode 100644 Dependencies/libvorbis/vq/bookutil.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/bookutil.h (91%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/distribution.c (52%) create mode 100644 Dependencies/libvorbis/vq/floor_11.vqs create mode 100644 Dependencies/libvorbis/vq/floor_22.vqs create mode 100644 Dependencies/libvorbis/vq/floor_44.vqs rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/huffbuild.c (76%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/latticebuild.c (92%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/latticetune.c (84%) rename libvorbis-1.0.1/lib/codebook.h => Dependencies/libvorbis/vq/localcodebook.h (70%) create mode 100755 Dependencies/libvorbis/vq/make_floor_books.pl create mode 100755 Dependencies/libvorbis/vq/make_residue_books.pl create mode 100644 Dependencies/libvorbis/vq/metrics.c rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/vqgen.c (75%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/vq/vqgen.h (86%) create mode 100644 Dependencies/libvorbis/win32/VS2005/README create mode 100644 Dependencies/libvorbis/win32/VS2005/libogg.vsprops create mode 100644 Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbis_dynamic.sln create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbis_static.sln create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/README create mode 100644 Dependencies/libvorbis/win32/VS2008/libogg.vsprops create mode 100644 Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbis_dynamic.sln create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbis_static.sln create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_static.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_dynamic.vcproj create mode 100644 Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_static.vcproj rename {libvorbis-1.0.1 => Dependencies/libvorbis}/win32/vorbis.def (86%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/win32/vorbisenc.def (72%) rename {libvorbis-1.0.1 => Dependencies/libvorbis}/win32/vorbisfile.def (85%) delete mode 100644 libvorbis-1.0.1/HACKING delete mode 100644 libvorbis-1.0.1/Makefile.am delete mode 100644 libvorbis-1.0.1/Makefile.in delete mode 100644 libvorbis-1.0.1/aclocal.m4 delete mode 100755 libvorbis-1.0.1/autogen.sh delete mode 100755 libvorbis-1.0.1/configure delete mode 100644 libvorbis-1.0.1/debian/Makefile.am delete mode 100644 libvorbis-1.0.1/debian/Makefile.in delete mode 100644 libvorbis-1.0.1/debian/changelog delete mode 100644 libvorbis-1.0.1/debian/control delete mode 100644 libvorbis-1.0.1/debian/copyright delete mode 100644 libvorbis-1.0.1/debian/libvorbis-dev.docs delete mode 100644 libvorbis-1.0.1/debian/libvorbis-dev.examples delete mode 100644 libvorbis-1.0.1/debian/libvorbis-dev.install delete mode 100644 libvorbis-1.0.1/debian/libvorbis0a.install delete mode 100644 libvorbis-1.0.1/debian/libvorbisenc2.install delete mode 100644 libvorbis-1.0.1/debian/libvorbisfile3.install delete mode 100755 libvorbis-1.0.1/debian/rules delete mode 100644 libvorbis-1.0.1/doc/Makefile.am delete mode 100644 libvorbis-1.0.1/doc/Makefile.in delete mode 100644 libvorbis-1.0.1/doc/Vorbis_I_spec.html delete mode 100644 libvorbis-1.0.1/doc/Vorbis_I_spec.pdf delete mode 100644 libvorbis-1.0.1/doc/components.png delete mode 100644 libvorbis-1.0.1/doc/draft-kerr-avt-vorbis-rtp-02.txt delete mode 100644 libvorbis-1.0.1/doc/eightphase.png delete mode 100644 libvorbis-1.0.1/doc/evenlsp.png delete mode 100644 libvorbis-1.0.1/doc/floor1-1.png delete mode 100644 libvorbis-1.0.1/doc/floor1-2.png delete mode 100644 libvorbis-1.0.1/doc/floor1-3.png delete mode 100644 libvorbis-1.0.1/doc/floor1-4.png delete mode 100644 libvorbis-1.0.1/doc/floorval.png delete mode 100644 libvorbis-1.0.1/doc/fourphase.png delete mode 100644 libvorbis-1.0.1/doc/framing.html delete mode 100644 libvorbis-1.0.1/doc/helper.html delete mode 100644 libvorbis-1.0.1/doc/hufftree-under.png delete mode 100644 libvorbis-1.0.1/doc/hufftree.png delete mode 100644 libvorbis-1.0.1/doc/index.html delete mode 100644 libvorbis-1.0.1/doc/lspmap.png delete mode 100644 libvorbis-1.0.1/doc/oddlsp.png delete mode 100644 libvorbis-1.0.1/doc/oggstream.html delete mode 100644 libvorbis-1.0.1/doc/programming.html delete mode 100644 libvorbis-1.0.1/doc/residue-pack.png delete mode 100644 libvorbis-1.0.1/doc/residue2.png delete mode 100644 libvorbis-1.0.1/doc/squarepolar.png delete mode 100644 libvorbis-1.0.1/doc/stream.png delete mode 100644 libvorbis-1.0.1/doc/v-comment.html delete mode 100644 libvorbis-1.0.1/doc/vorbis-fidelity.html delete mode 100644 libvorbis-1.0.1/doc/vorbis.html delete mode 100644 libvorbis-1.0.1/doc/vorbisenc/Makefile.am delete mode 100644 libvorbis-1.0.1/doc/vorbisenc/Makefile.in delete mode 100644 libvorbis-1.0.1/doc/vorbisenc/overview.html delete mode 100644 libvorbis-1.0.1/doc/vorbisenc/reference.html delete mode 100644 libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_ctl.html delete mode 100644 libvorbis-1.0.1/doc/vorbisfile/Makefile.in delete mode 100644 libvorbis-1.0.1/doc/vorbisfile/chaining_example_c.html delete mode 100644 libvorbis-1.0.1/doc/vorbisfile/ov_callbacks.html delete mode 100644 libvorbis-1.0.1/doc/vorbisfile/ov_open.html delete mode 100644 libvorbis-1.0.1/doc/vorbisfile/ov_open_callbacks.html delete mode 100644 libvorbis-1.0.1/doc/vorbisword2.png delete mode 100644 libvorbis-1.0.1/doc/wait.png delete mode 100644 libvorbis-1.0.1/doc/white-ogg.png delete mode 100644 libvorbis-1.0.1/doc/white-xifish.png delete mode 100644 libvorbis-1.0.1/doc/window1.png delete mode 100644 libvorbis-1.0.1/doc/window2.png delete mode 100644 libvorbis-1.0.1/examples/Makefile.am delete mode 100644 libvorbis-1.0.1/examples/Makefile.in delete mode 100644 libvorbis-1.0.1/examples/decoder_example.c delete mode 100644 libvorbis-1.0.1/examples/seeking_example.c delete mode 100644 libvorbis-1.0.1/include/Makefile.in delete mode 100644 libvorbis-1.0.1/include/vorbis/Makefile.am delete mode 100644 libvorbis-1.0.1/include/vorbis/Makefile.in delete mode 100644 libvorbis-1.0.1/include/vorbis/vorbisenc.h delete mode 100755 libvorbis-1.0.1/install-sh delete mode 100644 libvorbis-1.0.1/lib/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/bitrate.c delete mode 100644 libvorbis-1.0.1/lib/books/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/books/coupled/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/books/coupled/res_books_stereo.h delete mode 100644 libvorbis-1.0.1/lib/books/floor/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/books/floor/floor_books.h delete mode 100644 libvorbis-1.0.1/lib/books/uncoupled/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/books/uncoupled/res_books_uncoupled.h delete mode 100644 libvorbis-1.0.1/lib/lookup_data.h delete mode 100644 libvorbis-1.0.1/lib/mapping0.c delete mode 100644 libvorbis-1.0.1/lib/masking.h delete mode 100644 libvorbis-1.0.1/lib/modes/Makefile.in delete mode 100644 libvorbis-1.0.1/lib/modes/setup_32.h delete mode 100644 libvorbis-1.0.1/lib/modes/setup_44.h delete mode 100644 libvorbis-1.0.1/lib/psy.c delete mode 100644 libvorbis-1.0.1/lib/vorbisenc.c delete mode 100644 libvorbis-1.0.1/lib/window.c delete mode 100644 libvorbis-1.0.1/ltmain.sh delete mode 100644 libvorbis-1.0.1/macos/compat/strdup.c delete mode 100644 libvorbis-1.0.1/macos/compat/sys/types.h delete mode 100644 libvorbis-1.0.1/macosx/English.lproj/InfoPlist.strings delete mode 100644 libvorbis-1.0.1/macosx/vorbis.pbproj/project.pbxproj delete mode 100755 libvorbis-1.0.1/missing delete mode 100755 libvorbis-1.0.1/mkinstalldirs delete mode 100644 libvorbis-1.0.1/vq/Makefile.am delete mode 100644 libvorbis-1.0.1/vq/Makefile.in delete mode 100755 libvorbis-1.0.1/vq/auxpartition.pl delete mode 100644 libvorbis-1.0.1/vq/bookutil.c delete mode 100644 libvorbis-1.0.1/vq/latticehint.c delete mode 100644 libvorbis-1.0.1/vq/latticepare.c delete mode 100755 libvorbis-1.0.1/vq/residue_entropy delete mode 100644 libvorbis-1.0.1/vq/vqsplit.c delete mode 100644 libvorbis-1.0.1/win32/Makefile.am delete mode 100644 libvorbis-1.0.1/win32/Makefile.in delete mode 100644 libvorbis-1.0.1/win32/build_vorbis_dynamic.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbis_dynamic_debug.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbis_static.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbis_static_debug.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisenc_dynamic.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisenc_dynamic_debug.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisenc_static.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisenc_static_debug.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisfile_dynamic.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisfile_dynamic_debug.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisfile_static.bat delete mode 100644 libvorbis-1.0.1/win32/build_vorbisfile_static_debug.bat delete mode 100644 libvorbis-1.0.1/win32/vorbis.dsw delete mode 100644 libvorbis-1.0.1/win32/vorbis_dynamic.dsp delete mode 100644 libvorbis-1.0.1/win32/vorbis_static.dsp delete mode 100644 libvorbis-1.0.1/win32/vorbisenc_dynamic.dsp delete mode 100644 libvorbis-1.0.1/win32/vorbisenc_static.dsp delete mode 100644 libvorbis-1.0.1/win32/vorbisfile_dynamic.dsp delete mode 100644 libvorbis-1.0.1/win32/vorbisfile_static.dsp diff --git a/libvorbis-1.0.1/AUTHORS b/Dependencies/libvorbis/AUTHORS similarity index 100% rename from libvorbis-1.0.1/AUTHORS rename to Dependencies/libvorbis/AUTHORS diff --git a/Dependencies/libvorbis/CHANGES b/Dependencies/libvorbis/CHANGES new file mode 100644 index 0000000..f5740b9 --- /dev/null +++ b/Dependencies/libvorbis/CHANGES @@ -0,0 +1,100 @@ +libvorbis 1.3.1 (2010-02-26) -- "Xiph.Org libVorbis I 20100325 (Everywhere)" + + * tweak + minor arithmetic fix in floor1 fit + * revert noise norm to conservative 1.2.3 behavior pending + more listening testing + +libvorbis 1.3.0 (2010-02-25) -- unreleased staging snapshot + + * Optimized surround support for 5.1 encoding at 44.1/48kHz + * Added encoder control call to disable channel coupling + * Correct an overflow bug in very low-bitrate encoding on 32 bit + machines that caused inflated bitrates + * Numerous API hardening, leak and build fixes + * Correct bug in 22kHz compand setup that could cause a crash + * Correct bug in 16kHz codebooks that could cause unstable pure + tones at high bitrates + +libvorbis 1.2.3 (2009-07-09) -- "Xiph.Org libVorbis I 20090709" + + * correct a vorbisfile bug that prevented proper playback of + Vorbis files where all audio in a logical stream is in a + single page + * Additional decode setup hardening against malicious streams + * Add 'OV_EXCLUDE_STATIC_CALLBACKS' define for developers who + wish to avoid unused symbol warnings from the static callbacks + defined in vorbisfile.h + +libvorbis 1.2.2 (2009-06-24) -- "Xiph.Org libVorbis I 20090624" + + * define VENDOR and ENCODER strings + * seek correctly in files bigger than 2 GB (Windows) + * fix regression from CVE-2008-1420; 1.0b1 files work again + * mark all tables as constant to reduce memory occupation + * additional decoder hardening against malicious streams + * substantially reduce amount of seeking performed by Vorbisfile + * Multichannel decode bugfix + * build system updates + * minor specification clarifications/fixes + +libvorbis 1.2.1 (unreleased) -- "Xiph.Org libVorbis I 20080501" + + * Improved robustness with corrupt streams. + * New ov_read_filter() vorbisfile call allows filtering decoded + audio as floats before converting to integer samples. + * Fix an encoder bug with multichannel streams. + * Replaced RTP payload format draft with RFC 5215. + * Bare bones self test under 'make check'. + * Fix a problem encoding some streams between 14 and 28 kHz. + * Fix a numerical instability in the edge extrapolation filter. + * Build system improvements. + * Specification correction. + +libvorbis 1.2.0 (2007-07-25) -- "Xiph.Org libVorbis I 20070622" + + * new ov_fopen() convenience call that avoids the common + stdio conflicts with ov_open() and MSVC runtimes. + * libvorbisfile now handles multiplexed streams + * improve robustness to corrupt input streams + * fix a minor encoder bug + * updated RTP draft + * build system updates + * minor corrections to the specification + +libvorbis 1.1.2 (2005-11-27) -- "Xiph.Org libVorbis I 20050304" + + * fix a serious encoder bug with gcc 4 optimized builds + * documentation and spec fixes + * updated VS2003 and XCode builds + * new draft RTP encapsulation spec + +libvorbis 1.1.1 (2005-06-27) -- "Xiph.Org libVorbis I 20050304" + + * bug fix to the bitrate management encoder interface + * bug fix to properly set packetno field in the encoder + * new draft RTP encapsulation spec + * library API documentation improvements + +libvorbis 1.1.0 (2004-09-22) -- "Xiph.Org libVorbis I 20040629" + + * merges tuning improvements from Aoyumi's aoTuV with fixups + * new managed bitrate (CBR) mode support + * new vorbis_encoder_ctl() interface + * extensive documentation updates + * application/ogg mimetype is now official + * autotools cleanup from Thomas Vander Stichele + * SymbianOS build support from Colin Ward at CSIRO + * various bugfixes + * various packaging improvements + +libvorbis 1.0.1 (2003-11-17) -- "Xiph.Org libVorbis I 20030909" + + * numerous bug fixes + * specification corrections + * new crosslap and halfrate APIs for game use + * packaging and build updates + +libvorbis 1.0.0 (2002-07-19) -- "Xiph.Org libVorbis I 20020717" + + * first stable release + diff --git a/libvorbis-1.0.1/COPYING b/Dependencies/libvorbis/COPYING similarity index 97% rename from libvorbis-1.0.1/COPYING rename to Dependencies/libvorbis/COPYING index 6111c6c..28de72a 100644 --- a/libvorbis-1.0.1/COPYING +++ b/Dependencies/libvorbis/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2002, Xiph.org Foundation +Copyright (c) 2002-2008 Xiph.org Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/Dependencies/libvorbis/Makefile.am b/Dependencies/libvorbis/Makefile.am new file mode 100644 index 0000000..7ddc442 --- /dev/null +++ b/Dependencies/libvorbis/Makefile.am @@ -0,0 +1,45 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = 1.7 foreign dist-zip dist-bzip2 + +SUBDIRS = m4 include vq lib test doc + +if BUILD_EXAMPLES +SUBDIRS += examples +endif + +m4datadir = $(datadir)/aclocal +m4data_DATA = vorbis.m4 + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc + +EXTRA_DIST = \ + CHANGES COPYING \ + todo.txt autogen.sh \ + libvorbis.spec libvorbis.spec.in \ + vorbis.m4 \ + vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in \ + vorbis-uninstalled.pc.in \ + vorbisenc-uninstalled.pc.in \ + vorbisfile-uninstalled.pc.in \ + symbian \ + macos macosx win32 + + +DISTCHECK_CONFIGURE_FLAGS = --enable-docs + +dist-hook: + for item in $(EXTRA_DIST); do \ + if test -d $$item; then \ + echo -n "cleaning $$item dir for distribution..."; \ + rm -rf `find $(distdir)/$$item -name .svn`; \ + echo "OK"; \ + fi; \ + done + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" diff --git a/Dependencies/libvorbis/Makefile.in b/Dependencies/libvorbis/Makefile.in new file mode 100644 index 0000000..6c11f43 --- /dev/null +++ b/Dependencies/libvorbis/Makefile.in @@ -0,0 +1,774 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@BUILD_EXAMPLES_TRUE@am__append_1 = examples +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/libvorbis.spec.in $(srcdir)/vorbis-uninstalled.pc.in \ + $(srcdir)/vorbis.pc.in $(srcdir)/vorbisenc-uninstalled.pc.in \ + $(srcdir)/vorbisenc.pc.in \ + $(srcdir)/vorbisfile-uninstalled.pc.in \ + $(srcdir)/vorbisfile.pc.in $(top_srcdir)/configure AUTHORS \ + COPYING compile config.guess config.sub depcomp install-sh \ + ltmain.sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = libvorbis.spec vorbis.pc vorbisenc.pc \ + vorbisfile.pc vorbis-uninstalled.pc vorbisenc-uninstalled.pc \ + vorbisfile-uninstalled.pc +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" +m4dataDATA_INSTALL = $(INSTALL_DATA) +pkgconfigDATA_INSTALL = $(INSTALL_DATA) +DATA = $(m4data_DATA) $(pkgconfig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = m4 include vq lib test doc examples +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.7 foreign dist-zip dist-bzip2 +SUBDIRS = m4 include vq lib test doc $(am__append_1) +m4datadir = $(datadir)/aclocal +m4data_DATA = vorbis.m4 +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc +EXTRA_DIST = \ + CHANGES COPYING \ + todo.txt autogen.sh \ + libvorbis.spec libvorbis.spec.in \ + vorbis.m4 \ + vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in \ + vorbis-uninstalled.pc.in \ + vorbisenc-uninstalled.pc.in \ + vorbisfile-uninstalled.pc.in \ + symbian \ + macos macosx win32 + +DISTCHECK_CONFIGURE_FLAGS = --enable-docs +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +libvorbis.spec: $(top_builddir)/config.status $(srcdir)/libvorbis.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbis.pc: $(top_builddir)/config.status $(srcdir)/vorbis.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbisenc.pc: $(top_builddir)/config.status $(srcdir)/vorbisenc.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbisfile.pc: $(top_builddir)/config.status $(srcdir)/vorbisfile.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbis-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/vorbis-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbisenc-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/vorbisenc-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +vorbisfile-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/vorbisfile-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-m4dataDATA: $(m4data_DATA) + @$(NORMAL_INSTALL) + test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" + @list='$(m4data_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(m4dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(m4datadir)/$$f'"; \ + $(m4dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(m4datadir)/$$f"; \ + done + +uninstall-m4dataDATA: + @$(NORMAL_UNINSTALL) + @list='$(m4data_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(m4datadir)/$$f'"; \ + rm -f "$(DESTDIR)$(m4datadir)/$$f"; \ + done +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-m4dataDATA install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-m4dataDATA uninstall-pkgconfigDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am \ + install-m4dataDATA install-man install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-m4dataDATA uninstall-pkgconfigDATA + + +dist-hook: + for item in $(EXTRA_DIST); do \ + if test -d $$item; then \ + echo -n "cleaning $$item dir for distribution..."; \ + rm -rf `find $(distdir)/$$item -name .svn`; \ + echo "OK"; \ + fi; \ + done + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libvorbis-1.0.1/README b/Dependencies/libvorbis/README similarity index 60% rename from libvorbis-1.0.1/README rename to Dependencies/libvorbis/README index e242ead..3e969e0 100644 --- a/libvorbis-1.0.1/README +++ b/Dependencies/libvorbis/README @@ -5,36 +5,44 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * -* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * +* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * * by the Xiph.org Foundation, http://www.xiph.org/ * * * ******************************************************************** -NEW AND IMPORTANT: +Vorbis is a general purpose audio and music encoding format +contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond +MPEG audio layer 3. Unlike the MPEG sponsored formats (and other +proprietary formats such as RealAudio G2 and Windows' flavor of the +month), the Vorbis CODEC specification belongs to the public domain. +All the technical details are published and documented, and any +software entity may make full use of the format without license +fee, royalty or patent concerns. + +This package contains: + +* libvorbis, a BSD-style license software implementation of + the Vorbis specification by the Xiph.Org Foundation + (http://www.xiph.org/) -If you're used to the source distribution from the first two beta -releases, things are now rearranged a bit. Specifically, the -'vorbis' CVS module contains only the libvorbis, libvorbisfile, and -libvorbisenc libraries. Because Ogg bitstreams are to be used by other -Ogg codecs, Ogg framing and streaming functionality is now in libogg -(the 'ogg' CVS module). Vorbis utilities are in 'vorbis-tools' and various -player plugins are in 'vorbis-plugins'. For now, you'll need to check -out these other modules seperately. (Note: the xmms plugin is in the xmms -CVS tree in xmms/Input/vorbis.) +* libvorbisfile, a BSD-style license convenience library + built on Vorbis designed to simplify common uses -Secondly, the Ogg/Vorbis build systems now use automake. Instead of -'./configure; make', the proper build sequence (in each module) is -'./autogen.sh; make'. +* libvorbisenc, a BSD-style license library that provides a simple, + programmatic encoding setup interface -You will also need the newest versions of autoconf, automake, and libtool -in order to compile vorbis from CVS. configure scripts are provided for you -in tarball distributions. +* example code making use of libogg, libvorbis, libvorbisfile and + libvorbisenc WHAT'S HERE: This source distribution includes libvorbis and an example -encoder/player to demonstrate use of libvorbis and documentation on -the Ogg Vorbis audio coding format. +encoder/player to demonstrate use of libvorbis as well as +documentation on the Ogg Vorbis audio coding format. + +You'll need libogg (distributed separately) to compile this library. +A more comprehensive set of utilities is available in the vorbis-tools +package. Directory: @@ -59,71 +67,56 @@ Directory: ./vq Internal utilities for training/building new LSP/residue and auxiliary codebooks. -WHAT IS VORBIS: - -Vorbis is a general purpose audio and music encoding format -contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond -MPEG audio layer 3. Unlike the MPEG sponsored formats (and other -proprietary formats such as RealAudio G2 and Windows' flavor of the -month), the Vorbis CODEC specification belongs to the public domain. -All the technical details are published and documented, and any -software entity may make full use of the format without royalty or -patent concerns. - -This package contains: - -.) libvorbis, a BSD-style license software implementation of -the Vorbis specification by the Xiph.Org Foundation (http://www.xiph.org/) - -.) libvorbisfile, a BSD-style license convenience library -built on Vorbis designed to simplify common uses and a number of GPL -example programs - -.) libvorbisenc, a BSD-style license library that provides a simple, -programmatic encoding setup interface - -.) example code making use of libogg, libvorbis, libvorbisfile and -libvorbisenc - CONTACT: The Ogg homepage is located at 'http://www.xiph.org/ogg/'. -Vorbis's homepage is located at 'http://www.xiph.org/ogg/vorbis/'. +Vorbis's homepage is located at 'http://www.xiph.org/vorbis/'. Up to date technical documents, contact information, source code and pre-built utilities may be found there. -BUILDING FROM CVS: +The user website for Ogg Vorbis software and audio is http://vorbis.com/ + +BUILDING FROM TRUNK: -./autogen.sh -make +Development source is under subversion revision control at +https://svn.xiph.org/trunk/vorbis/. You will also need the +newest versions of autoconf, automake, libtool and pkg-config in +order to compile Vorbis from development source. A configure script +is provided for you in the source tarball distributions. + + [update or checkout latest source] + ./autogen.sh + make and as root if desired: -make install + make install -This will install the vorbis libraries (static and shared) into +This will install the Vorbis libraries (static and shared) into /usr/local/lib, includes into /usr/local/include and API manpages (once we write some) into /usr/local/man. +Documentation building requires xsltproc and pdfxmltex. + BUILDING FROM TARBALL DISTRIBUTIONS: -./configure -make + ./configure + make and optionally (as root): -make install + make install BUILDING RPMS: after normal configuring: -make dist -rpm -ta libvorbis-.tar.gz + make dist + rpm -ta libvorbis-.tar.gz BUILDING ON MACOS 9: -Vorbis on MacOS 9 is built using CodeWarrior 5.3. To build it, first -verify that the Ogg libraries are already built following the +Vorbis on MacOS 9 is built using Metroworks CodeWarrior. To build it, +first verify that the Ogg libraries are already built following the instructions in the Ogg module README. Open vorbis/mac/libvorbis.mcp, switch to the "Targets" pane, select everything, and make the project. Do the same thing to build libvorbisenc.mcp, and libvorbisfile.mcp (in @@ -138,3 +131,4 @@ be found in the "access paths" pane in your project settings. Now simply add the shared libraries you need to your project (OggLib and VorbisLib at least) and #include "ogg/ogg.h" and "vorbis/codec.h" wherever you need to access Ogg and Vorbis functionality. + diff --git a/Dependencies/libvorbis/aclocal.m4 b/Dependencies/libvorbis/aclocal.m4 new file mode 100644 index 0000000..333cfa8 --- /dev/null +++ b/Dependencies/libvorbis/aclocal.m4 @@ -0,0 +1,8921 @@ +# generated automatically by aclocal 1.10.2 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# Generated from ltversion.in. + +# serial 3012 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.2.6' +macro_revision='1.3012' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 4 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10.2], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10.2])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 4 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[# Autoconf 2.62 quotes --file arguments for eval, but not when files +# are listed without --file. Let's play safe and only enable the eval +# if we detect the quoting. +case $CONFIG_FILES in +*\'*) eval set x "$CONFIG_FILES" ;; +*) set x $CONFIG_FILES ;; +esac +shift +for mf +do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 13 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/add_cflags.m4]) +m4_include([m4/ogg.m4]) +m4_include([m4/pkg.m4]) diff --git a/Dependencies/libvorbis/autogen.sh b/Dependencies/libvorbis/autogen.sh new file mode 100755 index 0000000..0aca638 --- /dev/null +++ b/Dependencies/libvorbis/autogen.sh @@ -0,0 +1,129 @@ +#!/bin/sh +# Run this to set up the build system: configure, makefiles, etc. +# (based on the version in enlightenment's cvs) + +package="vorbis" + +ACLOCAL_FLAGS="-I m4" + +olddir=`pwd` +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +cd "$srcdir" +DIE=0 + +echo "checking for autoconf... " +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have autoconf installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/" +VERSIONMKMAJ="sed -e s/\([0-9][0-9]*\)[^0-9].*/\\1/" +VERSIONMKMIN="sed -e s/.*[0-9][0-9]*\.//" + +# do we need automake? +if test -r Makefile.am; then + AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am` + AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP` + if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then + AM_NEEDED="" + fi + if test -z $AM_NEEDED; then + echo -n "checking for automake... " + AUTOMAKE=automake + ACLOCAL=aclocal + if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then + echo "yes" + else + echo "no" + AUTOMAKE= + fi + else + echo -n "checking for automake $AM_NEEDED or later... " + majneeded=`echo $AM_NEEDED | $VERSIONMKMAJ` + minneeded=`echo $AM_NEEDED | $VERSIONMKMIN` + for am in automake-$AM_NEEDED automake$AM_NEEDED \ + automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake; do + ($am --version < /dev/null > /dev/null 2>&1) || continue + ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP` + maj=`echo $ver | $VERSIONMKMAJ` + min=`echo $ver | $VERSIONMKMIN` + if test $maj -eq $majneeded -a $min -ge $minneeded; then + AUTOMAKE=$am + echo $AUTOMAKE + break + fi + done + test -z $AUTOMAKE && echo "no" + echo -n "checking for aclocal $AM_NEEDED or later... " + for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED \ + aclocal-1.10 aclocal-1.9 aclocal-1.8 aclocal-1.7 aclocal; do + ($ac --version < /dev/null > /dev/null 2>&1) || continue + ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP` + maj=`echo $ver | $VERSIONMKMAJ` + min=`echo $ver | $VERSIONMKMIN` + if test $maj -eq $majneeded -a $min -ge $minneeded; then + ACLOCAL=$ac + echo $ACLOCAL + break + fi + done + test -z $ACLOCAL && echo "no" + fi + test -z $AUTOMAKE || test -z $ACLOCAL && { + echo + echo "You must have automake installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + exit 1 + } +fi + +echo -n "checking for libtool... " +for LIBTOOLIZE in libtoolize glibtoolize nope; do + ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break +done +if test x$LIBTOOLIZE = xnope; then + echo "nope." + LIBTOOLIZE=libtoolize +else + echo $LIBTOOLIZE +fi +($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have libtool installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "I am going to run ./configure with no arguments - if you wish " + echo "to pass any to it, please specify them on the $0 command line." +fi + +echo "Generating configuration files for $package, please wait...." + +echo " $ACLOCAL $ACLOCAL_FLAGS" +$ACLOCAL $ACLOCAL_FLAGS || exit 1 +echo " $LIBTOOLIZE --automake" +$LIBTOOLIZE --automake || exit 1 +echo " autoheader" +autoheader || exit 1 +echo " $AUTOMAKE --add-missing $AUTOMAKE_FLAGS" +$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1 +echo " autoconf" +autoconf || exit 1 + +cd $olddir +$srcdir/configure --enable-maintainer-mode "$@" && echo diff --git a/Dependencies/libvorbis/compile b/Dependencies/libvorbis/compile new file mode 100755 index 0000000..1b1d232 --- /dev/null +++ b/Dependencies/libvorbis/compile @@ -0,0 +1,142 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2005-05-14.22 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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, 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. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/libvorbis-1.0.1/config.guess b/Dependencies/libvorbis/config.guess similarity index 82% rename from libvorbis-1.0.1/config.guess rename to Dependencies/libvorbis/config.guess index 1127162..396482d 100755 --- a/libvorbis-1.0.1/config.guess +++ b/Dependencies/libvorbis/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2003-10-07' +timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,13 +18,15 @@ timestamp='2003-10-07' # # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -53,7 +56,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -66,11 +69,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -104,7 +107,7 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -123,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -196,50 +199,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -277,42 +262,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -320,32 +312,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -354,10 +346,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -369,10 +361,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -383,37 +375,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -437,32 +432,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -478,29 +474,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -508,7 +504,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -523,14 +519,18 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; + exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -544,28 +544,28 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -627,9 +627,19 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else @@ -637,11 +647,11 @@ EOF fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -669,158 +679,179 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; + exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; + exit ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix - exit 0 ;; + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu - exit 0 ;; + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -837,8 +868,12 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build @@ -856,15 +891,22 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -878,7 +920,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -886,25 +928,28 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -922,15 +967,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -947,7 +992,7 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout @@ -957,16 +1002,23 @@ EOF LIBC=dietlibc #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -974,24 +1026,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -999,15 +1054,16 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1099,68 +1155,72 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1168,22 +1228,25 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1194,28 +1257,47 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1247,7 +1329,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1336,11 +1418,12 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1349,22 +1432,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1375,7 +1458,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/Dependencies/libvorbis/config.h.in b/Dependencies/libvorbis/config.h.in new file mode 100644 index 0000000..181cc9a --- /dev/null +++ b/Dependencies/libvorbis/config.h.in @@ -0,0 +1,91 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +#undef CRAY_STACKSEG_END + +/* Define to 1 if using `alloca.c'. */ +#undef C_ALLOCA + +/* Define to 1 if you have `alloca', as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#undef HAVE_ALLOCA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif diff --git a/libvorbis-1.0.1/config.sub b/Dependencies/libvorbis/config.sub similarity index 88% rename from libvorbis-1.0.1/config.sub rename to Dependencies/libvorbis/config.sub index 79657cd..387c18d 100755 --- a/libvorbis-1.0.1/config.sub +++ b/Dependencies/libvorbis/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2003-10-07' +timestamp='2006-07-02' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,14 +22,15 @@ timestamp='2003-10-07' # # 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., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -70,7 +72,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -83,11 +85,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +101,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,7 +120,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +148,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -169,6 +173,10 @@ case $os in -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -185,6 +193,10 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -229,14 +241,16 @@ case $basic_machine in | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m68000 | m68k | m88k | mcore \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -245,6 +259,7 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ @@ -253,20 +268,23 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -277,6 +295,9 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -296,10 +317,10 @@ case $basic_machine in | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ @@ -307,9 +328,9 @@ case $basic_machine in | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -318,6 +339,7 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ @@ -325,24 +347,28 @@ case $basic_machine in | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; @@ -362,6 +388,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -379,6 +408,9 @@ case $basic_machine in amd64) basic_machine=x86_64-pc ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -438,12 +470,27 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -466,6 +513,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -644,10 +695,6 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -660,6 +707,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -728,10 +778,6 @@ case $basic_machine in np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -739,9 +785,12 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -768,6 +817,12 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -824,6 +879,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -963,6 +1022,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -1006,6 +1069,10 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1036,6 +1103,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1052,13 +1122,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1131,19 +1198,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1161,7 +1232,7 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) @@ -1182,6 +1253,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1203,6 +1277,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1225,6 +1302,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1261,6 +1341,9 @@ case $os in -kaos*) os=-kaos ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1283,6 +1366,9 @@ else # system, and we'll never get to this point. case $basic_machine in + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1292,9 +1378,9 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1338,9 +1424,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1473,9 +1565,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1500,7 +1598,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/Dependencies/libvorbis/configure b/Dependencies/libvorbis/configure new file mode 100755 index 0000000..55bc2ad --- /dev/null +++ b/Dependencies/libvorbis/configure @@ -0,0 +1,15651 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61 for libvorbis 1.3.1. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='libvorbis' +PACKAGE_TARNAME='libvorbis' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='libvorbis 1.3.1' +PACKAGE_BUGREPORT='vorbis-dev@xiph.org' + +ac_unique_file="lib/mdct.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +MAINTAINER_MODE_TRUE +MAINTAINER_MODE_FALSE +MAINT +ACLOCAL_AMFLAGS +V_LIB_CURRENT +V_LIB_REVISION +V_LIB_AGE +VF_LIB_CURRENT +VF_LIB_REVISION +VF_LIB_AGE +VE_LIB_CURRENT +VE_LIB_REVISION +VE_LIB_AGE +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +CPP +AS +DLLTOOL +OBJDUMP +LIBTOOL +SED +GREP +EGREP +FGREP +LD +DUMPBIN +ac_ct_DUMPBIN +NM +LN_S +AR +RANLIB +lt_ECHO +DSYMUTIL +NMEDIT +LIPO +OTOOL +OTOOL64 +HAVE_DOXYGEN +HAVE_DOXYGEN_TRUE +HAVE_DOXYGEN_FALSE +PDFLATEX +HTLATEX +BUILD_DOCS_TRUE +BUILD_DOCS_FALSE +BUILD_EXAMPLES_TRUE +BUILD_EXAMPLES_FALSE +PKG_CONFIG +OGG_CFLAGS +OGG_LIBS +ALLOCA +LIBOBJS +VORBIS_LIBS +DEBUG +PROFILE +pthread_lib +LIBTOOL_DEPS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +OGG_CFLAGS +OGG_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libvorbis 1.3.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/libvorbis] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libvorbis 1.3.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-docs build the documentation + --enable-examples build the examples + --disable-oggtest Do not try to compile and run a test Ogg program + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-ogg=PFX Prefix where libogg is installed (optional) + --with-ogg-libraries=DIR + Directory where libogg library is installed + (optional) + --with-ogg-includes=DIR Directory where libogg header files are installed + (optional) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + OGG_CFLAGS C compiler flags for OGG, overriding pkg-config + OGG_LIBS linker flags for OGG, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libvorbis configure 1.3.1 +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libvorbis $as_me 1.3.1, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +am__api_version='1.10' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=$PACKAGE_NAME + VERSION=$PACKAGE_VERSION + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +ac_config_headers="$ac_config_headers config.h" + + +ACLOCAL_AMFLAGS="-I m4" + + + +V_LIB_CURRENT=4 +V_LIB_REVISION=4 +V_LIB_AGE=4 + +VF_LIB_CURRENT=6 +VF_LIB_REVISION=2 +VF_LIB_AGE=3 + +VE_LIB_CURRENT=2 +VE_LIB_REVISION=7 +VE_LIB_AGE=0 + + + + + + + + + + + + +cflags_save="$CFLAGS" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CFLAGS="$cflags_save" + + +{ echo "$as_me:$LINENO: checking for inline" >&5 +echo $ECHO_N "checking for inline... $ECHO_C" >&6; } +if test "${ac_cv_c_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_inline=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +echo "${ECHO_T}$ac_cv_c_inline" >&6; } + + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { echo "$as_me:$LINENO: result: $AS" >&5 +echo "${ECHO_T}$AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 +echo "${ECHO_T}$ac_ct_AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 +echo "${ECHO_T}$DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 +echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +echo "${ECHO_T}$OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + +case `pwd` in + *\ * | *\ *) + { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6' +macro_revision='1.3012' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${ac_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" | sed 99q >conftest.sed + $as_unset ac_script || ac_script= + # Extract the first word of "sed gsed" to use in msg output +if test -z "$SED"; then +set dummy sed gsed; ac_prog_name=$2 +if test "${ac_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_SED_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + # Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_SED_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +SED="$ac_cv_path_SED" +if test -z "$SED"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_SED=$SED +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +echo "${ECHO_T}$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ echo "$as_me:$LINENO: checking for fgrep" >&5 +echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + # Extract the first word of "fgrep" to use in msg output +if test -z "$FGREP"; then +set dummy fgrep; ac_prog_name=$2 +if test "${ac_cv_path_FGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_FGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + # Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_FGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +FGREP="$ac_cv_path_FGREP" +if test -z "$FGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_FGREP=$FGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +echo "${ECHO_T}$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { echo "$as_me:$LINENO: result: $DUMPBIN" >&5 +echo "${ECHO_T}$DUMPBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 +echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; } +if test "${lt_cv_nm_interface+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:5023: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:5026: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:5029: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +echo "${ECHO_T}$lt_cv_nm_interface" >&6; } + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ echo "$as_me:$LINENO: result: $xsi_shell" >&5 +echo "${ECHO_T}$xsi_shell" >&6; } + + +{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +echo "${ECHO_T}$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +echo "${ECHO_T}$OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 6247 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +echo "${ECHO_T}$DSYMUTIL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { echo "$as_me:$LINENO: result: $NMEDIT" >&5 +echo "${ECHO_T}$NMEDIT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { echo "$as_me:$LINENO: result: $LIPO" >&5 +echo "${ECHO_T}$LIPO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 +echo "${ECHO_T}$ac_ct_LIPO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { echo "$as_me:$LINENO: result: $OTOOL" >&5 +echo "${ECHO_T}$OTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 +echo "${ECHO_T}$ac_ct_OTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { echo "$as_me:$LINENO: result: $OTOOL64" >&5 +echo "${ECHO_T}$OTOOL64" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 +echo "${ECHO_T}$ac_ct_OTOOL64" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } + { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_ld_exported_symbols_list=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_ld_exported_symbols_list=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +# Set options + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7862: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7866: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8201: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8205: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8306: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8310: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8361: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8365: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat >conftest.$ac_ext <<_ACEOF +int foo(void) {} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then + shlibpath_overrides_runpath=yes +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11133 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11229 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + + { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + + { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +if test "x$CC" != xcc; then + { echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 +echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 +echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6; } +fi +set dummy $CC; ac_cc=`echo $2 | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest2.$ac_objext && { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest2.$ac_objext && { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define NO_MINUS_C_MINUS_O 1 +_ACEOF + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + + +if test "x$enable_docs" = xyes; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_HAVE_DOXYGEN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$HAVE_DOXYGEN"; then + ac_cv_prog_HAVE_DOXYGEN="$HAVE_DOXYGEN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_HAVE_DOXYGEN="true" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_HAVE_DOXYGEN" && ac_cv_prog_HAVE_DOXYGEN="false" +fi +fi +HAVE_DOXYGEN=$ac_cv_prog_HAVE_DOXYGEN +if test -n "$HAVE_DOXYGEN"; then + { echo "$as_me:$LINENO: result: $HAVE_DOXYGEN" >&5 +echo "${ECHO_T}$HAVE_DOXYGEN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test $HAVE_DOXYGEN = "false"; then + { echo "$as_me:$LINENO: WARNING: *** doxygen not found, API documentation will not be built" >&5 +echo "$as_me: WARNING: *** doxygen not found, API documentation will not be built" >&2;} + fi +else + HAVE_DOXYGEN=false +fi + if $HAVE_DOXYGEN; then + HAVE_DOXYGEN_TRUE= + HAVE_DOXYGEN_FALSE='#' +else + HAVE_DOXYGEN_TRUE='#' + HAVE_DOXYGEN_FALSE= +fi + + +# Check whether --enable-docs was given. +if test "${enable_docs+set}" = set; then + enableval=$enable_docs; +fi + + +if test "x$enable_docs" = xyes; then + for ac_prog in pdflatex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_PDFLATEX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$PDFLATEX"; then + ac_cv_prog_PDFLATEX="$PDFLATEX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_PDFLATEX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +PDFLATEX=$ac_cv_prog_PDFLATEX +if test -n "$PDFLATEX"; then + { echo "$as_me:$LINENO: result: $PDFLATEX" >&5 +echo "${ECHO_T}$PDFLATEX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$PDFLATEX" && break +done +test -n "$PDFLATEX" || PDFLATEX="/bin/false" + + for ac_prog in htlatex +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_HTLATEX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$HTLATEX"; then + ac_cv_prog_HTLATEX="$HTLATEX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_HTLATEX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +HTLATEX=$ac_cv_prog_HTLATEX +if test -n "$HTLATEX"; then + { echo "$as_me:$LINENO: result: $HTLATEX" >&5 +echo "${ECHO_T}$HTLATEX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$HTLATEX" && break +done +test -n "$HTLATEX" || HTLATEX="/bin/false" + + if test "x$PDFLATEX" = x/bin/false || test "x$HTLATEX" = x/bin/false; then + enable_docs=no + { echo "$as_me:$LINENO: WARNING: Documentation will not be built!" >&5 +echo "$as_me: WARNING: Documentation will not be built!" >&2;} + fi +fi + + if test "x$enable_docs" = xyes; then + BUILD_DOCS_TRUE= + BUILD_DOCS_FALSE='#' +else + BUILD_DOCS_TRUE='#' + BUILD_DOCS_FALSE= +fi + + +# Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then + enableval=$enable_examples; +fi + + + if test "x$enable_examples" = xyes; then + BUILD_EXAMPLES_TRUE= + BUILD_EXAMPLES_FALSE='#' +else + BUILD_EXAMPLES_TRUE='#' + BUILD_EXAMPLES_FALSE= +fi + + + + +cflags_save="$CFLAGS" +if test -z "$GCC"; then + case $host in + *-*-irix*) + if test -z "$CC"; then + CC=cc + fi + DEBUG="-g -signed" + CFLAGS="-O2 -w -signed" + PROFILE="-p -g3 -O2 -signed" ;; + sparc-sun-solaris*) + DEBUG="-v -g" + CFLAGS="-xO4 -fast -w -fsimple -native -xcg92" + PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;; + *) + DEBUG="-g" + CFLAGS="-O" + PROFILE="-g -p" ;; + esac +else + + { echo "$as_me:$LINENO: checking GCC version" >&5 +echo $ECHO_N "checking GCC version... $ECHO_C" >&6; } + GCC_VERSION=`$CC -dumpversion` + { echo "$as_me:$LINENO: result: $GCC_VERSION" >&5 +echo "${ECHO_T}$GCC_VERSION" >&6; } + case $host in + *86-*-linux*) + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" +# PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" + PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" + + # glibc < 2.1.3 has a serious FP bug in the math inline header + # that will cripple Vorbis. Look to see if the magic FP stack + # clobber is missing in the mathinline header, thus indicating + # the buggy version + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #define __LIBC_INTERNAL_MATH_INLINES 1 + #define __OPTIMIZE__ + #include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "log10.*fldlg2.*fxch" >/dev/null 2>&1; then + bad=maybe +else + bad=no +fi +rm -f conftest* + + if test ${bad} = "maybe" ;then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #define __LIBC_INTERNAL_MATH_INLINES 1 + #define __OPTIMIZE__ + #include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "log10.*fldlg2.*fxch.*st\([0123456789]*\)" >/dev/null 2>&1; then + bad=no +else + bad=yes +fi +rm -f conftest* + + fi + if test ${bad} = "yes" ;then + { echo "$as_me:$LINENO: WARNING: " >&5 +echo "$as_me: WARNING: " >&2;} + { echo "$as_me:$LINENO: WARNING: ********************************************************" >&5 +echo "$as_me: WARNING: ********************************************************" >&2;} + { echo "$as_me:$LINENO: WARNING: * The glibc headers on this machine have a serious bug *" >&5 +echo "$as_me: WARNING: * The glibc headers on this machine have a serious bug *" >&2;} + { echo "$as_me:$LINENO: WARNING: * in /usr/include/bits/mathinline.h This bug affects *" >&5 +echo "$as_me: WARNING: * in /usr/include/bits/mathinline.h This bug affects *" >&2;} + { echo "$as_me:$LINENO: WARNING: * all floating point code, not just Ogg, built on this *" >&5 +echo "$as_me: WARNING: * all floating point code, not just Ogg, built on this *" >&2;} + { echo "$as_me:$LINENO: WARNING: * machine. Upgrading to glibc 2.1.3 is strongly urged *" >&5 +echo "$as_me: WARNING: * machine. Upgrading to glibc 2.1.3 is strongly urged *" >&2;} + { echo "$as_me:$LINENO: WARNING: * to correct the problem. Note that upgrading glibc *" >&5 +echo "$as_me: WARNING: * to correct the problem. Note that upgrading glibc *" >&2;} + { echo "$as_me:$LINENO: WARNING: * will not fix any previously built programs; this is *" >&5 +echo "$as_me: WARNING: * will not fix any previously built programs; this is *" >&2;} + { echo "$as_me:$LINENO: WARNING: * a compile-time time bug. *" >&5 +echo "$as_me: WARNING: * a compile-time time bug. *" >&2;} + { echo "$as_me:$LINENO: WARNING: * To work around the problem for this build of Ogg, *" >&5 +echo "$as_me: WARNING: * To work around the problem for this build of Ogg, *" >&2;} + { echo "$as_me:$LINENO: WARNING: * autoconf is disabling all math inlining. This will *" >&5 +echo "$as_me: WARNING: * autoconf is disabling all math inlining. This will *" >&2;} + { echo "$as_me:$LINENO: WARNING: * hurt Ogg performace but is necessary for an Ogg that *" >&5 +echo "$as_me: WARNING: * hurt Ogg performace but is necessary for an Ogg that *" >&2;} + { echo "$as_me:$LINENO: WARNING: * will actually work. Once glibc is upgraded, rerun *" >&5 +echo "$as_me: WARNING: * will actually work. Once glibc is upgraded, rerun *" >&2;} + { echo "$as_me:$LINENO: WARNING: * configure and make to build with inlining. *" >&5 +echo "$as_me: WARNING: * configure and make to build with inlining. *" >&2;} + { echo "$as_me:$LINENO: WARNING: ********************************************************" >&5 +echo "$as_me: WARNING: ********************************************************" >&2;} + { echo "$as_me:$LINENO: WARNING: " >&5 +echo "$as_me: WARNING: " >&2;} + + CFLAGS=${OPT}" -D__NO_MATH_INLINES" + PROFILE=${PROFILE}" -D__NO_MATH_INLINES" + fi;; + powerpc-*-linux*spe) + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" + CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT" + PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";; + powerpc-*-linux*) + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" + CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT" + PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";; + *-*-linux*) + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char" + PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; + sparc-sun-*) + sparc_cpu="" + { echo "$as_me:$LINENO: checking if gcc supports -mv8" >&5 +echo $ECHO_N "checking if gcc supports -mv8... $ECHO_C" >&6; } + old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -mv8" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + sparc_cpu="-mv8" + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$old_cflags" + DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" + CFLAGS="-O20 -Wall -Wextra -ffast-math -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" + PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" ;; + *-*-darwin*) + DEBUG="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O0 -fsigned-char" + CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O4 -ffast-math -fsigned-char" + PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O4 -ffast-math -fsigned-char";; + *-*-os2*) + # Use -W instead of -Wextra because gcc on OS/2 is an old version. + DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -W -ffast-math -D_REENTRANT -fsigned-char" + PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; + *) + DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" + PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; + esac + + { echo "$as_me:$LINENO: checking if $CC accepts -Wdeclaration-after-statement" >&5 +echo $ECHO_N "checking if $CC accepts -Wdeclaration-after-statement... $ECHO_C" >&6; } + ac_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +puts("Hello, World!"); return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$ac_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +CFLAGS="$CFLAGS $cflags_save" + + +if test "${ac_cv_header_memory_h+set}" = set; then + { echo "$as_me:$LINENO: checking for memory.h" >&5 +echo $ECHO_N "checking for memory.h... $ECHO_C" >&6; } +if test "${ac_cv_header_memory_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_memory_h" >&5 +echo "${ECHO_T}$ac_cv_header_memory_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking memory.h usability" >&5 +echo $ECHO_N "checking memory.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking memory.h presence" >&5 +echo $ECHO_N "checking memory.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: memory.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: memory.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: memory.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: memory.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: memory.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: memory.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: memory.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: memory.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: memory.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: memory.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: memory.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------------- ## +## Report this to vorbis-dev@xiph.org ## +## ---------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for memory.h" >&5 +echo $ECHO_N "checking for memory.h... $ECHO_C" >&6; } +if test "${ac_cv_header_memory_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_memory_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_memory_h" >&5 +echo "${ECHO_T}$ac_cv_header_memory_h" >&6; } + +fi +if test $ac_cv_header_memory_h = yes; then + CFLAGS="$CFLAGS -DUSE_MEMORY_H" +else + : +fi + + + + + + +{ echo "$as_me:$LINENO: checking for cos in -lm" >&5 +echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_m_cos=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_cos=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 +echo "${ECHO_T}$ac_cv_lib_m_cos" >&6; } +if test $ac_cv_lib_m_cos = yes; then + VORBIS_LIBS="-lm" +else + VORBIS_LIBS="" +fi + +{ echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; } +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_pthread_pthread_create=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; } +if test $ac_cv_lib_pthread_pthread_create = yes; then + pthread_lib="-lpthread" +else + : +fi + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 +echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 +echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + PKG_CONFIG="" + fi + +fi + +HAVE_OGG=no +if test "x$PKG_CONFIG" != "x" +then + +pkg_failed=no +{ echo "$as_me:$LINENO: checking for OGG" >&5 +echo $ECHO_N "checking for OGG... $ECHO_C" >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$OGG_CFLAGS"; then + pkg_cv_OGG_CFLAGS="$OGG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"ogg >= 1.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "ogg >= 1.0") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_OGG_CFLAGS=`$PKG_CONFIG --cflags "ogg >= 1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$OGG_LIBS"; then + pkg_cv_OGG_LIBS="$OGG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"ogg >= 1.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "ogg >= 1.0") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_OGG_LIBS=`$PKG_CONFIG --libs "ogg >= 1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + OGG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ogg >= 1.0"` + else + OGG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ogg >= 1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$OGG_PKG_ERRORS" >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + HAVE_OGG=no +elif test $pkg_failed = untried; then + HAVE_OGG=no +else + OGG_CFLAGS=$pkg_cv_OGG_CFLAGS + OGG_LIBS=$pkg_cv_OGG_LIBS + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + HAVE_OGG=yes +fi +fi +if test "x$HAVE_OGG" = "xno" +then + +# Check whether --with-ogg was given. +if test "${with_ogg+set}" = set; then + withval=$with_ogg; ogg_prefix="$withval" +else + ogg_prefix="" +fi + + +# Check whether --with-ogg-libraries was given. +if test "${with_ogg_libraries+set}" = set; then + withval=$with_ogg_libraries; ogg_libraries="$withval" +else + ogg_libraries="" +fi + + +# Check whether --with-ogg-includes was given. +if test "${with_ogg_includes+set}" = set; then + withval=$with_ogg_includes; ogg_includes="$withval" +else + ogg_includes="" +fi + +# Check whether --enable-oggtest was given. +if test "${enable_oggtest+set}" = set; then + enableval=$enable_oggtest; +else + enable_oggtest=yes +fi + + + if test "x$ogg_libraries" != "x" ; then + OGG_LIBS="-L$ogg_libraries" + elif test "x$ogg_prefix" = "xno" || test "x$ogg_prefix" = "xyes" ; then + OGG_LIBS="" + elif test "x$ogg_prefix" != "x" ; then + OGG_LIBS="-L$ogg_prefix/lib" + elif test "x$prefix" != "xNONE" ; then + OGG_LIBS="-L$prefix/lib" + fi + + if test "x$ogg_prefix" != "xno" ; then + OGG_LIBS="$OGG_LIBS -logg" + fi + + if test "x$ogg_includes" != "x" ; then + OGG_CFLAGS="-I$ogg_includes" + elif test "x$ogg_prefix" = "xno" || test "x$ogg_prefix" = "xyes" ; then + OGG_CFLAGS="" + elif test "x$ogg_prefix" != "x" ; then + OGG_CFLAGS="-I$ogg_prefix/include" + elif test "x$prefix" != "xNONE"; then + OGG_CFLAGS="-I$prefix/include" + fi + + { echo "$as_me:$LINENO: checking for Ogg" >&5 +echo $ECHO_N "checking for Ogg... $ECHO_C" >&6; } + if test "x$ogg_prefix" = "xno" ; then + no_ogg="disabled" + enable_oggtest="no" + else + no_ogg="" + fi + + + if test "x$enable_oggtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" + rm -f conf.oggtest + if test "$cross_compiling" = yes; then + echo $ac_n "cross compiling; assumed OK... $ac_c" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +#include +#include + +int main () +{ + system("touch conf.oggtest"); + return 0; +} + + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +no_ogg=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + if test "x$no_ogg" = "xdisabled" ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { { echo "$as_me:$LINENO: error: must have Ogg installed!" >&5 +echo "$as_me: error: must have Ogg installed!" >&2;} + { (exit 1); exit 1; }; } + elif test "x$no_ogg" = "x" ; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + : + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + if test -f conf.oggtest ; then + : + else + echo "*** Could not run Ogg test program, checking why..." + CFLAGS="$CFLAGS $OGG_CFLAGS" + LIBS="$LIBS $OGG_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include + +int +main () +{ + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding Ogg or finding the wrong" + echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means Ogg was incorrectly installed" + echo "*** or that you have moved Ogg since it was installed." +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + OGG_CFLAGS="" + OGG_LIBS="" + { { echo "$as_me:$LINENO: error: must have Ogg installed!" >&5 +echo "$as_me: error: must have Ogg installed!" >&2;} + { (exit 1); exit 1; }; } + fi + + + rm -f conf.oggtest + + libs_save=$LIBS + LIBS="$OGG_LIBS $VORBIS_LIBS" + { echo "$as_me:$LINENO: checking for oggpack_writealign" >&5 +echo $ECHO_N "checking for oggpack_writealign... $ECHO_C" >&6; } +if test "${ac_cv_func_oggpack_writealign+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define oggpack_writealign to an innocuous variant, in case declares oggpack_writealign. + For example, HP-UX 11i declares gettimeofday. */ +#define oggpack_writealign innocuous_oggpack_writealign + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char oggpack_writealign (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef oggpack_writealign + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char oggpack_writealign (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_oggpack_writealign || defined __stub___oggpack_writealign +choke me +#endif + +int +main () +{ +return oggpack_writealign (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_oggpack_writealign=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_oggpack_writealign=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_oggpack_writealign" >&5 +echo "${ECHO_T}$ac_cv_func_oggpack_writealign" >&6; } +if test $ac_cv_func_oggpack_writealign = yes; then + : +else + { { echo "$as_me:$LINENO: error: Ogg >= 1.0 required !" >&5 +echo "$as_me: error: Ogg >= 1.0 required !" >&2;} + { (exit 1); exit 1; }; } +fi + + LIBS=$libs_save +fi + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +{ echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; } +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_working_alloca_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_working_alloca_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; } +if test $ac_cv_working_alloca_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6; } +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# ifdef HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + if (p) return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_alloca_works=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_alloca_works=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; } + +if test $ac_cv_func_alloca_works = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext + +cat >>confdefs.h <<\_ACEOF +#define C_ALLOCA 1 +_ACEOF + + +{ echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; } +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined CRAY && ! defined CRAY2 +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then + ac_cv_os_cray=yes +else + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6; } +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + +cat >>confdefs.h <<_ACEOF +#define CRAY_STACKSEG_END $ac_func +_ACEOF + + break +fi + + done +fi + +{ echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; } +if test "${ac_cv_c_stack_direction+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + +int +main () +{ + return find_stack_direction () < 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_stack_direction=1 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_stack_direction=-1 +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; } + +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + +{ echo "$as_me:$LINENO: checking for working memcmp" >&5 +echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } +if test "${ac_cv_func_memcmp_working+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_memcmp_working=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Some versions of memcmp are not 8-bit clean. */ + char c0 = '\100', c1 = '\200', c2 = '\201'; + if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) + return 1; + + /* The Next x86 OpenStep bug shows up only when comparing 16 bytes + or more and with at least one buffer not starting on a 4-byte boundary. + William Lewis provided this test program. */ + { + char foo[21]; + char bar[21]; + int i; + for (i = 0; i < 4; i++) + { + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + return 1; + } + return 0; + } + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_memcmp_working=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_memcmp_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 +echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac + + + + + + + + + + + +ac_config_files="$ac_config_files Makefile m4/Makefile lib/Makefile lib/modes/Makefile lib/books/Makefile lib/books/coupled/Makefile lib/books/uncoupled/Makefile lib/books/floor/Makefile doc/Makefile doc/vorbisfile/Makefile doc/vorbisenc/Makefile doc/Doxyfile include/Makefile include/vorbis/Makefile examples/Makefile test/Makefile vq/Makefile libvorbis.spec vorbis.pc vorbisenc.pc vorbisfile.pc vorbis-uninstalled.pc vorbisenc-uninstalled.pc vorbisfile-uninstalled.pc" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"HAVE_DOXYGEN\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"HAVE_DOXYGEN\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_DOCS_TRUE}" && test -z "${BUILD_DOCS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libvorbis $as_me 1.3.1, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +libvorbis config.status 1.3.1 +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "lib/modes/Makefile") CONFIG_FILES="$CONFIG_FILES lib/modes/Makefile" ;; + "lib/books/Makefile") CONFIG_FILES="$CONFIG_FILES lib/books/Makefile" ;; + "lib/books/coupled/Makefile") CONFIG_FILES="$CONFIG_FILES lib/books/coupled/Makefile" ;; + "lib/books/uncoupled/Makefile") CONFIG_FILES="$CONFIG_FILES lib/books/uncoupled/Makefile" ;; + "lib/books/floor/Makefile") CONFIG_FILES="$CONFIG_FILES lib/books/floor/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/vorbisfile/Makefile") CONFIG_FILES="$CONFIG_FILES doc/vorbisfile/Makefile" ;; + "doc/vorbisenc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/vorbisenc/Makefile" ;; + "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; + "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "include/vorbis/Makefile") CONFIG_FILES="$CONFIG_FILES include/vorbis/Makefile" ;; + "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "vq/Makefile") CONFIG_FILES="$CONFIG_FILES vq/Makefile" ;; + "libvorbis.spec") CONFIG_FILES="$CONFIG_FILES libvorbis.spec" ;; + "vorbis.pc") CONFIG_FILES="$CONFIG_FILES vorbis.pc" ;; + "vorbisenc.pc") CONFIG_FILES="$CONFIG_FILES vorbisenc.pc" ;; + "vorbisfile.pc") CONFIG_FILES="$CONFIG_FILES vorbisfile.pc" ;; + "vorbis-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES vorbis-uninstalled.pc" ;; + "vorbisenc-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES vorbisenc-uninstalled.pc" ;; + "vorbisfile-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES vorbisfile-uninstalled.pc" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim +MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim +MAINT!$MAINT$ac_delim +ACLOCAL_AMFLAGS!$ACLOCAL_AMFLAGS$ac_delim +V_LIB_CURRENT!$V_LIB_CURRENT$ac_delim +V_LIB_REVISION!$V_LIB_REVISION$ac_delim +V_LIB_AGE!$V_LIB_AGE$ac_delim +VF_LIB_CURRENT!$VF_LIB_CURRENT$ac_delim +VF_LIB_REVISION!$VF_LIB_REVISION$ac_delim +VF_LIB_AGE!$VF_LIB_AGE$ac_delim +VE_LIB_CURRENT!$VE_LIB_CURRENT$ac_delim +VE_LIB_REVISION!$VE_LIB_REVISION$ac_delim +VE_LIB_AGE!$VE_LIB_AGE$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +CPP!$CPP$ac_delim +AS!$AS$ac_delim +DLLTOOL!$DLLTOOL$ac_delim +OBJDUMP!$OBJDUMP$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +SED!$SED$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +FGREP!$FGREP$ac_delim +LD!$LD$ac_delim +DUMPBIN!$DUMPBIN$ac_delim +ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim +NM!$NM$ac_delim +LN_S!$LN_S$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +lt_ECHO!$lt_ECHO$ac_delim +DSYMUTIL!$DSYMUTIL$ac_delim +NMEDIT!$NMEDIT$ac_delim +LIPO!$LIPO$ac_delim +OTOOL!$OTOOL$ac_delim +OTOOL64!$OTOOL64$ac_delim +HAVE_DOXYGEN!$HAVE_DOXYGEN$ac_delim +HAVE_DOXYGEN_TRUE!$HAVE_DOXYGEN_TRUE$ac_delim +HAVE_DOXYGEN_FALSE!$HAVE_DOXYGEN_FALSE$ac_delim +PDFLATEX!$PDFLATEX$ac_delim +HTLATEX!$HTLATEX$ac_delim +BUILD_DOCS_TRUE!$BUILD_DOCS_TRUE$ac_delim +BUILD_DOCS_FALSE!$BUILD_DOCS_FALSE$ac_delim +BUILD_EXAMPLES_TRUE!$BUILD_EXAMPLES_TRUE$ac_delim +BUILD_EXAMPLES_FALSE!$BUILD_EXAMPLES_FALSE$ac_delim +PKG_CONFIG!$PKG_CONFIG$ac_delim +OGG_CFLAGS!$OGG_CFLAGS$ac_delim +OGG_LIBS!$OGG_LIBS$ac_delim +ALLOCA!$ALLOCA$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +VORBIS_LIBS!$VORBIS_LIBS$ac_delim +DEBUG!$DEBUG$ac_delim +PROFILE!$PROFILE$ac_delim +pthread_lib!$pthread_lib$ac_delim +LIBTOOL_DEPS!$LIBTOOL_DEPS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 45; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" +# Compute $ac_file's index in $config_headers. +_am_arg=$ac_file +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files +# are listed without --file. Let's play safe and only enable the eval +# if we detect the quoting. +case $CONFIG_FILES in +*\'*) eval set x "$CONFIG_FILES" ;; +*) set x $CONFIG_FILES ;; +esac +shift +for mf +do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Assembler program. +AS=$AS + +# DLL creation program. +DLLTOOL=$DLLTOOL + +# Object dumper program. +OBJDUMP=$OBJDUMP + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/libvorbis-1.0.1/configure.in b/Dependencies/libvorbis/configure.ac similarity index 53% rename from libvorbis-1.0.1/configure.in rename to Dependencies/libvorbis/configure.ac index 3758a9d..91e9d18 100644 --- a/libvorbis-1.0.1/configure.in +++ b/Dependencies/libvorbis/configure.ac @@ -4,21 +4,38 @@ dnl ------------------------------------------------ dnl Initialization and Versioning dnl ------------------------------------------------ -AC_INIT(lib/mdct.c) -AM_INIT_AUTOMAKE(libvorbis,1.0.1) + +AC_INIT([libvorbis],[1.3.1],[vorbis-dev@xiph.org]) + +AC_CONFIG_SRCDIR([lib/mdct.c]) + +AC_CANONICAL_TARGET([]) + +AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION) AM_MAINTAINER_MODE +AM_CONFIG_HEADER([config.h]) + +dnl Add parameters for aclocal +AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") dnl Library versioning +dnl - library source changed -> increment REVISION +dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 +dnl - interfaces added -> increment AGE +dnl - interfaces removed -> AGE = 0 + +V_LIB_CURRENT=4 +V_LIB_REVISION=4 +V_LIB_AGE=4 + +VF_LIB_CURRENT=6 +VF_LIB_REVISION=2 +VF_LIB_AGE=3 -V_LIB_CURRENT=3 -V_LIB_REVISION=0 -V_LIB_AGE=3 -VF_LIB_CURRENT=4 -VF_LIB_REVISION=0 -VF_LIB_AGE=1 VE_LIB_CURRENT=2 -VE_LIB_REVISION=0 +VE_LIB_REVISION=7 VE_LIB_AGE=0 + AC_SUBST(V_LIB_CURRENT) AC_SUBST(V_LIB_REVISION) AC_SUBST(V_LIB_AGE) @@ -40,39 +57,50 @@ AC_PROG_CC AC_PROG_CPP CFLAGS="$cflags_save" -AM_PROG_LIBTOOL +AC_C_INLINE + +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL +AM_PROG_CC_C_O + +dnl Check for doxygen +if test "x$enable_docs" = xyes; then + AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false) + if test $HAVE_DOXYGEN = "false"; then + AC_MSG_WARN([*** doxygen not found, API documentation will not be built]) + fi +else + HAVE_DOXYGEN=false +fi +AM_CONDITIONAL(HAVE_DOXYGEN,$HAVE_DOXYGEN) -dnl docbook xml transform and processing tools +dnl latex tools for the specification document AC_ARG_ENABLE(docs, - [ --enable-docs build the documentation], - [case "${enableval}" in - yes) build_docs=true;; - no) build_docs=false;; - *) AC_MSG_ERROR(unknown value ${enableval} for --enable-docs);; - esac],[build_docs=false]) - -dnl ideally we'd look for other tools and support them -if test x$build_docs = xtrue; then - AC_CHECK_PROGS([XSLTPROC], xsltproc, [/bin/false]) - AC_CHECK_PROGS([PDFXMLTEX], pdfxmltex, [/bin/false]) - if test "x$XSLTPROC" = "x/bin/false" || test "x$PDFXMLTEX" = "x/bin/false"; then - build_docs=false - AC_MSG_WARN([Documentation will not be built]) + AC_HELP_STRING([--enable-docs], [build the documentation])) + +if test "x$enable_docs" = xyes; then + AC_CHECK_PROGS([PDFLATEX], pdflatex, [/bin/false]) + AC_CHECK_PROGS([HTLATEX], htlatex, [/bin/false]) + if test "x$PDFLATEX" = x/bin/false || test "x$HTLATEX" = x/bin/false; then + enable_docs=no + AC_MSG_WARN([Documentation will not be built!]) fi fi -AM_CONDITIONAL(BUILD_DOCS, [test x$build_docs = xtrue]) +AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_docs" = xyes]) + +AC_ARG_ENABLE(examples, + AS_HELP_STRING([--enable-examples], [build the examples])) + +AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes]) dnl -------------------------------------------------- dnl Set build flags based on environment dnl -------------------------------------------------- -AC_CANONICAL_HOST - dnl Set some target options cflags_save="$CFLAGS" -ldflags_save="$LDFLAGS" if test -z "$GCC"; then case $host in *-*-irix*) @@ -95,12 +123,15 @@ if test -z "$GCC"; then esac else + AC_MSG_CHECKING([GCC version]) + GCC_VERSION=`$CC -dumpversion` + AC_MSG_RESULT([$GCC_VERSION]) case $host in *86-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" -# PROFILE="-Wall -W -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" - PROFILE="-Wall -W -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" +# PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" + PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" # glibc < 2.1.3 has a serious FP bug in the math inline header # that will cripple Vorbis. Look to see if the magic FP stack @@ -141,30 +172,49 @@ else CFLAGS=${OPT}" -D__NO_MATH_INLINES" PROFILE=${PROFILE}" -D__NO_MATH_INLINES" fi;; + powerpc-*-linux*spe) + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" + CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT" + PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";; powerpc-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES" - CFLAGS="-O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT" + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES" + CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT" PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";; *-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" - CFLAGS="-O20 -ffast-math -D_REENTRANT -fsigned-char" + DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char" PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; sparc-sun-*) - DEBUG="-g -Wall -W -D__NO_MATH_INLINES -fsigned-char -mv8" - CFLAGS="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char -mv8" - PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;; + sparc_cpu="" + AC_MSG_CHECKING([if gcc supports -mv8]) + old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -mv8" + AC_TRY_COMPILE(, [return 0;], [ + AC_MSG_RESULT([yes]) + sparc_cpu="-mv8" + ]) + CFLAGS="$old_cflags" + DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" + CFLAGS="-O20 -Wall -Wextra -ffast-math -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" + PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char $sparc_cpu" ;; *-*-darwin*) DEBUG="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O0 -fsigned-char" CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O4 -ffast-math -fsigned-char" PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O4 -ffast-math -fsigned-char";; - *) - DEBUG="-g -Wall -W -D__NO_MATH_INLINES -fsigned-char" - CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" + *-*-os2*) + # Use -W instead of -Wextra because gcc on OS/2 is an old version. + DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -W -ffast-math -D_REENTRANT -fsigned-char" + PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; + *) + DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; esac + + AC_ADD_CFLAGS([-Wdeclaration-after-statement]) fi CFLAGS="$CFLAGS $cflags_save" -LDFLAGS="$LDFLAGS $ldflags_save" dnl -------------------------------------------------- dnl Check for headers @@ -182,12 +232,25 @@ dnl -------------------------------------------------- dnl Check for libraries dnl -------------------------------------------------- -AC_CHECK_LIB(m, cos, LIBS="-lm", LIBS="") +AC_CHECK_LIB(m, cos, VORBIS_LIBS="-lm", VORBIS_LIBS="") AC_CHECK_LIB(pthread, pthread_create, pthread_lib="-lpthread", :) -XIPH_PATH_OGG(, AC_MSG_ERROR(must have Ogg installed!)) -LIBS="$LIBS $OGG_LIBS" -AC_CHECK_FUNC(oggpack_writealign, , AC_MSG_ERROR(Ogg >= 1.0 required !)) +PKG_PROG_PKG_CONFIG + +HAVE_OGG=no +if test "x$PKG_CONFIG" != "x" +then + PKG_CHECK_MODULES(OGG, ogg >= 1.0, HAVE_OGG=yes, HAVE_OGG=no) +fi +if test "x$HAVE_OGG" = "xno" +then + dnl fall back to the old school test + XIPH_PATH_OGG(, AC_MSG_ERROR(must have Ogg installed!)) + libs_save=$LIBS + LIBS="$OGG_LIBS $VORBIS_LIBS" + AC_CHECK_FUNC(oggpack_writealign, , AC_MSG_ERROR(Ogg >= 1.0 required !)) + LIBS=$libs_save +fi dnl -------------------------------------------------- dnl Check for library functions @@ -200,9 +263,35 @@ dnl -------------------------------------------------- dnl Do substitutions dnl -------------------------------------------------- -AC_SUBST(LIBS) +AC_SUBST(VORBIS_LIBS) AC_SUBST(DEBUG) AC_SUBST(PROFILE) AC_SUBST(pthread_lib) -AC_OUTPUT(Makefile lib/Makefile lib/modes/Makefile lib/books/Makefile lib/books/coupled/Makefile lib/books/uncoupled/Makefile lib/books/floor/Makefile doc/Makefile doc/vorbisfile/Makefile doc/vorbisenc/Makefile include/Makefile include/vorbis/Makefile examples/Makefile win32/Makefile debian/Makefile vq/Makefile vorbis.pc vorbisenc.pc vorbisfile.pc) +dnl The following line causes the libtool distributed with the source +dnl to be replaced if the build system has a more recent version. +AC_SUBST(LIBTOOL_DEPS) + +AC_OUTPUT([ +Makefile +m4/Makefile +lib/Makefile +lib/modes/Makefile +lib/books/Makefile +lib/books/coupled/Makefile +lib/books/uncoupled/Makefile +lib/books/floor/Makefile +doc/Makefile doc/vorbisfile/Makefile doc/vorbisenc/Makefile +doc/Doxyfile +include/Makefile include/vorbis/Makefile +examples/Makefile +test/Makefile +vq/Makefile +libvorbis.spec +vorbis.pc +vorbisenc.pc +vorbisfile.pc +vorbis-uninstalled.pc +vorbisenc-uninstalled.pc +vorbisfile-uninstalled.pc +]) diff --git a/Dependencies/libvorbis/depcomp b/Dependencies/libvorbis/depcomp new file mode 100755 index 0000000..04701da --- /dev/null +++ b/Dependencies/libvorbis/depcomp @@ -0,0 +1,530 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2005-07-09.11 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. + +# 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, 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. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mecanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/Dependencies/libvorbis/doc/01-introduction.tex b/Dependencies/libvorbis/doc/01-introduction.tex new file mode 100644 index 0000000..5c1772e --- /dev/null +++ b/Dependencies/libvorbis/doc/01-introduction.tex @@ -0,0 +1,529 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Introduction and Description} \label{vorbis:spec:intro} + +\subsection{Overview} + +This document provides a high level description of the Vorbis codec's +construction. A bit-by-bit specification appears beginning in +\xref{vorbis:spec:codec}. +The later sections assume a high-level +understanding of the Vorbis decode process, which is +provided here. + +\subsubsection{Application} +Vorbis is a general purpose perceptual audio CODEC intended to allow +maximum encoder flexibility, thus allowing it to scale competitively +over an exceptionally wide range of bitrates. At the high +quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits) +it is in the same league as MPEG-2 and MPC. Similarly, the 1.0 +encoder can encode high-quality CD and DAT rate stereo at below 48kbps +without resampling to a lower rate. Vorbis is also intended for +lower and higher sample rates (from 8kHz telephony to 192kHz digital +masters) and a range of channel representations (monaural, +polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255 +discrete channels). + + +\subsubsection{Classification} +Vorbis I is a forward-adaptive monolithic transform CODEC based on the +Modified Discrete Cosine Transform. The codec is structured to allow +addition of a hybrid wavelet filterbank in Vorbis II to offer better +transient response and reproduction using a transform better suited to +localized time events. + + +\subsubsection{Assumptions} + +The Vorbis CODEC design assumes a complex, psychoacoustically-aware +encoder and simple, low-complexity decoder. Vorbis decode is +computationally simpler than mp3, although it does require more +working memory as Vorbis has no static probability model; the vector +codebooks used in the first stage of decoding from the bitstream are +packed in their entirety into the Vorbis bitstream headers. In +packed form, these codebooks occupy only a few kilobytes; the extent +to which they are pre-decoded into a cache is the dominant factor in +decoder memory usage. + + +Vorbis provides none of its own framing, synchronization or protection +against errors; it is solely a method of accepting input audio, +dividing it into individual frames and compressing these frames into +raw, unformatted 'packets'. The decoder then accepts these raw +packets in sequence, decodes them, synthesizes audio frames from +them, and reassembles the frames into a facsimile of the original +audio stream. Vorbis is a free-form variable bit rate (VBR) codec and packets have no +minimum size, maximum size, or fixed/expected size. Packets +are designed that they may be truncated (or padded) and remain +decodable; this is not to be considered an error condition and is used +extensively in bitrate management in peeling. Both the transport +mechanism and decoder must allow that a packet may be any size, or +end before or after packet decode expects. + +Vorbis packets are thus intended to be used with a transport mechanism +that provides free-form framing, sync, positioning and error correction +in accordance with these design assumptions, such as Ogg (for file +transport) or RTP (for network multicast). For purposes of a few +examples in this document, we will assume that Vorbis is to be +embedded in an Ogg stream specifically, although this is by no means a +requirement or fundamental assumption in the Vorbis design. + +The specification for embedding Vorbis into +an Ogg transport stream is in \xref{vorbis:over:ogg}. + + + +\subsubsection{Codec Setup and Probability Model} + +Vorbis' heritage is as a research CODEC and its current design +reflects a desire to allow multiple decades of continuous encoder +improvement before running out of room within the codec specification. +For these reasons, configurable aspects of codec setup intentionally +lean toward the extreme of forward adaptive. + +The single most controversial design decision in Vorbis (and the most +unusual for a Vorbis developer to keep in mind) is that the entire +probability model of the codec, the Huffman and VQ codebooks, is +packed into the bitstream header along with extensive CODEC setup +parameters (often several hundred fields). This makes it impossible, +as it would be with MPEG audio layers, to embed a simple frame type +flag in each audio packet, or begin decode at any frame in the stream +without having previously fetched the codec setup header. + + +\begin{note} +Vorbis \emph{can} initiate decode at any arbitrary packet within a +bitstream so long as the codec has been initialized/setup with the +setup headers. +\end{note} + +Thus, Vorbis headers are both required for decode to begin and +relatively large as bitstream headers go. The header size is +unbounded, although for streaming a rule-of-thumb of 4kB or less is +recommended (and Xiph.Org's Vorbis encoder follows this suggestion). + +Our own design work indicates the primary liability of the +required header is in mindshare; it is an unusual design and thus +causes some amount of complaint among engineers as this runs against +current design trends (and also points out limitations in some +existing software/interface designs, such as Windows' ACM codec +framework). However, we find that it does not fundamentally limit +Vorbis' suitable application space. + + +\subsubsection{Format Specification} +The Vorbis format is well-defined by its decode specification; any +encoder that produces packets that are correctly decoded by the +reference Vorbis decoder described below may be considered a proper +Vorbis encoder. A decoder must faithfully and completely implement +the specification defined below (except where noted) to be considered +a proper Vorbis decoder. + +\subsubsection{Hardware Profile} +Although Vorbis decode is computationally simple, it may still run +into specific limitations of an embedded design. For this reason, +embedded designs are allowed to deviate in limited ways from the +`full' decode specification yet still be certified compliant. These +optional omissions are labelled in the spec where relevant. + + +\subsection{Decoder Configuration} + +Decoder setup consists of configuration of multiple, self-contained +component abstractions that perform specific functions in the decode +pipeline. Each different component instance of a specific type is +semantically interchangeable; decoder configuration consists both of +internal component configuration, as well as arrangement of specific +instances into a decode pipeline. Componentry arrangement is roughly +as follows: + +\begin{center} +\includegraphics[width=\textwidth]{components} +\captionof{figure}{decoder pipeline configuration} +\end{center} + +\subsubsection{Global Config} +Global codec configuration consists of a few audio related fields +(sample rate, channels), Vorbis version (always '0' in Vorbis I), +bitrate hints, and the lists of component instances. All other +configuration is in the context of specific components. + +\subsubsection{Mode} + +Each Vorbis frame is coded according to a master 'mode'. A bitstream +may use one or many modes. + +The mode mechanism is used to encode a frame according to one of +multiple possible methods with the intention of choosing a method best +suited to that frame. Different modes are, e.g. how frame size +is changed from frame to frame. The mode number of a frame serves as a +top level configuration switch for all other specific aspects of frame +decode. + +A 'mode' configuration consists of a frame size setting, window type +(always 0, the Vorbis window, in Vorbis I), transform type (always +type 0, the MDCT, in Vorbis I) and a mapping number. The mapping +number specifies which mapping configuration instance to use for +low-level packet decode and synthesis. + + +\subsubsection{Mapping} + +A mapping contains a channel coupling description and a list of +'submaps' that bundle sets of channel vectors together for grouped +encoding and decoding. These submaps are not references to external +components; the submap list is internal and specific to a mapping. + +A 'submap' is a configuration/grouping that applies to a subset of +floor and residue vectors within a mapping. The submap functions as a +last layer of indirection such that specific special floor or residue +settings can be applied not only to all the vectors in a given mode, +but also specific vectors in a specific mode. Each submap specifies +the proper floor and residue instance number to use for decoding that +submap's spectral floor and spectral residue vectors. + +As an example: + +Assume a Vorbis stream that contains six channels in the standard 5.1 +format. The sixth channel, as is normal in 5.1, is bass only. +Therefore it would be wasteful to encode a full-spectrum version of it +as with the other channels. The submapping mechanism can be used to +apply a full range floor and residue encoding to channels 0 through 4, +and a bass-only representation to the bass channel, thus saving space. +In this example, channels 0-4 belong to submap 0 (which indicates use +of a full-range floor) and channel 5 belongs to submap 1, which uses a +bass-only representation. + + +\subsubsection{Floor} + +Vorbis encodes a spectral 'floor' vector for each PCM channel. This +vector is a low-resolution representation of the audio spectrum for +the given channel in the current frame, generally used akin to a +whitening filter. It is named a 'floor' because the Xiph.Org +reference encoder has historically used it as a unit-baseline for +spectral resolution. + +A floor encoding may be of two types. Floor 0 uses a packed LSP +representation on a dB amplitude scale and Bark frequency scale. +Floor 1 represents the curve as a piecewise linear interpolated +representation on a dB amplitude scale and linear frequency scale. +The two floors are semantically interchangeable in +encoding/decoding. However, floor type 1 provides more stable +inter-frame behavior, and so is the preferred choice in all +coupled-stereo and high bitrate modes. Floor 1 is also considerably +less expensive to decode than floor 0. + +Floor 0 is not to be considered deprecated, but it is of limited +modern use. No known Vorbis encoder past Xiph.org's own beta 4 makes +use of floor 0. + +The values coded/decoded by a floor are both compactly formatted and +make use of entropy coding to save space. For this reason, a floor +configuration generally refers to multiple codebooks in the codebook +component list. Entropy coding is thus provided as an abstraction, +and each floor instance may choose from any and all available +codebooks when coding/decoding. + + +\subsubsection{Residue} +The spectral residue is the fine structure of the audio spectrum +once the floor curve has been subtracted out. In simplest terms, it +is coded in the bitstream using cascaded (multi-pass) vector +quantization according to one of three specific packing/coding +algorithms numbered 0 through 2. The packing algorithm details are +configured by residue instance. As with the floor components, the +final VQ/entropy encoding is provided by external codebook instances +and each residue instance may choose from any and all available +codebooks. + +\subsubsection{Codebooks} + +Codebooks are a self-contained abstraction that perform entropy +decoding and, optionally, use the entropy-decoded integer value as an +offset into an index of output value vectors, returning the indicated +vector of values. + +The entropy coding in a Vorbis I codebook is provided by a standard +Huffman binary tree representation. This tree is tightly packed using +one of several methods, depending on whether codeword lengths are +ordered or unordered, or the tree is sparse. + +The codebook vector index is similarly packed according to index +characteristic. Most commonly, the vector index is encoded as a +single list of values of possible values that are then permuted into +a list of n-dimensional rows (lattice VQ). + + + +\subsection{High-level Decode Process} + +\subsubsection{Decode Setup} + +Before decoding can begin, a decoder must initialize using the +bitstream headers matching the stream to be decoded. Vorbis uses +three header packets; all are required, in-order, by this +specification. Once set up, decode may begin at any audio packet +belonging to the Vorbis stream. In Vorbis I, all packets after the +three initial headers are audio packets. + +The header packets are, in order, the identification +header, the comments header, and the setup header. + +\paragraph{Identification Header} +The identification header identifies the bitstream as Vorbis, Vorbis +version, and the simple audio characteristics of the stream such as +sample rate and number of channels. + +\paragraph{Comment Header} +The comment header includes user text comments (``tags'') and a vendor +string for the application/library that produced the bitstream. The +encoding and proper use of the comment header is described in \xref{vorbis:spec:comment}. + +\paragraph{Setup Header} +The setup header includes extensive CODEC setup information as well as +the complete VQ and Huffman codebooks needed for decode. + + +\subsubsection{Decode Procedure} + +The decoding and synthesis procedure for all audio packets is +fundamentally the same. +\begin{enumerate} +\item decode packet type flag +\item decode mode number +\item decode window shape (long windows only) +\item decode floor +\item decode residue into residue vectors +\item inverse channel coupling of residue vectors +\item generate floor curve from decoded floor data +\item compute dot product of floor and residue, producing audio spectrum vector +\item inverse monolithic transform of audio spectrum vector, always an MDCT in Vorbis I +\item overlap/add left-hand output of transform with right-hand output of previous frame +\item store right hand-data from transform of current frame for future lapping +\item if not first frame, return results of overlap/add as audio result of current frame +\end{enumerate} + +Note that clever rearrangement of the synthesis arithmetic is +possible; as an example, one can take advantage of symmetries in the +MDCT to store the right-hand transform data of a partial MDCT for a +50\% inter-frame buffer space savings, and then complete the transform +later before overlap/add with the next frame. This optimization +produces entirely equivalent output and is naturally perfectly legal. +The decoder must be \emph{entirely mathematically equivalent} to the +specification, it need not be a literal semantic implementation. + +\paragraph{Packet type decode} + +Vorbis I uses four packet types. The first three packet types mark each +of the three Vorbis headers described above. The fourth packet type +marks an audio packet. All other packet types are reserved; packets +marked with a reserved type should be ignored. + +Following the three header packets, all packets in a Vorbis I stream +are audio. The first step of audio packet decode is to read and +verify the packet type; \emph{a non-audio packet when audio is expected +indicates stream corruption or a non-compliant stream. The decoder +must ignore the packet and not attempt decoding it to +audio}. + + + + +\paragraph{Mode decode} +Vorbis allows an encoder to set up multiple, numbered packet 'modes', +as described earlier, all of which may be used in a given Vorbis +stream. The mode is encoded as an integer used as a direct offset into +the mode instance index. + + +\paragraph{Window shape decode (long windows only)} \label{vorbis:spec:window} + +Vorbis frames may be one of two PCM sample sizes specified during +codec setup. In Vorbis I, legal frame sizes are powers of two from 64 +to 8192 samples. Aside from coupling, Vorbis handles channels as +independent vectors and these frame sizes are in samples per channel. + +Vorbis uses an overlapping transform, namely the MDCT, to blend one +frame into the next, avoiding most inter-frame block boundary +artifacts. The MDCT output of one frame is windowed according to MDCT +requirements, overlapped 50\% with the output of the previous frame and +added. The window shape assures seamless reconstruction. + +This is easy to visualize in the case of equal sized-windows: + +\begin{center} +\includegraphics[width=\textwidth]{window1} +\captionof{figure}{overlap of two equal-sized windows} +\end{center} + +And slightly more complex in the case of overlapping unequal sized +windows: + +\begin{center} +\includegraphics[width=\textwidth]{window2} +\captionof{figure}{overlap of a long and a short window} +\end{center} + +In the unequal-sized window case, the window shape of the long window +must be modified for seamless lapping as above. It is possible to +correctly infer window shape to be applied to the current window from +knowing the sizes of the current, previous and next window. It is +legal for a decoder to use this method. However, in the case of a long +window (short windows require no modification), Vorbis also codes two +flag bits to specify pre- and post- window shape. Although not +strictly necessary for function, this minor redundancy allows a packet +to be fully decoded to the point of lapping entirely independently of +any other packet, allowing easier abstraction of decode layers as well +as allowing a greater level of easy parallelism in encode and +decode. + +A description of valid window functions for use with an inverse MDCT +can be found in \cite{Sporer/Brandenburg/Edler}. Vorbis windows +all use the slope function +\[ y = \sin(.5*\pi \, \sin^2((x+.5)/n*\pi)) . \] + + + +\paragraph{floor decode} +Each floor is encoded/decoded in channel order, however each floor +belongs to a 'submap' that specifies which floor configuration to +use. All floors are decoded before residue decode begins. + + +\paragraph{residue decode} + +Although the number of residue vectors equals the number of channels, +channel coupling may mean that the raw residue vectors extracted +during decode do not map directly to specific channels. When channel +coupling is in use, some vectors will correspond to coupled magnitude +or angle. The coupling relationships are described in the codec setup +and may differ from frame to frame, due to different mode numbers. + +Vorbis codes residue vectors in groups by submap; the coding is done +in submap order from submap 0 through n-1. This differs from floors +which are coded using a configuration provided by submap number, but +are coded individually in channel order. + + + +\paragraph{inverse channel coupling} + +A detailed discussion of stereo in the Vorbis codec can be found in +the document \href{stereo.html}{Stereo Channel Coupling in the +Vorbis CODEC}. Vorbis is not limited to only stereo coupling, but +the stereo document also gives a good overview of the generic coupling +mechanism. + +Vorbis coupling applies to pairs of residue vectors at a time; +decoupling is done in-place a pair at a time in the order and using +the vectors specified in the current mapping configuration. The +decoupling operation is the same for all pairs, converting square +polar representation (where one vector is magnitude and the second +angle) back to Cartesian representation. + +After decoupling, in order, each pair of vectors on the coupling list, +the resulting residue vectors represent the fine spectral detail +of each output channel. + + + +\paragraph{generate floor curve} + +The decoder may choose to generate the floor curve at any appropriate +time. It is reasonable to generate the output curve when the floor +data is decoded from the raw packet, or it can be generated after +inverse coupling and applied to the spectral residue directly, +combining generation and the dot product into one step and eliminating +some working space. + +Both floor 0 and floor 1 generate a linear-range, linear-domain output +vector to be multiplied (dot product) by the linear-range, +linear-domain spectral residue. + + + +\paragraph{compute floor/residue dot product} + +This step is straightforward; for each output channel, the decoder +multiplies the floor curve and residue vectors element by element, +producing the finished audio spectrum of each channel. + +% TODO/FIXME: The following two paragraphs have identical twins +% in section 4 (under "dot product") +One point is worth mentioning about this dot product; a common mistake +in a fixed point implementation might be to assume that a 32 bit +fixed-point representation for floor and residue and direct +multiplication of the vectors is sufficient for acceptable spectral +depth in all cases because it happens to mostly work with the current +Xiph.Org reference encoder. + +However, floor vector values can span \~{}140dB (\~{}24 bits unsigned), and +the audio spectrum vector should represent a minimum of 120dB (\~{}21 +bits with sign), even when output is to a 16 bit PCM device. For the +residue vector to represent full scale if the floor is nailed to +$-140$dB, it must be able to span 0 to $+140$dB. For the residue vector +to reach full scale if the floor is nailed at 0dB, it must be able to +represent $-140$dB to $+0$dB. Thus, in order to handle full range +dynamics, a residue vector may span $-140$dB to $+140$dB entirely within +spec. A 280dB range is approximately 48 bits with sign; thus the +residue vector must be able to represent a 48 bit range and the dot +product must be able to handle an effective 48 bit times 24 bit +multiplication. This range may be achieved using large (64 bit or +larger) integers, or implementing a movable binary point +representation. + + + +\paragraph{inverse monolithic transform (MDCT)} + +The audio spectrum is converted back into time domain PCM audio via an +inverse Modified Discrete Cosine Transform (MDCT). A detailed +description of the MDCT is available in \cite{Sporer/Brandenburg/Edler}. + +Note that the PCM produced directly from the MDCT is not yet finished +audio; it must be lapped with surrounding frames using an appropriate +window (such as the Vorbis window) before the MDCT can be considered +orthogonal. + + + +\paragraph{overlap/add data} +Windowed MDCT output is overlapped and added with the right hand data +of the previous window such that the 3/4 point of the previous window +is aligned with the 1/4 point of the current window (as illustrated in +the window overlap diagram). At this point, the audio data between the +center of the previous frame and the center of the current frame is +now finished and ready to be returned. + + +\paragraph{cache right hand data} +The decoder must cache the right hand portion of the current frame to +be lapped with the left hand portion of the next frame. + + + +\paragraph{return finished audio data} + +The overlapped portion produced from overlapping the previous and +current frame data is finished data to be returned by the decoder. +This data spans from the center of the previous window to the center +of the current window. In the case of same-sized windows, the amount +of data to return is one-half block consisting of and only of the +overlapped portions. When overlapping a short and long window, much of +the returned range is not actually overlap. This does not damage +transform orthogonality. Pay attention however to returning the +correct data range; the amount of data to be returned is: + +\begin{Verbatim}[commandchars=\\\{\}] +window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +\end{Verbatim} + +from the center of the previous window to the center of the current +window. + +Data is not returned from the first frame; it must be used to 'prime' +the decode engine. The encoder accounts for this priming when +calculating PCM offsets; after the first frame, the proper PCM output +offset is '0' (as no data has been returned yet). diff --git a/Dependencies/libvorbis/doc/02-bitpacking.tex b/Dependencies/libvorbis/doc/02-bitpacking.tex new file mode 100644 index 0000000..c9a9fef --- /dev/null +++ b/Dependencies/libvorbis/doc/02-bitpacking.tex @@ -0,0 +1,247 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Bitpacking Convention} \label{vorbis:spec:bitpacking} + +\subsection{Overview} + +The Vorbis codec uses relatively unstructured raw packets containing +arbitrary-width binary integer fields. Logically, these packets are a +bitstream in which bits are coded one-by-one by the encoder and then +read one-by-one in the same monotonically increasing order by the +decoder. Most current binary storage arrangements group bits into a +native word size of eight bits (octets), sixteen bits, thirty-two bits +or, less commonly other fixed word sizes. The Vorbis bitpacking +convention specifies the correct mapping of the logical packet +bitstream into an actual representation in fixed-width words. + + +\subsubsection{octets, bytes and words} + +In most contemporary architectures, a 'byte' is synonymous with an +'octet', that is, eight bits. This has not always been the case; +seven, ten, eleven and sixteen bit 'bytes' have been used. For +purposes of the bitpacking convention, a byte implies the native, +smallest integer storage representation offered by a platform. On +modern platforms, this is generally assumed to be eight bits (not +necessarily because of the processor but because of the +filesystem/memory architecture. Modern filesystems invariably offer +bytes as the fundamental atom of storage). A 'word' is an integer +size that is a grouped multiple of this smallest size. + +The most ubiquitous architectures today consider a 'byte' to be an +octet (eight bits) and a word to be a group of two, four or eight +bytes (16, 32 or 64 bits). Note however that the Vorbis bitpacking +convention is still well defined for any native byte size; Vorbis uses +the native bit-width of a given storage system. This document assumes +that a byte is one octet for purposes of example. + +\subsubsection{bit order} + +A byte has a well-defined 'least significant' bit (LSb), which is the +only bit set when the byte is storing the two's complement integer +value +1. A byte's 'most significant' bit (MSb) is at the opposite +end of the byte. Bits in a byte are numbered from zero at the LSb to +$n$ ($n=7$ in an octet) for the +MSb. + + + +\subsubsection{byte order} + +Words are native groupings of multiple bytes. Several byte orderings +are possible in a word; the common ones are 3-2-1-0 ('big endian' or +'most significant byte first' in which the highest-valued byte comes +first), 0-1-2-3 ('little endian' or 'least significant byte first' in +which the lowest value byte comes first) and less commonly 3-1-2-0 and +0-2-1-3 ('mixed endian'). + +The Vorbis bitpacking convention specifies storage and bitstream +manipulation at the byte, not word, level, thus host word ordering is +of a concern only during optimization when writing high performance +code that operates on a word of storage at a time rather than by byte. +Logically, bytes are always coded and decoded in order from byte zero +through byte $n$. + + + +\subsubsection{coding bits into byte sequences} + +The Vorbis codec has need to code arbitrary bit-width integers, from +zero to 32 bits wide, into packets. These integer fields are not +aligned to the boundaries of the byte representation; the next field +is written at the bit position at which the previous field ends. + +The encoder logically packs integers by writing the LSb of a binary +integer to the logical bitstream first, followed by next least +significant bit, etc, until the requested number of bits have been +coded. When packing the bits into bytes, the encoder begins by +placing the LSb of the integer to be written into the least +significant unused bit position of the destination byte, followed by +the next-least significant bit of the source integer and so on up to +the requested number of bits. When all bits of the destination byte +have been filled, encoding continues by zeroing all bits of the next +byte and writing the next bit into the bit position 0 of that byte. +Decoding follows the same process as encoding, but by reading bits +from the byte stream and reassembling them into integers. + + + +\subsubsection{signedness} + +The signedness of a specific number resulting from decode is to be +interpreted by the decoder given decode context. That is, the three +bit binary pattern 'b111' can be taken to represent either 'seven' as +an unsigned integer, or '-1' as a signed, two's complement integer. +The encoder and decoder are responsible for knowing if fields are to +be treated as signed or unsigned. + + + +\subsubsection{coding example} + +Code the 4 bit integer value '12' [b1100] into an empty bytestream. +Bytestream result: + +\begin{Verbatim}[commandchars=\\\{\}] + | + V + + 7 6 5 4 3 2 1 0 +byte 0 [0 0 0 0 1 1 0 0] <- +byte 1 [ ] +byte 2 [ ] +byte 3 [ ] + ... +byte n [ ] bytestream length == 1 byte + +\end{Verbatim} + + +Continue by coding the 3 bit integer value '-1' [b111]: + +\begin{Verbatim}[commandchars=\\\{\}] + | + V + + 7 6 5 4 3 2 1 0 +byte 0 [0 1 1 1 1 1 0 0] <- +byte 1 [ ] +byte 2 [ ] +byte 3 [ ] + ... +byte n [ ] bytestream length == 1 byte +\end{Verbatim} + + +Continue by coding the 7 bit integer value '17' [b0010001]: + +\begin{Verbatim}[commandchars=\\\{\}] + | + V + + 7 6 5 4 3 2 1 0 +byte 0 [1 1 1 1 1 1 0 0] +byte 1 [0 0 0 0 1 0 0 0] <- +byte 2 [ ] +byte 3 [ ] + ... +byte n [ ] bytestream length == 2 bytes + bit cursor == 6 +\end{Verbatim} + + +Continue by coding the 13 bit integer value '6969' [b110 11001110 01]: + +\begin{Verbatim}[commandchars=\\\{\}] + | + V + + 7 6 5 4 3 2 1 0 +byte 0 [1 1 1 1 1 1 0 0] +byte 1 [0 1 0 0 1 0 0 0] +byte 2 [1 1 0 0 1 1 1 0] +byte 3 [0 0 0 0 0 1 1 0] <- + ... +byte n [ ] bytestream length == 4 bytes + +\end{Verbatim} + + + + +\subsubsection{decoding example} + +Reading from the beginning of the bytestream encoded in the above example: + +\begin{Verbatim}[commandchars=\\\{\}] + | + V + + 7 6 5 4 3 2 1 0 +byte 0 [1 1 1 1 1 1 0 0] <- +byte 1 [0 1 0 0 1 0 0 0] +byte 2 [1 1 0 0 1 1 1 0] +byte 3 [0 0 0 0 0 1 1 0] bytestream length == 4 bytes + +\end{Verbatim} + + +We read two, two-bit integer fields, resulting in the returned numbers +'b00' and 'b11'. Two things are worth noting here: + +\begin{itemize} +\item Although these four bits were originally written as a single +four-bit integer, reading some other combination of bit-widths from the +bitstream is well defined. There are no artificial alignment +boundaries maintained in the bitstream. + +\item The second value is the +two-bit-wide integer 'b11'. This value may be interpreted either as +the unsigned value '3', or the signed value '-1'. Signedness is +dependent on decode context. +\end{itemize} + + + + +\subsubsection{end-of-packet alignment} + +The typical use of bitpacking is to produce many independent +byte-aligned packets which are embedded into a larger byte-aligned +container structure, such as an Ogg transport bitstream. Externally, +each bytestream (encoded bitstream) must begin and end on a byte +boundary. Often, the encoded bitstream is not an integer number of +bytes, and so there is unused (uncoded) space in the last byte of a +packet. + +Unused space in the last byte of a bytestream is always zeroed during +the coding process. Thus, should this unused space be read, it will +return binary zeroes. + +Attempting to read past the end of an encoded packet results in an +'end-of-packet' condition. End-of-packet is not to be considered an +error; it is merely a state indicating that there is insufficient +remaining data to fulfill the desired read size. Vorbis uses truncated +packets as a normal mode of operation, and as such, decoders must +handle reading past the end of a packet as a typical mode of +operation. Any further read operations after an 'end-of-packet' +condition shall also return 'end-of-packet'. + + + +\subsubsection{reading zero bits} + +Reading a zero-bit-wide integer returns the value '0' and does not +increment the stream cursor. Reading to the end of the packet (but +not past, such that an 'end-of-packet' condition has not triggered) +and then reading a zero bit integer shall succeed, returning 0, and +not trigger an end-of-packet condition. Reading a zero-bit-wide +integer after a previous read sets 'end-of-packet' shall also fail +with 'end-of-packet'. + + + + + + diff --git a/Dependencies/libvorbis/doc/03-codebook.tex b/Dependencies/libvorbis/doc/03-codebook.tex new file mode 100644 index 0000000..987b436 --- /dev/null +++ b/Dependencies/libvorbis/doc/03-codebook.tex @@ -0,0 +1,406 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Probability Model and Codebooks} \label{vorbis:spec:codebook} + +\subsection{Overview} + +Unlike practically every other mainstream audio codec, Vorbis has no +statically configured probability model, instead packing all entropy +decoding configuration, VQ and Huffman, into the bitstream itself in +the third header, the codec setup header. This packed configuration +consists of multiple 'codebooks', each containing a specific +Huffman-equivalent representation for decoding compressed codewords as +well as an optional lookup table of output vector values to which a +decoded Huffman value is applied as an offset, generating the final +decoded output corresponding to a given compressed codeword. + +\subsubsection{Bitwise operation} +The codebook mechanism is built on top of the vorbis bitpacker. Both +the codebooks themselves and the codewords they decode are unrolled +from a packet as a series of arbitrary-width values read from the +stream according to \xref{vorbis:spec:bitpacking}. + + + + +\subsection{Packed codebook format} + +For purposes of the examples below, we assume that the storage +system's native byte width is eight bits. This is not universally +true; see \xref{vorbis:spec:bitpacking} for discussion +relating to non-eight-bit bytes. + +\subsubsection{codebook decode} + +A codebook begins with a 24 bit sync pattern, 0x564342: + +\begin{Verbatim}[commandchars=\\\{\}] +byte 0: [ 0 1 0 0 0 0 1 0 ] (0x42) +byte 1: [ 0 1 0 0 0 0 1 1 ] (0x43) +byte 2: [ 0 1 0 1 0 1 1 0 ] (0x56) +\end{Verbatim} + +16 bit \varname{[codebook_dimensions]} and 24 bit \varname{[codebook_entries]} fields: + +\begin{Verbatim}[commandchars=\\\{\}] + +byte 3: [ X X X X X X X X ] +byte 4: [ X X X X X X X X ] [codebook_dimensions] (16 bit unsigned) + +byte 5: [ X X X X X X X X ] +byte 6: [ X X X X X X X X ] +byte 7: [ X X X X X X X X ] [codebook_entries] (24 bit unsigned) + +\end{Verbatim} + +Next is the \varname{[ordered]} bit flag: + +\begin{Verbatim}[commandchars=\\\{\}] + +byte 8: [ X ] [ordered] (1 bit) + +\end{Verbatim} + +Each entry, numbering a +total of \varname{[codebook_entries]}, is assigned a codeword length. +We now read the list of codeword lengths and store these lengths in +the array \varname{[codebook_codeword_lengths]}. Decode of lengths is +according to whether the \varname{[ordered]} flag is set or unset. + +\begin{itemize} +\item + If the \varname{[ordered]} flag is unset, the codeword list is not + length ordered and the decoder needs to read each codeword length + one-by-one. + + The decoder first reads one additional bit flag, the + \varname{[sparse]} flag. This flag determines whether or not the + codebook contains unused entries that are not to be included in the + codeword decode tree: + +\begin{Verbatim}[commandchars=\\\{\}] +byte 8: [ X 1 ] [sparse] flag (1 bit) +\end{Verbatim} + + The decoder now performs for each of the \varname{[codebook_entries]} + codebook entries: + +\begin{Verbatim}[commandchars=\\\{\}] + + 1) if([sparse] is set) \{ + + 2) [flag] = read one bit; + 3) if([flag] is set) \{ + + 4) [length] = read a five bit unsigned integer; + 5) codeword length for this entry is [length]+1; + + \} else \{ + + 6) this entry is unused. mark it as such. + + \} + + \} else the sparse flag is not set \{ + + 7) [length] = read a five bit unsigned integer; + 8) the codeword length for this entry is [length]+1; + + \} + +\end{Verbatim} + +\item + If the \varname{[ordered]} flag is set, the codeword list for this + codebook is encoded in ascending length order. Rather than reading + a length for every codeword, the encoder reads the number of + codewords per length. That is, beginning at entry zero: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [current_entry] = 0; + 2) [current_length] = read a five bit unsigned integer and add 1; + 3) [number] = read \link{vorbis:spec:ilog}{ilog}([codebook_entries] - [current_entry]) bits as an unsigned integer + 4) set the entries [current_entry] through [current_entry]+[number]-1, inclusive, + of the [codebook_codeword_lengths] array to [current_length] + 5) set [current_entry] to [number] + [current_entry] + 6) increment [current_length] by 1 + 7) if [current_entry] is greater than [codebook_entries] ERROR CONDITION; + the decoder will not be able to read this stream. + 8) if [current_entry] is less than [codebook_entries], repeat process starting at 3) + 9) done. +\end{Verbatim} + +\end{itemize} + +After all codeword lengths have been decoded, the decoder reads the +vector lookup table. Vorbis I supports three lookup types: +\begin{enumerate} +\item +No lookup +\item +Implicitly populated value mapping (lattice VQ) +\item +Explicitly populated value mapping (tessellated or 'foam' +VQ) +\end{enumerate} + + +The lookup table type is read as a four bit unsigned integer: +\begin{Verbatim}[commandchars=\\\{\}] + 1) [codebook_lookup_type] = read four bits as an unsigned integer +\end{Verbatim} + +Codebook decode precedes according to \varname{[codebook_lookup_type]}: +\begin{itemize} +\item +Lookup type zero indicates no lookup to be read. Proceed past +lookup decode. +\item +Lookup types one and two are similar, differing only in the +number of lookup values to be read. Lookup type one reads a list of +values that are permuted in a set pattern to build a list of vectors, +each vector of order \varname{[codebook_dimensions]} scalars. Lookup +type two builds the same vector list, but reads each scalar for each +vector explicitly, rather than building vectors from a smaller list of +possible scalar values. Lookup decode proceeds as follows: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [codebook_minimum_value] = \link{vorbis:spec:float32:unpack}{float32_unpack}( read 32 bits as an unsigned integer) + 2) [codebook_delta_value] = \link{vorbis:spec:float32:unpack}{float32_unpack}( read 32 bits as an unsigned integer) + 3) [codebook_value_bits] = read 4 bits as an unsigned integer and add 1 + 4) [codebook_sequence_p] = read 1 bit as a boolean flag + + if ( [codebook_lookup_type] is 1 ) \{ + + 5) [codebook_lookup_values] = \link{vorbis:spec:lookup1:values}{lookup1_values}(\varname{[codebook_entries]}, \varname{[codebook_dimensions]} ) + + \} else \{ + + 6) [codebook_lookup_values] = \varname{[codebook_entries]} * \varname{[codebook_dimensions]} + + \} + + 7) read a total of [codebook_lookup_values] unsigned integers of [codebook_value_bits] each; + store these in order in the array [codebook_multiplicands] +\end{Verbatim} +\item +A \varname{[codebook_lookup_type]} of greater than two is reserved +and indicates a stream that is not decodable by the specification in this +document. + +\end{itemize} + + +An 'end of packet' during any read operation in the above steps is +considered an error condition rendering the stream undecodable. + +\paragraph{Huffman decision tree representation} + +The \varname{[codebook_codeword_lengths]} array and +\varname{[codebook_entries]} value uniquely define the Huffman decision +tree used for entropy decoding. + +Briefly, each used codebook entry (recall that length-unordered +codebooks support unused codeword entries) is assigned, in order, the +lowest valued unused binary Huffman codeword possible. Assume the +following codeword length list: + +\begin{Verbatim}[commandchars=\\\{\}] +entry 0: length 2 +entry 1: length 4 +entry 2: length 4 +entry 3: length 4 +entry 4: length 4 +entry 5: length 2 +entry 6: length 3 +entry 7: length 3 +\end{Verbatim} + +Assigning codewords in order (lowest possible value of the appropriate +length to highest) results in the following codeword list: + +\begin{Verbatim}[commandchars=\\\{\}] +entry 0: length 2 codeword 00 +entry 1: length 4 codeword 0100 +entry 2: length 4 codeword 0101 +entry 3: length 4 codeword 0110 +entry 4: length 4 codeword 0111 +entry 5: length 2 codeword 10 +entry 6: length 3 codeword 110 +entry 7: length 3 codeword 111 +\end{Verbatim} + + +\begin{note} +Unlike most binary numerical values in this document, we +intend the above codewords to be read and used bit by bit from left to +right, thus the codeword '001' is the bit string 'zero, zero, one'. +When determining 'lowest possible value' in the assignment definition +above, the leftmost bit is the MSb. +\end{note} + +It is clear that the codeword length list represents a Huffman +decision tree with the entry numbers equivalent to the leaves numbered +left-to-right: + +\begin{center} +\includegraphics[width=10cm]{hufftree} +\captionof{figure}{huffman tree illustration} +\end{center} + + +As we assign codewords in order, we see that each choice constructs a +new leaf in the leftmost possible position. + +Note that it's possible to underspecify or overspecify a Huffman tree +via the length list. In the above example, if codeword seven were +eliminated, it's clear that the tree is unfinished: + +\begin{center} +\includegraphics[width=10cm]{hufftree-under} +\captionof{figure}{underspecified huffman tree illustration} +\end{center} + + +Similarly, in the original codebook, it's clear that the tree is fully +populated and a ninth codeword is impossible. Both underspecified and +overspecified trees are an error condition rendering the stream +undecodable. Take special care that a codebook with a single used +entry is handled properly; it consists of a single codework of zero +bits and 'reading' a value out of such a codebook always returns the +single used value and sinks zero bits. + +Codebook entries marked 'unused' are simply skipped in the assigning +process. They have no codeword and do not appear in the decision +tree, thus it's impossible for any bit pattern read from the stream to +decode to that entry number. + + + +\paragraph{VQ lookup table vector representation} + +Unpacking the VQ lookup table vectors relies on the following values: +\begin{programlisting} +the [codebook_multiplicands] array +[codebook_minimum_value] +[codebook_delta_value] +[codebook_sequence_p] +[codebook_lookup_type] +[codebook_entries] +[codebook_dimensions] +[codebook_lookup_values] +\end{programlisting} + +\bigskip + +Decoding (unpacking) a specific vector in the vector lookup table +proceeds according to \varname{[codebook_lookup_type]}. The unpacked +vector values are what a codebook would return during audio packet +decode in a VQ context. + +\paragraph{Vector value decode: Lookup type 1} + +Lookup type one specifies a lattice VQ lookup table built +algorithmically from a list of scalar values. Calculate (unpack) the +final values of a codebook entry vector from the entries in +\varname{[codebook_multiplicands]} as follows (\varname{[value_vector]} +is the output vector representing the vector of values for entry number +\varname{[lookup_offset]} in this codebook): + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [last] = 0; + 2) [index_divisor] = 1; + 3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) \{ + + 4) [multiplicand_offset] = ( [lookup_offset] divided by [index_divisor] using integer + division ) integer modulo [codebook_lookup_values] + + 5) vector [value_vector] element [i] = + ( [codebook_multiplicands] array element number [multiplicand_offset] ) * + [codebook_delta_value] + [codebook_minimum_value] + [last]; + + 6) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] + + 7) [index_divisor] = [index_divisor] * [codebook_lookup_values] + + \} + + 8) vector calculation completed. +\end{Verbatim} + + + +\paragraph{Vector value decode: Lookup type 2} + +Lookup type two specifies a VQ lookup table in which each scalar in +each vector is explicitly set by the \varname{[codebook_multiplicands]} +array in a one-to-one mapping. Calculate [unpack] the +final values of a codebook entry vector from the entries in +\varname{[codebook_multiplicands]} as follows (\varname{[value_vector]} +is the output vector representing the vector of values for entry number +\varname{[lookup_offset]} in this codebook): + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [last] = 0; + 2) [multiplicand_offset] = [lookup_offset] * [codebook_dimensions] + 3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) \{ + + 4) vector [value_vector] element [i] = + ( [codebook_multiplicands] array element number [multiplicand_offset] ) * + [codebook_delta_value] + [codebook_minimum_value] + [last]; + + 5) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] + + 6) increment [multiplicand_offset] + + \} + + 7) vector calculation completed. +\end{Verbatim} + + + + + + + + + +\subsection{Use of the codebook abstraction} + +The decoder uses the codebook abstraction much as it does the +bit-unpacking convention; a specific codebook reads a +codeword from the bitstream, decoding it into an entry number, and then +returns that entry number to the decoder (when used in a scalar +entropy coding context), or uses that entry number as an offset into +the VQ lookup table, returning a vector of values (when used in a context +desiring a VQ value). Scalar or VQ context is always explicit; any call +to the codebook mechanism requests either a scalar entry number or a +lookup vector. + +Note that VQ lookup type zero indicates that there is no lookup table; +requesting decode using a codebook of lookup type 0 in any context +expecting a vector return value (even in a case where a vector of +dimension one) is forbidden. If decoder setup or decode requests such +an action, that is an error condition rendering the packet +undecodable. + +Using a codebook to read from the packet bitstream consists first of +reading and decoding the next codeword in the bitstream. The decoder +reads bits until the accumulated bits match a codeword in the +codebook. This process can be though of as logically walking the +Huffman decode tree by reading one bit at a time from the bitstream, +and using the bit as a decision boolean to take the 0 branch (left in +the above examples) or the 1 branch (right in the above examples). +Walking the tree finishes when the decode process hits a leaf in the +decision tree; the result is the entry number corresponding to that +leaf. Reading past the end of a packet propagates the 'end-of-stream' +condition to the decoder. + +When used in a scalar context, the resulting codeword entry is the +desired return value. + +When used in a VQ context, the codeword entry number is used as an +offset into the VQ lookup table. The value returned to the decoder is +the vector of scalars corresponding to this offset. diff --git a/Dependencies/libvorbis/doc/04-codec.tex b/Dependencies/libvorbis/doc/04-codec.tex new file mode 100644 index 0000000..035496f --- /dev/null +++ b/Dependencies/libvorbis/doc/04-codec.tex @@ -0,0 +1,661 @@ + +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Codec Setup and Packet Decode} \label{vorbis:spec:codec} + +\subsection{Overview} + +This document serves as the top-level reference document for the +bit-by-bit decode specification of Vorbis I. This document assumes a +high-level understanding of the Vorbis decode process, which is +provided in \xref{vorbis:spec:intro}. \xref{vorbis:spec:bitpacking} covers reading and writing bit fields from +and to bitstream packets. + + + +\subsection{Header decode and decode setup} + +A Vorbis bitstream begins with three header packets. The header +packets are, in order, the identification header, the comments header, +and the setup header. All are required for decode compliance. An +end-of-packet condition during decoding the first or third header +packet renders the stream undecodable. End-of-packet decoding the +comment header is a non-fatal error condition. + +\subsubsection{Common header decode} + +Each header packet begins with the same header fields. + + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [packet_type] : 8 bit value + 2) 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73: the characters 'v','o','r','b','i','s' as six octets +\end{Verbatim} + +Decode continues according to packet type; the identification header +is type 1, the comment header type 3 and the setup header type 5 +(these types are all odd as a packet with a leading single bit of '0' +is an audio packet). The packets must occur in the order of +identification, comment, setup. + + + +\subsubsection{Identification header} + +The identification header is a short header of only a few fields used +to declare the stream definitively as Vorbis, and provide a few externally +relevant pieces of information about the audio stream. The +identification header is coded as follows: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [vorbis_version] = read 32 bits as unsigned integer + 2) [audio_channels] = read 8 bit integer as unsigned + 3) [audio_sample_rate] = read 32 bits as unsigned integer + 4) [bitrate_maximum] = read 32 bits as signed integer + 5) [bitrate_nominal] = read 32 bits as signed integer + 6) [bitrate_minimum] = read 32 bits as signed integer + 7) [blocksize_0] = 2 exponent (read 4 bits as unsigned integer) + 8) [blocksize_1] = 2 exponent (read 4 bits as unsigned integer) + 9) [framing_flag] = read one bit +\end{Verbatim} + +\varname{[vorbis_version]} is to read '0' in order to be compatible +with this document. Both \varname{[audio_channels]} and +\varname{[audio_sample_rate]} must read greater than zero. Allowed final +blocksize values are 64, 128, 256, 512, 1024, 2048, 4096 and 8192 in +Vorbis I. \varname{[blocksize_0]} must be less than or equal to +\varname{[blocksize_1]}. The framing bit must be nonzero. Failure to +meet any of these conditions renders a stream undecodable. + +The bitrate fields above are used only as hints. The nominal bitrate +field especially may be considerably off in purely VBR streams. The +fields are meaningful only when greater than zero. + +\begin{itemize} + \item All three fields set to the same value implies a fixed rate, or tightly bounded, nearly fixed-rate bitstream + \item Only nominal set implies a VBR or ABR stream that averages the nominal bitrate + \item Maximum and or minimum set implies a VBR bitstream that obeys the bitrate limits + \item None set indicates the encoder does not care to speculate. +\end{itemize} + + + + +\subsubsection{Comment header} +Comment header decode and data specification is covered in +\xref{vorbis:spec:comment}. + + +\subsubsection{Setup header} + +Vorbis codec setup is configurable to an extreme degree: + +\begin{center} +\includegraphics[width=\textwidth]{components} +\captionof{figure}{decoder pipeline configuration} +\end{center} + + +The setup header contains the bulk of the codec setup information +needed for decode. The setup header contains, in order, the lists of +codebook configurations, time-domain transform configurations +(placeholders in Vorbis I), floor configurations, residue +configurations, channel mapping configurations and mode +configurations. It finishes with a framing bit of '1'. Header decode +proceeds in the following order: + +\paragraph{Codebooks} + +\begin{enumerate} +\item \varname{[vorbis_codebook_count]} = read eight bits as unsigned integer and add one +\item Decode \varname{[vorbis_codebook_count]} codebooks in order as defined +in \xref{vorbis:spec:codebook}. Save each configuration, in +order, in an array of +codebook configurations \varname{[vorbis_codebook_configurations]}. +\end{enumerate} + + + +\paragraph{Time domain transforms} + +These hooks are placeholders in Vorbis I. Nevertheless, the +configuration placeholder values must be read to maintain bitstream +sync. + +\begin{enumerate} +\item \varname{[vorbis_time_count]} = read 6 bits as unsigned integer and add one +\item read \varname{[vorbis_time_count]} 16 bit values; each value should be zero. If any value is nonzero, this is an error condition and the stream is undecodable. +\end{enumerate} + + + +\paragraph{Floors} + +Vorbis uses two floor types; header decode is handed to the decode +abstraction of the appropriate type. + +\begin{enumerate} + \item \varname{[vorbis_floor_count]} = read 6 bits as unsigned integer and add one + \item For each \varname{[i]} of \varname{[vorbis_floor_count]} floor numbers: + \begin{enumerate} + \item read the floor type: vector \varname{[vorbis_floor_types]} element \varname{[i]} = +read 16 bits as unsigned integer + \item If the floor type is zero, decode the floor +configuration as defined in \xref{vorbis:spec:floor0}; save +this +configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis_floor_configurations]}. + \item If the floor type is one, +decode the floor configuration as defined in \xref{vorbis:spec:floor1}; save this configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis_floor_configurations]}. + \item If the the floor type is greater than one, this stream is undecodable; ERROR CONDITION + \end{enumerate} + +\end{enumerate} + + + +\paragraph{Residues} + +Vorbis uses three residue types; header decode of each type is identical. + + +\begin{enumerate} +\item \varname{[vorbis_residue_count]} = read 6 bits as unsigned integer and add one + +\item For each of \varname{[vorbis_residue_count]} residue numbers: + \begin{enumerate} + \item read the residue type; vector \varname{[vorbis_residue_types]} element \varname{[i]} = read 16 bits as unsigned integer + \item If the residue type is zero, +one or two, decode the residue configuration as defined in \xref{vorbis:spec:residue}; save this configuration in slot \varname{[i]} of the residue configuration array \varname{[vorbis_residue_configurations]}. + \item If the the residue type is greater than two, this stream is undecodable; ERROR CONDITION + \end{enumerate} + +\end{enumerate} + + + +\paragraph{Mappings} + +Mappings are used to set up specific pipelines for encoding +multichannel audio with varying channel mapping applications. Vorbis I +uses a single mapping type (0), with implicit PCM channel mappings. + +% FIXME/TODO: LaTeX cannot nest enumerate that deeply, so I have to use +% itemize at the innermost level. However, it would be much better to +% rewrite this pseudocode using listings or algoritmicx or some other +% package geared towards this. +\begin{enumerate} + \item \varname{[vorbis_mapping_count]} = read 6 bits as unsigned integer and add one + \item For each \varname{[i]} of \varname{[vorbis_mapping_count]} mapping numbers: + \begin{enumerate} + \item read the mapping type: 16 bits as unsigned integer. There's no reason to save the mapping type in Vorbis I. + \item If the mapping type is nonzero, the stream is undecodable + \item If the mapping type is zero: + \begin{enumerate} + \item read 1 bit as a boolean flag + \begin{enumerate} + \item if set, \varname{[vorbis_mapping_submaps]} = read 4 bits as unsigned integer and add one + \item if unset, \varname{[vorbis_mapping_submaps]} = 1 + \end{enumerate} + + + \item read 1 bit as a boolean flag + \begin{enumerate} + \item if set, square polar channel mapping is in use: + \begin{itemize} + \item \varname{[vorbis_mapping_coupling_steps]} = read 8 bits as unsigned integer and add one + \item for \varname{[j]} each of \varname{[vorbis_mapping_coupling_steps]} steps: + \begin{itemize} + \item vector \varname{[vorbis_mapping_magnitude]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio_channels]} - 1) bits as unsigned integer + \item vector \varname{[vorbis_mapping_angle]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio_channels]} - 1) bits as unsigned integer + \item the numbers read in the above two steps are channel numbers representing the channel to treat as magnitude and the channel to treat as angle, respectively. If for any coupling step the angle channel number equals the magnitude channel number, the magnitude channel number is greater than \varname{[audio_channels]}-1, or the angle channel is greater than \varname{[audio_channels]}-1, the stream is undecodable. + \end{itemize} + + + \end{itemize} + + + \item if unset, \varname{[vorbis_mapping_coupling_steps]} = 0 + \end{enumerate} + + + \item read 2 bits (reserved field); if the value is nonzero, the stream is undecodable + \item if \varname{[vorbis_mapping_submaps]} is greater than one, we read channel multiplex settings. For each \varname{[j]} of \varname{[audio_channels]} channels: + \begin{enumerate} + \item vector \varname{[vorbis_mapping_mux]} element \varname{[j]} = read 4 bits as unsigned integer + \item if the value is greater than the highest numbered submap (\varname{[vorbis_mapping_submaps]} - 1), this in an error condition rendering the stream undecodable + \end{enumerate} + + \item for each submap \varname{[j]} of \varname{[vorbis_mapping_submaps]} submaps, read the floor and residue numbers for use in decoding that submap: + \begin{enumerate} + \item read and discard 8 bits (the unused time configuration placeholder) + \item read 8 bits as unsigned integer for the floor number; save in vector \varname{[vorbis_mapping_submap_floor]} element \varname{[j]} + \item verify the floor number is not greater than the highest number floor configured for the bitstream. If it is, the bitstream is undecodable + \item read 8 bits as unsigned integer for the residue number; save in vector \varname{[vorbis_mapping_submap_residue]} element \varname{[j]} + \item verify the residue number is not greater than the highest number residue configured for the bitstream. If it is, the bitstream is undecodable + \end{enumerate} + + \item save this mapping configuration in slot \varname{[i]} of the mapping configuration array \varname{[vorbis_mapping_configurations]}. + \end{enumerate} + + \end{enumerate} + +\end{enumerate} + + + +\paragraph{Modes} + +\begin{enumerate} + \item \varname{[vorbis_mode_count]} = read 6 bits as unsigned integer and add one + \item For each of \varname{[vorbis_mode_count]} mode numbers: + \begin{enumerate} + \item \varname{[vorbis_mode_blockflag]} = read 1 bit + \item \varname{[vorbis_mode_windowtype]} = read 16 bits as unsigned integer + \item \varname{[vorbis_mode_transformtype]} = read 16 bits as unsigned integer + \item \varname{[vorbis_mode_mapping]} = read 8 bits as unsigned integer + \item verify ranges; zero is the only legal value in Vorbis I for +\varname{[vorbis_mode_windowtype]} +and \varname{[vorbis_mode_transformtype]}. \varname{[vorbis_mode_mapping]} must not be greater than the highest number mapping in use. Any illegal values render the stream undecodable. + \item save this mode configuration in slot \varname{[i]} of the mode configuration array +\varname{[vorbis_mode_configurations]}. + \end{enumerate} + +\item read 1 bit as a framing flag. If unset, a framing error occurred and the stream is not +decodable. +\end{enumerate} + +After reading mode descriptions, setup header decode is complete. + + + + + + + + +\subsection{Audio packet decode and synthesis} + +Following the three header packets, all packets in a Vorbis I stream +are audio. The first step of audio packet decode is to read and +verify the packet type. \emph{A non-audio packet when audio is expected +indicates stream corruption or a non-compliant stream. The decoder +must ignore the packet and not attempt decoding it to audio}. + + +\subsubsection{packet type, mode and window decode} + +\begin{enumerate} + \item read 1 bit \varname{[packet_type]}; check that packet type is 0 (audio) + \item read \link{vorbis:spec:ilog}{ilog}([vorbis_mode_count]-1) bits +\varname{[mode_number]} + \item decode blocksize \varname{[n]} is equal to \varname{[blocksize_0]} if +\varname{[vorbis_mode_blockflag]} is 0, else \varname{[n]} is equal to \varname{[blocksize_1]}. + \item perform window selection and setup; this window is used later by the inverse MDCT: + \begin{enumerate} + \item if this is a long window (the \varname{[vorbis_mode_blockflag]} flag of this mode is +set): + \begin{enumerate} + \item read 1 bit for \varname{[previous_window_flag]} + \item read 1 bit for \varname{[next_window_flag]} + \item if \varname{[previous_window_flag]} is not set, the left half + of the window will be a hybrid window for lapping with a + short block. See \xref{vorbis:spec:window} for an illustration of overlapping +dissimilar + windows. Else, the left half window will have normal long + shape. + \item if \varname{[next_window_flag]} is not set, the right half of + the window will be a hybrid window for lapping with a short + block. See \xref{vorbis:spec:window} for an +illustration of overlapping dissimilar + windows. Else, the left right window will have normal long + shape. + \end{enumerate} + + \item if this is a short window, the window is always the same + short-window shape. + \end{enumerate} + +\end{enumerate} + +Vorbis windows all use the slope function $y=\sin(\frac{\pi}{2} * \sin^2((x+0.5)/n * \pi))$, +where $n$ is window size and $x$ ranges $0 \ldots n-1$, but dissimilar +lapping requirements can affect overall shape. Window generation +proceeds as follows: + +\begin{enumerate} + \item \varname{[window_center]} = \varname{[n]} / 2 + \item if (\varname{[vorbis_mode_blockflag]} is set and \varname{[previous_window_flag]} is +not set) then + \begin{enumerate} + \item \varname{[left_window_start]} = \varname{[n]}/4 - +\varname{[blocksize_0]}/4 + \item \varname{[left_window_end]} = \varname{[n]}/4 + \varname{[blocksize_0]}/4 + \item \varname{[left_n]} = \varname{[blocksize_0]}/2 + \end{enumerate} + else + \begin{enumerate} + \item \varname{[left_window_start]} = 0 + \item \varname{[left_window_end]} = \varname{[window_center]} + \item \varname{[left_n]} = \varname{[n]}/2 + \end{enumerate} + + \item if (\varname{[vorbis_mode_blockflag]} is set and \varname{[next_window_flag]} is not +set) then + \begin{enumerate} + \item \varname{[right_window_start]} = \varname{[n]*3}/4 - +\varname{[blocksize_0]}/4 + \item \varname{[right_window_end]} = \varname{[n]*3}/4 + +\varname{[blocksize_0]}/4 + \item \varname{[right_n]} = \varname{[blocksize_0]}/2 + \end{enumerate} + else + \begin{enumerate} + \item \varname{[right_window_start]} = \varname{[window_center]} + \item \varname{[right_window_end]} = \varname{[n]} + \item \varname{[right_n]} = \varname{[n]}/2 + \end{enumerate} + + \item window from range 0 ... \varname{[left_window_start]}-1 inclusive is zero + \item for \varname{[i]} in range \varname{[left_window_start]} ... +\varname{[left_window_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[left_window_start]}+0.5) / \varname{[left_n]} $* \frac{\pi}{2})$ ) + \item window from range \varname{[left_window_end]} ... \varname{[right_window_start]}-1 +inclusive is one\item for \varname{[i]} in range \varname{[right_window_start]} ... \varname{[right_window_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[right_window_start]}+0.5) / \varname{[right_n]} $ * \frac{\pi}{2} + \frac{\pi}{2})$ ) +\item window from range \varname{[right_window_start]} ... \varname{[n]}-1 is +zero +\end{enumerate} + +An end-of-packet condition up to this point should be considered an +error that discards this packet from the stream. An end of packet +condition past this point is to be considered a possible nominal +occurrence. + + + +\subsubsection{floor curve decode} + +From this point on, we assume out decode context is using mode number +\varname{[mode_number]} from configuration array +\varname{[vorbis_mode_configurations]} and the map number +\varname{[vorbis_mode_mapping]} (specified by the current mode) taken +from the mapping configuration array +\varname{[vorbis_mapping_configurations]}. + +Floor curves are decoded one-by-one in channel order. + +For each floor \varname{[i]} of \varname{[audio_channels]} + \begin{enumerate} + \item \varname{[submap_number]} = element \varname{[i]} of vector [vorbis_mapping_mux] + \item \varname{[floor_number]} = element \varname{[submap_number]} of vector +[vorbis_submap_floor] + \item if the floor type of this +floor (vector \varname{[vorbis_floor_types]} element +\varname{[floor_number]}) is zero then decode the floor for +channel \varname{[i]} according to the +\xref{vorbis:spec:floor0-decode} + \item if the type of this floor +is one then decode the floor for channel \varname{[i]} according +to the \xref{vorbis:spec:floor1-decode} + \item save the needed decoded floor information for channel for later synthesis + \item if the decoded floor returned 'unused', set vector \varname{[no_residue]} element +\varname{[i]} to true, else set vector \varname{[no_residue]} element \varname{[i]} to +false + \end{enumerate} + + +An end-of-packet condition during floor decode shall result in packet +decode zeroing all channel output vectors and skipping to the +add/overlap output stage. + + + +\subsubsection{nonzero vector propagate} + +A possible result of floor decode is that a specific vector is marked +'unused' which indicates that that final output vector is all-zero +values (and the floor is zero). The residue for that vector is not +coded in the stream, save for one complication. If some vectors are +used and some are not, channel coupling could result in mixing a +zeroed and nonzeroed vector to produce two nonzeroed vectors. + +for each \varname{[i]} from 0 ... \varname{[vorbis_mapping_coupling_steps]}-1 + +\begin{enumerate} + \item if either \varname{[no_residue]} entry for channel +(\varname{[vorbis_mapping_magnitude]} element \varname{[i]}) +or channel +(\varname{[vorbis_mapping_angle]} element \varname{[i]}) +are set to false, then both must be set to false. Note that an 'unused' +floor has no decoded floor information; it is important that this is +remembered at floor curve synthesis time. +\end{enumerate} + + + + +\subsubsection{residue decode} + +Unlike floors, which are decoded in channel order, the residue vectors +are decoded in submap order. + +for each submap \varname{[i]} in order from 0 ... \varname{[vorbis_mapping_submaps]}-1 + +\begin{enumerate} + \item \varname{[ch]} = 0 + \item for each channel \varname{[j]} in order from 0 ... \varname{[audio_channels]} - 1 + \begin{enumerate} + \item if channel \varname{[j]} in submap \varname{[i]} (vector \varname{[vorbis_mapping_mux]} element \varname{[j]} is equal to \varname{[i]}) + \begin{enumerate} + \item if vector \varname{[no_residue]} element \varname{[j]} is true + \begin{enumerate} + \item vector \varname{[do_not_decode_flag]} element \varname{[ch]} is set + \end{enumerate} + else + \begin{enumerate} + \item vector \varname{[do_not_decode_flag]} element \varname{[ch]} is unset + \end{enumerate} + + \item increment \varname{[ch]} + \end{enumerate} + + \end{enumerate} + \item \varname{[residue_number]} = vector \varname{[vorbis_mapping_submap_residue]} element \varname{[i]} + \item \varname{[residue_type]} = vector \varname{[vorbis_residue_types]} element \varname{[residue_number]} + \item decode \varname{[ch]} vectors using residue \varname{[residue_number]}, according to type \varname{[residue_type]}, also passing vector \varname{[do_not_decode_flag]} to indicate which vectors in the bundle should not be decoded. Correct per-vector decode length is \varname{[n]}/2. + \item \varname{[ch]} = 0 + \item for each channel \varname{[j]} in order from 0 ... \varname{[audio_channels]} + \begin{enumerate} + \item if channel \varname{[j]} is in submap \varname{[i]} (vector \varname{[vorbis_mapping_mux]} element \varname{[j]} is equal to \varname{[i]}) + \begin{enumerate} + \item residue vector for channel \varname{[j]} is set to decoded residue vector \varname{[ch]} + \item increment \varname{[ch]} + \end{enumerate} + + \end{enumerate} + +\end{enumerate} + + + +\subsubsection{inverse coupling} + +for each \varname{[i]} from \varname{[vorbis_mapping_coupling_steps]}-1 descending to 0 + +\begin{enumerate} + \item \varname{[magnitude_vector]} = the residue vector for channel +(vector \varname{[vorbis_mapping_magnitude]} element \varname{[i]}) + \item \varname{[angle_vector]} = the residue vector for channel (vector +\varname{[vorbis_mapping_angle]} element \varname{[i]}) + \item for each scalar value \varname{[M]} in vector \varname{[magnitude_vector]} and the corresponding scalar value \varname{[A]} in vector \varname{[angle_vector]}: + \begin{enumerate} + \item if (\varname{[M]} is greater than zero) + \begin{enumerate} + \item if (\varname{[A]} is greater than zero) + \begin{enumerate} + \item \varname{[new_M]} = \varname{[M]} + \item \varname{[new_A]} = \varname{[M]}-\varname{[A]} + \end{enumerate} + else + \begin{enumerate} + \item \varname{[new_A]} = \varname{[M]} + \item \varname{[new_M]} = \varname{[M]}+\varname{[A]} + \end{enumerate} + + \end{enumerate} + else + \begin{enumerate} + \item if (\varname{[A]} is greater than zero) + \begin{enumerate} + \item \varname{[new_M]} = \varname{[M]} + \item \varname{[new_A]} = \varname{[M]}+\varname{[A]} + \end{enumerate} + else + \begin{enumerate} + \item \varname{[new_A]} = \varname{[M]} + \item \varname{[new_M]} = \varname{[M]}-\varname{[A]} + \end{enumerate} + + \end{enumerate} + + \item set scalar value \varname{[M]} in vector \varname{[magnitude_vector]} to \varname{[new_M]} + \item set scalar value \varname{[A]} in vector \varname{[angle_vector]} to \varname{[new_A]} + \end{enumerate} + +\end{enumerate} + + + + +\subsubsection{dot product} + +For each channel, synthesize the floor curve from the decoded floor +information, according to packet type. Note that the vector synthesis +length for floor computation is \varname{[n]}/2. + +For each channel, multiply each element of the floor curve by each +element of that channel's residue vector. The result is the dot +product of the floor and residue vectors for each channel; the produced +vectors are the length \varname{[n]}/2 audio spectrum for each +channel. + +% TODO/FIXME: The following two paragraphs have identical twins +% in section 1 (under "compute floor/residue dot product") +One point is worth mentioning about this dot product; a common mistake +in a fixed point implementation might be to assume that a 32 bit +fixed-point representation for floor and residue and direct +multiplication of the vectors is sufficient for acceptable spectral +depth in all cases because it happens to mostly work with the current +Xiph.Org reference encoder. + +However, floor vector values can span \~140dB (\~24 bits unsigned), and +the audio spectrum vector should represent a minimum of 120dB (\~21 +bits with sign), even when output is to a 16 bit PCM device. For the +residue vector to represent full scale if the floor is nailed to +$-140$dB, it must be able to span 0 to $+140$dB. For the residue vector +to reach full scale if the floor is nailed at 0dB, it must be able to +represent $-140$dB to $+0$dB. Thus, in order to handle full range +dynamics, a residue vector may span $-140$dB to $+140$dB entirely within +spec. A 280dB range is approximately 48 bits with sign; thus the +residue vector must be able to represent a 48 bit range and the dot +product must be able to handle an effective 48 bit times 24 bit +multiplication. This range may be achieved using large (64 bit or +larger) integers, or implementing a movable binary point +representation. + + + +\subsubsection{inverse MDCT} + +Convert the audio spectrum vector of each channel back into time +domain PCM audio via an inverse Modified Discrete Cosine Transform +(MDCT). A detailed description of the MDCT is available in \cite{Sporer/Brandenburg/Edler}. The window +function used for the MDCT is the function described earlier. + + + +\subsubsection{overlap_add} + +Windowed MDCT output is overlapped and added with the right hand data +of the previous window such that the 3/4 point of the previous window +is aligned with the 1/4 point of the current window (as illustrated in +\xref{vorbis:spec:window}). The overlapped portion +produced from overlapping the previous and current frame data is +finished data to be returned by the decoder. This data spans from the +center of the previous window to the center of the current window. In +the case of same-sized windows, the amount of data to return is +one-half block consisting of and only of the overlapped portions. When +overlapping a short and long window, much of the returned range does not +actually overlap. This does not damage transform orthogonality. Pay +attention however to returning the correct data range; the amount of +data to be returned is: + +\begin{programlisting} +window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +\end{programlisting} + +from the center (element windowsize/2) of the previous window to the +center (element windowsize/2-1, inclusive) of the current window. + +Data is not returned from the first frame; it must be used to 'prime' +the decode engine. The encoder accounts for this priming when +calculating PCM offsets; after the first frame, the proper PCM output +offset is '0' (as no data has been returned yet). + + + +\subsubsection{output channel order} + +Vorbis I specifies only a channel mapping type 0. In mapping type 0, +channel mapping is implicitly defined as follows for standard audio +applications. As of revision 16781 (20100113), the specification adds +defined channel locations for 6.1 and 7.1 surround. Ordering/location +for greater-than-eight channels remains 'left to the implementation'. + +These channel orderings refer to order within the encoded stream. It +is naturally possible for a decoder to produce output with channels in +any order. Any such decoder should explicitly document channel +reordering behavior. + +\begin{description} %[style=nextline] + \item[one channel] + the stream is monophonic + +\item[two channels] + the stream is stereo. channel order: left, right + +\item[three channels] + the stream is a 1d-surround encoding. channel order: left, +center, right + +\item[four channels] + the stream is quadraphonic surround. channel order: front left, +front right, rear left, rear right + +\item[five channels] + the stream is five-channel surround. channel order: front left, +center, front right, rear left, rear right + +\item[six channels] + the stream is 5.1 surround. channel order: front left, center, +front right, rear left, rear right, LFE + +\item[seven channels] + the stream is 6.1 surround. channel order: front left, center, +front right, side left, side right, rear center, LFE + +\item[eight channels] + the stream is 7.1 surround. channel order: front left, center, +front right, side left, side right, rear left, rear right, +LFE + +\item[greater than eight channels] + channel use and order is defined by the application + +\end{description} + +Applications using Vorbis for dedicated purposes may define channel +mapping as seen fit. Future channel mappings (such as three and four +channel \href{http://www.ambisonic.net/}{Ambisonics}) will +make use of channel mappings other than mapping 0. + + diff --git a/Dependencies/libvorbis/doc/05-comment.tex b/Dependencies/libvorbis/doc/05-comment.tex new file mode 100644 index 0000000..79fd9e9 --- /dev/null +++ b/Dependencies/libvorbis/doc/05-comment.tex @@ -0,0 +1,240 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{comment field and header specification} \label{vorbis:spec:comment} + +\subsection{Overview} + +The Vorbis text comment header is the second (of three) header +packets that begin a Vorbis bitstream. It is meant for short text +comments, not arbitrary metadata; arbitrary metadata belongs in a +separate logical bitstream (usually an XML stream type) that provides +greater structure and machine parseability. + +The comment field is meant to be used much like someone jotting a +quick note on the bottom of a CDR. It should be a little information to +remember the disc by and explain it to others; a short, to-the-point +text note that need not only be a couple words, but isn't going to be +more than a short paragraph. The essentials, in other words, whatever +they turn out to be, eg: + +\begin{quote} +Honest Bob and the Factory-to-Dealer-Incentives, \textit{``I'm Still +Around''}, opening for Moxy Fr\"{u}vous, 1997. +\end{quote} + + + + +\subsection{Comment encoding} + +\subsubsection{Structure} + +The comment header is logically a list of eight-bit-clean vectors; the +number of vectors is bounded to $2^{32}-1$ and the length of each vector +is limited to $2^{32}-1$ bytes. The vector length is encoded; the vector +contents themselves are not null terminated. In addition to the vector +list, there is a single vector for vendor name (also 8 bit clean, +length encoded in 32 bits). For example, the 1.0 release of libvorbis +set the vendor string to ``Xiph.Org libVorbis I 20020717''. + +The vector lengths and number of vectors are stored lsb first, according +to the bit packing conventions of the vorbis codec. However, since data +in the comment header is octet-aligned, they can simply be read as +unaligned 32 bit little endian unsigned integers. + +The comment header is decoded as follows: + +\begin{programlisting} + 1) [vendor_length] = read an unsigned integer of 32 bits + 2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets + 3) [user_comment_list_length] = read an unsigned integer of 32 bits + 4) iterate [user_comment_list_length] times { + 5) [length] = read an unsigned integer of 32 bits + 6) this iteration's user comment = read a UTF-8 vector as [length] octets + } + 7) [framing_bit] = read a single bit as boolean + 8) if ( [framing_bit] unset or end-of-packet ) then ERROR + 9) done. +\end{programlisting} + + + + +\subsubsection{Content vector format} + +The comment vectors are structured similarly to a UNIX environment variable. +That is, comment fields consist of a field name and a corresponding value and +look like: + +\begin{quote} +\begin{programlisting} +comment[0]="ARTIST=me"; +comment[1]="TITLE=the sound of Vorbis"; +\end{programlisting} +\end{quote} + +The field name is case-insensitive and may consist of ASCII 0x20 +through 0x7D, 0x3D ('=') excluded. ASCII 0x41 through 0x5A inclusive +(characters A-Z) is to be considered equivalent to ASCII 0x61 through +0x7A inclusive (characters a-z). + + +The field name is immediately followed by ASCII 0x3D ('='); +this equals sign is used to terminate the field name. + + +0x3D is followed by 8 bit clean UTF-8 encoded value of the +field contents to the end of the field. + + +\paragraph{Field names} + +Below is a proposed, minimal list of standard field names with a +description of intended use. No single or group of field names is +mandatory; a comment header may contain one, all or none of the names +in this list. + +\begin{description} %[style=nextline] +\item[TITLE] + Track/Work name + +\item[VERSION] + The version field may be used to differentiate multiple +versions of the same track title in a single collection. (e.g. remix +info) + +\item[ALBUM] + The collection name to which this track belongs + +\item[TRACKNUMBER] + The track number of this piece if part of a specific larger collection or album + +\item[ARTIST] + The artist generally considered responsible for the work. In popular music this is usually the performing band or singer. For classical music it would be the composer. For an audio book it would be the author of the original text. + +\item[PERFORMER] + The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists. In an audio book it would be the actor who did the reading. In popular music this is typically the same as the ARTIST and is omitted. + +\item[COPYRIGHT] + Copyright attribution, e.g., '2001 Nobody's Band' or '1999 Jack Moffitt' + +\item[LICENSE] + License information, eg, 'All Rights Reserved', 'Any +Use Permitted', a URL to a license such as a Creative Commons license +("www.creativecommons.org/blahblah/license.html") or the EFF Open +Audio License ('distributed under the terms of the Open Audio +License. see http://www.eff.org/IP/Open_licenses/eff_oal.html for +details'), etc. + +\item[ORGANIZATION] + Name of the organization producing the track (i.e. +the 'record label') + +\item[DESCRIPTION] + A short text description of the contents + +\item[GENRE] + A short text indication of music genre + +\item[DATE] + Date the track was recorded + +\item[LOCATION] + Location where track was recorded + +\item[CONTACT] + Contact information for the creators or distributors of the track. This could be a URL, an email address, the physical address of the producing label. + +\item[ISRC] + International Standard Recording Code for the +track; see \href{http://www.ifpi.org/isrc/}{the ISRC +intro page} for more information on ISRC numbers. + +\end{description} + + + +\paragraph{Implications} + +Field names should not be 'internationalized'; this is a +concession to simplicity not an attempt to exclude the majority of +the world that doesn't speak English. Field \emph{contents}, +however, use the UTF-8 character encoding to allow easy representation +of any language. + +We have the length of the entirety of the field and restrictions on +the field name so that the field name is bounded in a known way. Thus +we also have the length of the field contents. + +Individual 'vendors' may use non-standard field names within +reason. The proper use of comment fields should be clear through +context at this point. Abuse will be discouraged. + +There is no vendor-specific prefix to 'nonstandard' field names. +Vendors should make some effort to avoid arbitrarily polluting the +common namespace. We will generally collect the more useful tags +here to help with standardization. + +Field names are not required to be unique (occur once) within a +comment header. As an example, assume a track was recorded by three +well know artists; the following is permissible, and encouraged: + +\begin{quote} +\begin{programlisting} +ARTIST=Dizzy Gillespie +ARTIST=Sonny Rollins +ARTIST=Sonny Stitt +\end{programlisting} +\end{quote} + + + + + + + +\subsubsection{Encoding} + +The comment header comprises the entirety of the second bitstream +header packet. Unlike the first bitstream header packet, it is not +generally the only packet on the second page and may not be restricted +to within the second bitstream page. The length of the comment header +packet is (practically) unbounded. The comment header packet is not +optional; it must be present in the bitstream even if it is +effectively empty. + +The comment header is encoded as follows (as per Ogg's standard +bitstream mapping which renders least-significant-bit of the word to be +coded into the least significant available bit of the current +bitstream octet first): + +\begin{enumerate} + \item + Vendor string length (32 bit unsigned quantity specifying number of octets) + + \item + Vendor string ([vendor string length] octets coded from beginning of string to end of string, not null terminated) + + \item + Number of comment fields (32 bit unsigned quantity specifying number of fields) + + \item + Comment field 0 length (if [Number of comment fields] $>0$; 32 bit unsigned quantity specifying number of octets) + + \item + Comment field 0 ([Comment field 0 length] octets coded from beginning of string to end of string, not null terminated) + + \item + Comment field 1 length (if [Number of comment fields] $>1$...)... + +\end{enumerate} + + +This is actually somewhat easier to describe in code; implementation of the above can be found in \filename{vorbis/lib/info.c}, \function{_vorbis_pack_comment()} and \function{_vorbis_unpack_comment()}. + + + + + + diff --git a/Dependencies/libvorbis/doc/06-floor0.tex b/Dependencies/libvorbis/doc/06-floor0.tex new file mode 100644 index 0000000..373a9bb --- /dev/null +++ b/Dependencies/libvorbis/doc/06-floor0.tex @@ -0,0 +1,192 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Floor type 0 setup and decode} \label{vorbis:spec:floor0} + +\subsection{Overview} + +Vorbis floor type zero uses Line Spectral Pair (LSP, also alternately +known as Line Spectral Frequency or LSF) representation to encode a +smooth spectral envelope curve as the frequency response of the LSP +filter. This representation is equivalent to a traditional all-pole +infinite impulse response filter as would be used in linear predictive +coding; LSP representation may be converted to LPC representation and +vice-versa. + + + +\subsection{Floor 0 format} + +Floor zero configuration consists of six integer fields and a list of +VQ codebooks for use in coding/decoding the LSP filter coefficient +values used by each frame. + +\subsubsection{header decode} + +Configuration information for instances of floor zero decodes from the +codec setup header (third packet). configuration decode proceeds as +follows: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [floor0_order] = read an unsigned integer of 8 bits + 2) [floor0_rate] = read an unsigned integer of 16 bits + 3) [floor0_bark_map_size] = read an unsigned integer of 16 bits + 4) [floor0_amplitude_bits] = read an unsigned integer of six bits + 5) [floor0_amplitude_offset] = read an unsigned integer of eight bits + 6) [floor0_number_of_books] = read an unsigned integer of four bits and add 1 + 7) array [floor0_book_list] = read a list of [floor0_number_of_books] unsigned integers of eight bits each; +\end{Verbatim} + +An end-of-packet condition during any of these bitstream reads renders +this stream undecodable. In addition, any element of the array +\varname{[floor0_book_list]} that is greater than the maximum codebook +number for this bitstream is an error condition that also renders the +stream undecodable. + + + +\subsubsection{packet decode} \label{vorbis:spec:floor0-decode} + +Extracting a floor0 curve from an audio packet consists of first +decoding the curve amplitude and \varname{[floor0_order]} LSP +coefficient values from the bitstream, and then computing the floor +curve, which is defined as the frequency response of the decoded LSP +filter. + +Packet decode proceeds as follows: +\begin{Verbatim}[commandchars=\\\{\}] + 1) [amplitude] = read an unsigned integer of [floor0_amplitude_bits] bits + 2) if ( [amplitude] is greater than zero ) \{ + 3) [coefficients] is an empty, zero length vector + 4) [booknumber] = read an unsigned integer of \link{vorbis:spec:ilog}{ilog}( [floor0_number_of_books] ) bits + 5) if ( [booknumber] is greater than the highest number decode codebook ) then packet is undecodable + 6) [last] = zero; + 7) vector [temp_vector] = read vector from bitstream using codebook number [floor0_book_list] element [booknumber] in VQ context. + 8) add the scalar value [last] to each scalar in vector [temp_vector] + 9) [last] = the value of the last scalar in vector [temp_vector] + 10) concatenate [temp_vector] onto the end of the [coefficients] vector + 11) if (length of vector [coefficients] is less than [floor0_order], continue at step 6 + + \} + + 12) done. + +\end{Verbatim} + +Take note of the following properties of decode: +\begin{itemize} + \item An \varname{[amplitude]} value of zero must result in a return code that indicates this channel is unused in this frame (the output of the channel will be all-zeroes in synthesis). Several later stages of decode don't occur for an unused channel. + \item An end-of-packet condition during decode should be considered a +nominal occruence; if end-of-packet is reached during any read +operation above, floor decode is to return 'unused' status as if the +\varname{[amplitude]} value had read zero at the beginning of decode. + + \item The book number used for decode +can, in fact, be stored in the bitstream in \link{vorbis:spec:ilog}{ilog}( \varname{[floor0_number_of_books]} - +1 ) bits. Nevertheless, the above specification is correct and values +greater than the maximum possible book value are reserved. + + \item The number of scalars read into the vector \varname{[coefficients]} +may be greater than \varname{[floor0_order]}, the number actually +required for curve computation. For example, if the VQ codebook used +for the floor currently being decoded has a +\varname{[codebook_dimensions]} value of three and +\varname{[floor0_order]} is ten, the only way to fill all the needed +scalars in \varname{[coefficients]} is to to read a total of twelve +scalars as four vectors of three scalars each. This is not an error +condition, and care must be taken not to allow a buffer overflow in +decode. The extra values are not used and may be ignored or discarded. +\end{itemize} + + + + +\subsubsection{curve computation} \label{vorbis:spec:floor0-synth} + +Given an \varname{[amplitude]} integer and \varname{[coefficients]} +vector from packet decode as well as the [floor0_order], +[floor0_rate], [floor0_bark_map_size], [floor0_amplitude_bits] and +[floor0_amplitude_offset] values from floor setup, and an output +vector size \varname{[n]} specified by the decode process, we compute a +floor output vector. + +If the value \varname{[amplitude]} is zero, the return value is a +length \varname{[n]} vector with all-zero scalars. Otherwise, begin by +assuming the following definitions for the given vector to be +synthesized: + + \begin{displaymath} + \mathrm{map}_i = \left\{ + \begin{array}{ll} + \min ( + \mathtt{floor0\_bark\_map\_size} - 1, + foobar + ) & \textrm{for } i \in [0,n-1] \\ + -1 & \textrm{for } i = n + \end{array} + \right. + \end{displaymath} + + where + + \begin{displaymath} + foobar = + \left\lfloor + \mathrm{bark}\left(\frac{\mathtt{floor0\_rate} \cdot i}{2n}\right) \cdot \frac{\mathtt{floor0\_bark\_map\_size}} {\mathrm{bark}(.5 \cdot \mathtt{floor0\_rate})} + \right\rfloor + \end{displaymath} + + and + + \begin{displaymath} + \mathrm{bark}(x) = 13.1 \arctan (.00074x) + 2.24 \arctan (.0000000185x^2 + .0001x) + \end{displaymath} + +The above is used to synthesize the LSP curve on a Bark-scale frequency +axis, then map the result to a linear-scale frequency axis. +Similarly, the below calculation synthesizes the output LSP curve \varname{[output]} on a log +(dB) amplitude scale, mapping it to linear amplitude in the last step: + +\begin{enumerate} + \item \varname{[i]} = 0 + \item \varname{[$\omega$]} = $\pi$ * map element \varname{[i]} / \varname{[floor0_bark_map_size]} + \item if ( \varname{[floor0_order]} is odd ) { + \begin{enumerate} + \item calculate \varname{[p]} and \varname{[q]} according to: + \begin{eqnarray*} + p & = & (1 - \cos^2\omega)\prod_{j=0}^{\frac{\mathtt{floor0\_order}-3}{2}} 4 (\cos([\mathtt{coefficients}]_{2j+1}) - \cos \omega)^2 \\ + q & = & \frac{1}{4} \prod_{j=0}^{\frac{\mathtt{floor0\_order}-1}{2}} 4 (\cos([\mathtt{coefficients}]_{2j}) - \cos \omega)^2 + \end{eqnarray*} + + \end{enumerate} + } else \varname{[floor0_order]} is even { + \begin{enumerate} + \item calculate \varname{[p]} and \varname{[q]} according to: + \begin{eqnarray*} + p & = & \frac{(1 - \cos^2\omega)}{2} \prod_{j=0}^{\frac{\mathtt{floor0\_order}-2}{2}} 4 (\cos([\mathtt{coefficients}]_{2j+1}) - \cos \omega)^2 \\ + q & = & \frac{(1 + \cos^2\omega)}{2} \prod_{j=0}^{\frac{\mathtt{floor0\_order}-2}{2}} 4 (\cos([\mathtt{coefficients}]_{2j}) - \cos \omega)^2 + \end{eqnarray*} + + \end{enumerate} + } + + \item calculate \varname{[linear_floor_value]} according to: + \begin{displaymath} + \exp \left( .11512925 \left(\frac{\mathtt{amplitude} \cdot \mathtt{floor0\_amplitute\_offset}}{(2^{\mathtt{floor0\_amplitude\_bits}}-1)\sqrt{p+q}} + - \mathtt{floor0\_amplitude\_offset} \right) \right) + \end{displaymath} + + \item \varname{[iteration_condition]} = map element \varname{[i]} + \item \varname{[output]} element \varname{[i]} = \varname{[linear_floor_value]} + \item increment \varname{[i]} + \item if ( map element \varname{[i]} is equal to \varname{[iteration_condition]} ) continue at step 5 + \item if ( \varname{[i]} is less than \varname{[n]} ) continue at step 2 + \item done +\end{enumerate} + + + + + + + diff --git a/Dependencies/libvorbis/doc/07-floor1.tex b/Dependencies/libvorbis/doc/07-floor1.tex new file mode 100644 index 0000000..216eb1d --- /dev/null +++ b/Dependencies/libvorbis/doc/07-floor1.tex @@ -0,0 +1,392 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Floor type 1 setup and decode} \label{vorbis:spec:floor1} + +\subsection{Overview} + +Vorbis floor type one uses a piecewise straight-line representation to +encode a spectral envelope curve. The representation plots this curve +mechanically on a linear frequency axis and a logarithmic (dB) +amplitude axis. The integer plotting algorithm used is similar to +Bresenham's algorithm. + + + +\subsection{Floor 1 format} + +\subsubsection{model} + +Floor type one represents a spectral curve as a series of +line segments. Synthesis constructs a floor curve using iterative +prediction in a process roughly equivalent to the following simplified +description: + +\begin{itemize} + \item the first line segment (base case) is a logical line spanning +from x_0,y_0 to x_1,y_1 where in the base case x_0=0 and x_1=[n], the +full range of the spectral floor to be computed. + +\item the induction step chooses a point x_new within an existing +logical line segment and produces a y_new value at that point computed +from the existing line's y value at x_new (as plotted by the line) and +a difference value decoded from the bitstream packet. + +\item floor computation produces two new line segments, one running from +x_0,y_0 to x_new,y_new and from x_new,y_new to x_1,y_1. This step is +performed logically even if y_new represents no change to the +amplitude value at x_new so that later refinement is additionally +bounded at x_new. + +\item the induction step repeats, using a list of x values specified in +the codec setup header at floor 1 initialization time. Computation +is completed at the end of the x value list. + +\end{itemize} + + +Consider the following example, with values chosen for ease of +understanding rather than representing typical configuration: + +For the below example, we assume a floor setup with an [n] of 128. +The list of selected X values in increasing order is +0,16,32,48,64,80,96,112 and 128. In list order, the values interleave +as 0, 128, 64, 32, 96, 16, 48, 80 and 112. The corresponding +list-order Y values as decoded from an example packet are 110, 20, -5, +-45, 0, -25, -10, 30 and -10. We compute the floor in the following +way, beginning with the first line: + +\begin{center} +\includegraphics[width=8cm]{floor1-1} +\captionof{figure}{graph of example floor} +\end{center} + +We now draw new logical lines to reflect the correction to new_Y, and +iterate for X positions 32 and 96: + +\begin{center} +\includegraphics[width=8cm]{floor1-2} +\captionof{figure}{graph of example floor} +\end{center} + +Although the new Y value at X position 96 is unchanged, it is still +used later as an endpoint for further refinement. From here on, the +pattern should be clear; we complete the floor computation as follows: + +\begin{center} +\includegraphics[width=8cm]{floor1-3} +\captionof{figure}{graph of example floor} +\end{center} + +\begin{center} +\includegraphics[width=8cm]{floor1-4} +\captionof{figure}{graph of example floor} +\end{center} + +A more efficient algorithm with carefully defined integer rounding +behavior is used for actual decode, as described later. The actual +algorithm splits Y value computation and line plotting into two steps +with modifications to the above algorithm to eliminate noise +accumulation through integer roundoff/truncation. + + + +\subsubsection{header decode} + +A list of floor X values is stored in the packet header in interleaved +format (used in list order during packet decode and synthesis). This +list is split into partitions, and each partition is assigned to a +partition class. X positions 0 and [n] are implicit and do not belong +to an explicit partition or partition class. + +A partition class consists of a representation vector width (the +number of Y values which the partition class encodes at once), a +'subclass' value representing the number of alternate entropy books +the partition class may use in representing Y values, the list of +[subclass] books and a master book used to encode which alternate +books were chosen for representation in a given packet. The +master/subclass mechanism is meant to be used as a flexible +representation cascade while still using codebooks only in a scalar +context. + +\begin{Verbatim}[commandchars=\\\{\}] + + 1) [floor1_partitions] = read 5 bits as unsigned integer + 2) [maximum_class] = -1 + 3) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ + + 4) vector [floor1_partition_class_list] element [i] = read 4 bits as unsigned integer + + \} + + 5) [maximum_class] = largest integer scalar value in vector [floor1_partition_class_list] + 6) iterate [i] over the range 0 ... [maximum_class] \{ + + 7) vector [floor1_class_dimensions] element [i] = read 3 bits as unsigned integer and add 1 + 8) vector [floor1_class_subclasses] element [i] = read 2 bits as unsigned integer + 9) if ( vector [floor1_class_subclasses] element [i] is nonzero ) \{ + + 10) vector [floor1_class_masterbooks] element [i] = read 8 bits as unsigned integer + + \} + + 11) iterate [j] over the range 0 ... (2 exponent [floor1_class_subclasses] element [i]) - 1 \{ + + 12) array [floor1_subclass_books] element [i],[j] = + read 8 bits as unsigned integer and subtract one + \} + \} + + 13) [floor1_multiplier] = read 2 bits as unsigned integer and add one + 14) [rangebits] = read 4 bits as unsigned integer + 15) vector [floor1_X_list] element [0] = 0 + 16) vector [floor1_X_list] element [1] = 2 exponent [rangebits]; + 17) [floor1_values] = 2 + 18) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ + + 19) [current_class_number] = vector [floor1_partition_class_list] element [i] + 20) iterate [j] over the range 0 ... ([floor1_class_dimensions] element [current_class_number])-1 \{ + 21) vector [floor1_X_list] element ([floor1_values]) = + read [rangebits] bits as unsigned integer + 22) increment [floor1_values] by one + \} + \} + + 23) done +\end{Verbatim} + +An end-of-packet condition while reading any aspect of a floor 1 +configuration during setup renders a stream undecodable. In addition, +a \varname{[floor1_class_masterbooks]} or +\varname{[floor1_subclass_books]} scalar element greater than the +highest numbered codebook configured in this stream is an error +condition that renders the stream undecodable. All vector +[floor1_x_list] element values must be unique within the vector; a +non-unique value renders the stream undecodable. + +\paragraph{packet decode} \label{vorbis:spec:floor1-decode} + +Packet decode begins by checking the \varname{[nonzero]} flag: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [nonzero] = read 1 bit as boolean +\end{Verbatim} + +If \varname{[nonzero]} is unset, that indicates this channel contained +no audio energy in this frame. Decode immediately returns a status +indicating this floor curve (and thus this channel) is unused this +frame. (A return status of 'unused' is different from decoding a +floor that has all points set to minimum representation amplitude, +which happens to be approximately -140dB). + + +Assuming \varname{[nonzero]} is set, decode proceeds as follows: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1_multiplier]-1) + 2) vector [floor1_Y] element [0] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer + 3) vector [floor1_Y] element [1] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer + 4) [offset] = 2; + 5) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ + + 6) [class] = vector [floor1_partition_class] element [i] + 7) [cdim] = vector [floor1_class_dimensions] element [class] + 8) [cbits] = vector [floor1_class_subclasses] element [class] + 9) [csub] = (2 exponent [cbits])-1 + 10) [cval] = 0 + 11) if ( [cbits] is greater than zero ) \{ + + 12) [cval] = read from packet using codebook number + (vector [floor1_class_masterbooks] element [class]) in scalar context + \} + + 13) iterate [j] over the range 0 ... [cdim]-1 \{ + + 14) [book] = array [floor1_subclass_books] element [class],([cval] bitwise AND [csub]) + 15) [cval] = [cval] right shifted [cbits] bits + 16) if ( [book] is not less than zero ) \{ + + 17) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook + [book] in scalar context + + \} else [book] is less than zero \{ + + 18) vector [floor1_Y] element ([j]+[offset]) = 0 + + \} + \} + + 19) [offset] = [offset] + [cdim] + + \} + + 20) done +\end{Verbatim} + +An end-of-packet condition during curve decode should be considered a +nominal occurrence; if end-of-packet is reached during any read +operation above, floor decode is to return 'unused' status as if the +\varname{[nonzero]} flag had been unset at the beginning of decode. + + +Vector \varname{[floor1_Y]} contains the values from packet decode +needed for floor 1 synthesis. + + + +\paragraph{curve computation} \label{vorbis:spec:floor1-synth} + +Curve computation is split into two logical steps; the first step +derives final Y amplitude values from the encoded, wrapped difference +values taken from the bitstream. The second step plots the curve +lines. Also, although zero-difference values are used in the +iterative prediction to find final Y values, these points are +conditionally skipped during final line computation in step two. +Skipping zero-difference values allows a smoother line fit. + +Although some aspects of the below algorithm look like inconsequential +optimizations, implementors are warned to follow the details closely. +Deviation from implementing a strictly equivalent algorithm can result +in serious decoding errors. + +\begin{description} +\item[step 1: amplitude value synthesis] + +Unwrap the always-positive-or-zero values read from the packet into ++/- difference values, then apply to line prediction. + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1_multiplier]-1) + 2) vector [floor1_step2_flag] element [0] = set + 3) vector [floor1_step2_flag] element [1] = set + 4) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0] + 5) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1] + 6) iterate [i] over the range 2 ... [floor1_values]-1 \{ + + 7) [low_neighbor_offset] = \link{vorbis:spec:low:neighbor}{low_neighbor}([floor1_X_list],[i]) + 8) [high_neighbor_offset] = \link{vorbis:spec:high:neighbor}{high_neighbor}([floor1_X_list],[i]) + + 9) [predicted] = \link{vorbis:spec:render:point}{render_point}( vector [floor1_X_list] element [low_neighbor_offset], + vector [floor1_final_Y] element [low_neighbor_offset], + vector [floor1_X_list] element [high_neighbor_offset], + vector [floor1_final_Y] element [high_neighbor_offset], + vector [floor1_X_list] element [i] ) + + 10) [val] = vector [floor1_Y] element [i] + 11) [highroom] = [range] - [predicted] + 12) [lowroom] = [predicted] + 13) if ( [highroom] is less than [lowroom] ) \{ + + 14) [room] = [highroom] * 2 + + \} else [highroom] is not less than [lowroom] \{ + + 15) [room] = [lowroom] * 2 + + \} + + 16) if ( [val] is nonzero ) \{ + + 17) vector [floor1_step2_flag] element [low_neighbor_offset] = set + 18) vector [floor1_step2_flag] element [high_neighbor_offset] = set + 19) vector [floor1_step2_flag] element [i] = set + 20) if ( [val] is greater than or equal to [room] ) \{ + + 21) if ( [highroom] is greater than [lowroom] ) \{ + + 22) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted] + + \} else [highroom] is not greater than [lowroom] \{ + + 23) vector [floor1_final_Y] element [i] = [predicted] - [val] + [highroom] - 1 + + \} + + \} else [val] is less than [room] \{ + + 24) if ([val] is odd) \{ + + 25) vector [floor1_final_Y] element [i] = + [predicted] - (([val] + 1) divided by 2 using integer division) + + \} else [val] is even \{ + + 26) vector [floor1_final_Y] element [i] = + [predicted] + ([val] / 2 using integer division) + + \} + + \} + + \} else [val] is zero \{ + + 27) vector [floor1_step2_flag] element [i] = unset + 28) vector [floor1_final_Y] element [i] = [predicted] + + \} + + \} + + 29) done + +\end{Verbatim} + + + +\item[step 2: curve synthesis] + +Curve synthesis generates a return vector \varname{[floor]} of length +\varname{[n]} (where \varname{[n]} is provided by the decode process +calling to floor decode). Floor 1 curve synthesis makes use of the +\varname{[floor1_X_list]}, \varname{[floor1_final_Y]} and +\varname{[floor1_step2_flag]} vectors, as well as [floor1_multiplier] +and [floor1_values] values. + +Decode begins by sorting the scalars from vectors +\varname{[floor1_X_list]}, \varname{[floor1_final_Y]} and +\varname{[floor1_step2_flag]} together into new vectors +\varname{[floor1_X_list]'}, \varname{[floor1_final_Y]'} and +\varname{[floor1_step2_flag]'} according to ascending sort order of the +values in \varname{[floor1_X_list]}. That is, sort the values of +\varname{[floor1_X_list]} and then apply the same permutation to +elements of the other two vectors so that the X, Y and step2_flag +values still match. + +Then compute the final curve in one pass: + +\begin{Verbatim}[commandchars=\\\{\}] + 1) [hx] = 0 + 2) [lx] = 0 + 3) [ly] = vector [floor1_final_Y]' element [0] * [floor1_multiplier] + 4) iterate [i] over the range 1 ... [floor1_values]-1 \{ + + 5) if ( [floor1_step2_flag]' element [i] is set ) \{ + + 6) [hy] = [floor1_final_Y]' element [i] * [floor1_multiplier] + 7) [hx] = [floor1_X_list]' element [i] + 8) \link{vorbis:spec:render:line}{render_line}( [lx], [ly], [hx], [hy], [floor] ) + 9) [lx] = [hx] + 10) [ly] = [hy] + \} + \} + + 11) if ( [hx] is less than [n] ) \{ + + 12) \link{vorbis:spec:render:line}{render_line}( [hx], [hy], [n], [hy], [floor] ) + + \} + + 13) if ( [hx] is greater than [n] ) \{ + + 14) truncate vector [floor] to [n] elements + + \} + + 15) for each scalar in vector [floor], perform a lookup substitution using + the scalar value from [floor] as an offset into the vector \link{vorbis:spec:floor1:inverse:dB:table}{[floor1_inverse_dB_static_table]} + + 16) done + +\end{Verbatim} + +\end{description} diff --git a/Dependencies/libvorbis/doc/08-residue.tex b/Dependencies/libvorbis/doc/08-residue.tex new file mode 100644 index 0000000..767c1fa --- /dev/null +++ b/Dependencies/libvorbis/doc/08-residue.tex @@ -0,0 +1,452 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Residue setup and decode} \label{vorbis:spec:residue} + +\subsection{Overview} + +A residue vector represents the fine detail of the audio spectrum of +one channel in an audio frame after the encoder subtracts the floor +curve and performs any channel coupling. A residue vector may +represent spectral lines, spectral magnitude, spectral phase or +hybrids as mixed by channel coupling. The exact semantic content of +the vector does not matter to the residue abstraction. + +Whatever the exact qualities, the Vorbis residue abstraction codes the +residue vectors into the bitstream packet, and then reconstructs the +vectors during decode. Vorbis makes use of three different encoding +variants (numbered 0, 1 and 2) of the same basic vector encoding +abstraction. + + + +\subsection{Residue format} + +Residue format partitions each vector in the vector bundle into chunks, +classifies each chunk, encodes the chunk classifications and finally +encodes the chunks themselves using the the specific VQ arrangement +defined for each selected classification. +The exact interleaving and partitioning vary by residue encoding number, +however the high-level process used to classify and encode the residue +vector is the same in all three variants. + +A set of coded residue vectors are all of the same length. High level +coding structure, ignoring for the moment exactly how a partition is +encoded and simply trusting that it is, is as follows: + +\begin{itemize} +\item Each vector is partitioned into multiple equal sized chunks +according to configuration specified. If we have a vector size of +\emph{n}, a partition size \emph{residue_partition_size}, and a total +of \emph{ch} residue vectors, the total number of partitioned chunks +coded is \emph{n}/\emph{residue_partition_size}*\emph{ch}. It is +important to note that the integer division truncates. In the below +example, we assume an example \emph{residue_partition_size} of 8. + +\item Each partition in each vector has a classification number that +specifies which of multiple configured VQ codebook setups are used to +decode that partition. The classification numbers of each partition +can be thought of as forming a vector in their own right, as in the +illustration below. Just as the residue vectors are coded in grouped +partitions to increase encoding efficiency, the classification vector +is also partitioned into chunks. The integer elements of each scalar +in a classification chunk are built into a single scalar that +represents the classification numbers in that chunk. In the below +example, the classification codeword encodes two classification +numbers. + +\item The values in a residue vector may be encoded monolithically in a +single pass through the residue vector, but more often efficient +codebook design dictates that each vector is encoded as the additive +sum of several passes through the residue vector using more than one +VQ codebook. Thus, each residue value potentially accumulates values +from multiple decode passes. The classification value associated with +a partition is the same in each pass, thus the classification codeword +is coded only in the first pass. + +\end{itemize} + + +\begin{center} +\includegraphics[width=\textwidth]{residue-pack} +\captionof{figure}{illustration of residue vector format} +\end{center} + + + +\subsection{residue 0} + +Residue 0 and 1 differ only in the way the values within a residue +partition are interleaved during partition encoding (visually treated +as a black box--or cyan box or brown box--in the above figure). + +Residue encoding 0 interleaves VQ encoding according to the +dimension of the codebook used to encode a partition in a specific +pass. The dimension of the codebook need not be the same in multiple +passes, however the partition size must be an even multiple of the +codebook dimension. + +As an example, assume a partition vector of size eight, to be encoded +by residue 0 using codebook sizes of 8, 4, 2 and 1: + +\begin{programlisting} + + original residue vector: [ 0 1 2 3 4 5 6 7 ] + +codebook dimensions = 8 encoded as: [ 0 1 2 3 4 5 6 7 ] + +codebook dimensions = 4 encoded as: [ 0 2 4 6 ], [ 1 3 5 7 ] + +codebook dimensions = 2 encoded as: [ 0 4 ], [ 1 5 ], [ 2 6 ], [ 3 7 ] + +codebook dimensions = 1 encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] + +\end{programlisting} + +It is worth mentioning at this point that no configurable value in the +residue coding setup is restricted to a power of two. + + + +\subsection{residue 1} + +Residue 1 does not interleave VQ encoding. It represents partition +vector scalars in order. As with residue 0, however, partition length +must be an integer multiple of the codebook dimension, although +dimension may vary from pass to pass. + +As an example, assume a partition vector of size eight, to be encoded +by residue 0 using codebook sizes of 8, 4, 2 and 1: + +\begin{programlisting} + + original residue vector: [ 0 1 2 3 4 5 6 7 ] + +codebook dimensions = 8 encoded as: [ 0 1 2 3 4 5 6 7 ] + +codebook dimensions = 4 encoded as: [ 0 1 2 3 ], [ 4 5 6 7 ] + +codebook dimensions = 2 encoded as: [ 0 1 ], [ 2 3 ], [ 4 5 ], [ 6 7 ] + +codebook dimensions = 1 encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] + +\end{programlisting} + + + +\subsection{residue 2} + +Residue type two can be thought of as a variant of residue type 1. +Rather than encoding multiple passed-in vectors as in residue type 1, +the \emph{ch} passed in vectors of length \emph{n} are first +interleaved and flattened into a single vector of length +\emph{ch}*\emph{n}. Encoding then proceeds as in type 1. Decoding is +as in type 1 with decode interleave reversed. If operating on a single +vector to begin with, residue type 1 and type 2 are equivalent. + +\begin{center} +\includegraphics[width=\textwidth]{residue2} +\captionof{figure}{illustration of residue type 2} +\end{center} + + +\subsection{Residue decode} + +\subsubsection{header decode} + +Header decode for all three residue types is identical. +\begin{programlisting} + 1) [residue_begin] = read 24 bits as unsigned integer + 2) [residue_end] = read 24 bits as unsigned integer + 3) [residue_partition_size] = read 24 bits as unsigned integer and add one + 4) [residue_classifications] = read 6 bits as unsigned integer and add one + 5) [residue_classbook] = read 8 bits as unsigned integer +\end{programlisting} + +\varname{[residue_begin]} and +\varname{[residue_end]} select the specific sub-portion of +each vector that is actually coded; it implements akin to a bandpass +where, for coding purposes, the vector effectively begins at element +\varname{[residue_begin]} and ends at +\varname{[residue_end]}. Preceding and following values in +the unpacked vectors are zeroed. Note that for residue type 2, these +values as well as \varname{[residue_partition_size]}apply to +the interleaved vector, not the individual vectors before interleave. +\varname{[residue_partition_size]} is as explained above, +\varname{[residue_classifications]} is the number of possible +classification to which a partition can belong and +\varname{[residue_classbook]} is the codebook number used to +code classification codewords. The number of dimensions in book +\varname{[residue_classbook]} determines how many +classification values are grouped into a single classification +codeword. Note that the number of entries and dimensions in book +\varname{[residue_classbook]}, along with +\varname{[residue_classifications]}, overdetermines to +possible number of classification codewords. +If \varname{[residue_classifications]}\^{}\varname{[residue_classbook]}.dimensions +exceeds \varname{[residue_classbook]}.entries, the +bitstream should be regarded to be undecodable. + +Next we read a bitmap pattern that specifies which partition classes +code values in which passes. + +\begin{programlisting} + 1) iterate [i] over the range 0 ... [residue_classifications]-1 { + + 2) [high_bits] = 0 + 3) [low_bits] = read 3 bits as unsigned integer + 4) [bitflag] = read one bit as boolean + 5) if ( [bitflag] is set ) then [high_bits] = read five bits as unsigned integer + 6) vector [residue_cascade] element [i] = [high_bits] * 8 + [low_bits] + } + 7) done +\end{programlisting} + +Finally, we read in a list of book numbers, each corresponding to +specific bit set in the cascade bitmap. We loop over the possible +codebook classifications and the maximum possible number of encoding +stages (8 in Vorbis I, as constrained by the elements of the cascade +bitmap being eight bits): + +\begin{programlisting} + 1) iterate [i] over the range 0 ... [residue_classifications]-1 { + + 2) iterate [j] over the range 0 ... 7 { + + 3) if ( vector [residue_cascade] element [i] bit [j] is set ) { + + 4) array [residue_books] element [i][j] = read 8 bits as unsigned integer + + } else { + + 5) array [residue_books] element [i][j] = unused + + } + } + } + + 6) done +\end{programlisting} + +An end-of-packet condition at any point in header decode renders the +stream undecodable. In addition, any codebook number greater than the +maximum numbered codebook set up in this stream also renders the +stream undecodable. All codebooks in array [residue_books] are +required to have a value mapping. The presence of codebook in array +[residue_books] without a value mapping (maptype equals zero) renders +the stream undecodable. + + + +\subsubsection{packet decode} + +Format 0 and 1 packet decode is identical except for specific +partition interleave. Format 2 packet decode can be built out of the +format 1 decode process. Thus we describe first the decode +infrastructure identical to all three formats. + +In addition to configuration information, the residue decode process +is passed the number of vectors in the submap bundle and a vector of +flags indicating if any of the vectors are not to be decoded. If the +passed in number of vectors is 3 and vector number 1 is marked 'do not +decode', decode skips vector 1 during the decode loop. However, even +'do not decode' vectors are allocated and zeroed. + +Depending on the values of \varname{[residue_begin]} and +\varname{[residue_end]}, it is obvious that the encoded +portion of a residue vector may be the entire possible residue vector +or some other strict subset of the actual residue vector size with +zero padding at either uncoded end. However, it is also possible to +set \varname{[residue_begin]} and +\varname{[residue_end]} to specify a range partially or +wholly beyond the maximum vector size. Before beginning residue +decode, limit \varname{[residue_begin]} and +\varname{[residue_end]} to the maximum possible vector size +as follows. We assume that the number of vectors being encoded, +\varname{[ch]} is provided by the higher level decoding +process. + +\begin{programlisting} + 1) [actual_size] = current blocksize/2; + 2) if residue encoding is format 2 + 3) [actual_size] = [actual_size] * [ch]; + 4) [limit_residue_begin] = maximum of ([residue_begin],[actual_size]); + 5) [limit_residue_end] = maximum of ([residue_end],[actual_size]); +\end{programlisting} + +The following convenience values are conceptually useful to clarifying +the decode process: + +\begin{programlisting} + 1) [classwords_per_codeword] = [codebook_dimensions] value of codebook [residue_classbook] + 2) [n_to_read] = [limit_residue_end] - [limit_residue_begin] + 3) [partitions_to_read] = [n_to_read] / [residue_partition_size] +\end{programlisting} + +Packet decode proceeds as follows, matching the description offered earlier in the document. +\begin{programlisting} + 1) allocate and zero all vectors that will be returned. + 2) if ([n_to_read] is zero), stop; there is no residue to decode. + 3) iterate [pass] over the range 0 ... 7 { + + 4) [partition_count] = 0 + + 5) while [partition_count] is less than [partitions_to_read] + + 6) if ([pass] is zero) { + + 7) iterate [j] over the range 0 .. [ch]-1 { + + 8) if vector [j] is not marked 'do not decode' { + + 9) [temp] = read from packet using codebook [residue_classbook] in scalar context + 10) iterate [i] descending over the range [classwords_per_codeword]-1 ... 0 { + + 11) array [classifications] element [j],([i]+[partition_count]) = + [temp] integer modulo [residue_classifications] + 12) [temp] = [temp] / [residue_classifications] using integer division + + } + + } + + } + + } + + 13) iterate [i] over the range 0 .. ([classwords_per_codeword] - 1) while [partition_count] + is also less than [partitions_to_read] { + + 14) iterate [j] over the range 0 .. [ch]-1 { + + 15) if vector [j] is not marked 'do not decode' { + + 16) [vqclass] = array [classifications] element [j],[partition_count] + 17) [vqbook] = array [residue_books] element [vqclass],[pass] + 18) if ([vqbook] is not 'unused') { + + 19) decode partition into output vector number [j], starting at scalar + offset [limit_residue_begin]+[partition_count]*[residue_partition_size] using + codebook number [vqbook] in VQ context + } + } + + 20) increment [partition_count] by one + + } + } + } + + 21) done + +\end{programlisting} + +An end-of-packet condition during packet decode is to be considered a +nominal occurrence. Decode returns the result of vector decode up to +that point. + + + +\subsubsection{format 0 specifics} + +Format zero decodes partitions exactly as described earlier in the +'Residue Format: residue 0' section. The following pseudocode +presents the same algorithm. Assume: + +\begin{itemize} +\item \varname{[n]} is the value in \varname{[residue_partition_size]} +\item \varname{[v]} is the residue vector +\item \varname{[offset]} is the beginning read offset in [v] +\end{itemize} + + +\begin{programlisting} + 1) [step] = [n] / [codebook_dimensions] + 2) iterate [i] over the range 0 ... [step]-1 { + + 3) vector [entry_temp] = read vector from packet using current codebook in VQ context + 4) iterate [j] over the range 0 ... [codebook_dimensions]-1 { + + 5) vector [v] element ([offset]+[i]+[j]*[step]) = + vector [v] element ([offset]+[i]+[j]*[step]) + + vector [entry_temp] element [j] + + } + + } + + 6) done + +\end{programlisting} + + + +\subsubsection{format 1 specifics} + +Format 1 decodes partitions exactly as described earlier in the +'Residue Format: residue 1' section. The following pseudocode +presents the same algorithm. Assume: + +\begin{itemize} +\item \varname{[n]} is the value in +\varname{[residue_partition_size]} +\item \varname{[v]} is the residue vector +\item \varname{[offset]} is the beginning read offset in [v] +\end{itemize} + + +\begin{programlisting} + 1) [i] = 0 + 2) vector [entry_temp] = read vector from packet using current codebook in VQ context + 3) iterate [j] over the range 0 ... [codebook_dimensions]-1 { + + 4) vector [v] element ([offset]+[i]) = + vector [v] element ([offset]+[i]) + + vector [entry_temp] element [j] + 5) increment [i] + + } + + 6) if ( [i] is less than [n] ) continue at step 2 + 7) done +\end{programlisting} + + + +\subsubsection{format 2 specifics} + +Format 2 is reducible to format 1. It may be implemented as an additional step prior to and an additional post-decode step after a normal format 1 decode. + + +Format 2 handles 'do not decode' vectors differently than residue 0 or +1; if all vectors are marked 'do not decode', no decode occurrs. +However, if at least one vector is to be decoded, all the vectors are +decoded. We then request normal format 1 to decode a single vector +representing all output channels, rather than a vector for each +channel. After decode, deinterleave the vector into independent vectors, one for each output channel. That is: + +\begin{enumerate} + \item If all vectors 0 through \emph{ch}-1 are marked 'do not decode', allocate and clear a single vector \varname{[v]}of length \emph{ch*n} and skip step 2 below; proceed directly to the post-decode step. + \item Rather than performing format 1 decode to produce \emph{ch} vectors of length \emph{n} each, call format 1 decode to produce a single vector \varname{[v]} of length \emph{ch*n}. + \item Post decode: Deinterleave the single vector \varname{[v]} returned by format 1 decode as described above into \emph{ch} independent vectors, one for each outputchannel, according to: + \begin{programlisting} + 1) iterate [i] over the range 0 ... [n]-1 { + + 2) iterate [j] over the range 0 ... [ch]-1 { + + 3) output vector number [j] element [i] = vector [v] element ([i] * [ch] + [j]) + + } + } + + 4) done + \end{programlisting} + +\end{enumerate} + + + + + + + diff --git a/Dependencies/libvorbis/doc/09-helper.tex b/Dependencies/libvorbis/doc/09-helper.tex new file mode 100644 index 0000000..6e1bfe0 --- /dev/null +++ b/Dependencies/libvorbis/doc/09-helper.tex @@ -0,0 +1,181 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Helper equations} \label{vorbis:spec:helper} + +\subsection{Overview} + +The equations below are used in multiple places by the Vorbis codec +specification. Rather than cluttering up the main specification +documents, they are defined here and referenced where appropriate. + + +\subsection{Functions} + +\subsubsection{ilog} \label{vorbis:spec:ilog} + +The "ilog(x)" function returns the position number (1 through n) of the highest set bit in the two's complement integer value +\varname{[x]}. Values of \varname{[x]} less than zero are defined to return zero. + +\begin{programlisting} + 1) [return_value] = 0; + 2) if ( [x] is greater than zero ) { + + 3) increment [return_value]; + 4) logical shift [x] one bit to the right, padding the MSb with zero + 5) repeat at step 2) + + } + + 6) done +\end{programlisting} + +Examples: + +\begin{itemize} + \item ilog(0) = 0; + \item ilog(1) = 1; + \item ilog(2) = 2; + \item ilog(3) = 2; + \item ilog(4) = 3; + \item ilog(7) = 3; + \item ilog(negative number) = 0; +\end{itemize} + + + + +\subsubsection{float32_unpack} \label{vorbis:spec:float32:unpack} + +"float32_unpack(x)" is intended to translate the packed binary +representation of a Vorbis codebook float value into the +representation used by the decoder for floating point numbers. For +purposes of this example, we will unpack a Vorbis float32 into a +host-native floating point number. + +\begin{programlisting} + 1) [mantissa] = [x] bitwise AND 0x1fffff (unsigned result) + 2) [sign] = [x] bitwise AND 0x80000000 (unsigned result) + 3) [exponent] = ( [x] bitwise AND 0x7fe00000) shifted right 21 bits (unsigned result) + 4) if ( [sign] is nonzero ) then negate [mantissa] + 5) return [mantissa] * ( 2 ^ ( [exponent] - 788 ) ) +\end{programlisting} + + + +\subsubsection{lookup1_values} \label{vorbis:spec:lookup1:values} + +"lookup1_values(codebook_entries,codebook_dimensions)" is used to +compute the correct length of the value index for a codebook VQ lookup +table of lookup type 1. The values on this list are permuted to +construct the VQ vector lookup table of size +\varname{[codebook_entries]}. + +The return value for this function is defined to be 'the greatest +integer value for which \varname{[return_value]} to the power of +\varname{[codebook_dimensions]} is less than or equal to +\varname{[codebook_entries]}'. + + + +\subsubsection{low_neighbor} \label{vorbis:spec:low:neighbor} + +"low_neighbor(v,x)" finds the position \varname{n} in vector \varname{[v]} of +the greatest value scalar element for which \varname{n} is less than +\varname{[x]} and vector \varname{[v]} element \varname{n} is less +than vector \varname{[v]} element \varname{[x]}. + +\subsubsection{high_neighbor} \label{vorbis:spec:high:neighbor} + +"high_neighbor(v,x)" finds the position \varname{n} in vector [v] of +the lowest value scalar element for which \varname{n} is less than +\varname{[x]} and vector \varname{[v]} element \varname{n} is greater +than vector \varname{[v]} element \varname{[x]}. + + + +\subsubsection{render_point} \label{vorbis:spec:render:point} + +"render_point(x0,y0,x1,y1,X)" is used to find the Y value at point X +along the line specified by x0, x1, y0 and y1. This function uses an +integer algorithm to solve for the point directly without calculating +intervening values along the line. + +\begin{programlisting} + 1) [dy] = [y1] - [y0] + 2) [adx] = [x1] - [x0] + 3) [ady] = absolute value of [dy] + 4) [err] = [ady] * ([X] - [x0]) + 5) [off] = [err] / [adx] using integer division + 6) if ( [dy] is less than zero ) { + + 7) [Y] = [y0] - [off] + + } else { + + 8) [Y] = [y0] + [off] + + } + + 9) done +\end{programlisting} + + + +\subsubsection{render_line} \label{vorbis:spec:render:line} + +Floor decode type one uses the integer line drawing algorithm of +"render_line(x0, y0, x1, y1, v)" to construct an integer floor +curve for contiguous piecewise line segments. Note that it has not +been relevant elsewhere, but here we must define integer division as +rounding division of both positive and negative numbers toward zero. + + +\begin{programlisting} + 1) [dy] = [y1] - [y0] + 2) [adx] = [x1] - [x0] + 3) [ady] = absolute value of [dy] + 4) [base] = [dy] / [adx] using integer division + 5) [x] = [x0] + 6) [y] = [y0] + 7) [err] = 0 + + 8) if ( [dy] is less than 0 ) { + + 9) [sy] = [base] - 1 + + } else { + + 10) [sy] = [base] + 1 + + } + + 11) [ady] = [ady] - (absolute value of [base]) * [adx] + 12) vector [v] element [x] = [y] + + 13) iterate [x] over the range [x0]+1 ... [x1]-1 { + + 14) [err] = [err] + [ady]; + 15) if ( [err] >= [adx] ) { + + 16) [err] = [err] - [adx] + 17) [y] = [y] + [sy] + + } else { + + 18) [y] = [y] + [base] + + } + + 19) vector [v] element [x] = [y] + + } +\end{programlisting} + + + + + + + + diff --git a/Dependencies/libvorbis/doc/10-tables.tex b/Dependencies/libvorbis/doc/10-tables.tex new file mode 100644 index 0000000..2106a46 --- /dev/null +++ b/Dependencies/libvorbis/doc/10-tables.tex @@ -0,0 +1,77 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Tables} \label{vorbis:spec:tables} + +\subsection{floor1\_inverse\_dB\_table} \label{vorbis:spec:floor1:inverse:dB:table} + +The vector \varname{[floor1_inverse_dB_table]} is a 256 element static +lookup table consiting of the following values (read left to right +then top to bottom): + +\begin{Verbatim} + 1.0649863e-07, 1.1341951e-07, 1.2079015e-07, 1.2863978e-07, + 1.3699951e-07, 1.4590251e-07, 1.5538408e-07, 1.6548181e-07, + 1.7623575e-07, 1.8768855e-07, 1.9988561e-07, 2.1287530e-07, + 2.2670913e-07, 2.4144197e-07, 2.5713223e-07, 2.7384213e-07, + 2.9163793e-07, 3.1059021e-07, 3.3077411e-07, 3.5226968e-07, + 3.7516214e-07, 3.9954229e-07, 4.2550680e-07, 4.5315863e-07, + 4.8260743e-07, 5.1396998e-07, 5.4737065e-07, 5.8294187e-07, + 6.2082472e-07, 6.6116941e-07, 7.0413592e-07, 7.4989464e-07, + 7.9862701e-07, 8.5052630e-07, 9.0579828e-07, 9.6466216e-07, + 1.0273513e-06, 1.0941144e-06, 1.1652161e-06, 1.2409384e-06, + 1.3215816e-06, 1.4074654e-06, 1.4989305e-06, 1.5963394e-06, + 1.7000785e-06, 1.8105592e-06, 1.9282195e-06, 2.0535261e-06, + 2.1869758e-06, 2.3290978e-06, 2.4804557e-06, 2.6416497e-06, + 2.8133190e-06, 2.9961443e-06, 3.1908506e-06, 3.3982101e-06, + 3.6190449e-06, 3.8542308e-06, 4.1047004e-06, 4.3714470e-06, + 4.6555282e-06, 4.9580707e-06, 5.2802740e-06, 5.6234160e-06, + 5.9888572e-06, 6.3780469e-06, 6.7925283e-06, 7.2339451e-06, + 7.7040476e-06, 8.2047000e-06, 8.7378876e-06, 9.3057248e-06, + 9.9104632e-06, 1.0554501e-05, 1.1240392e-05, 1.1970856e-05, + 1.2748789e-05, 1.3577278e-05, 1.4459606e-05, 1.5399272e-05, + 1.6400004e-05, 1.7465768e-05, 1.8600792e-05, 1.9809576e-05, + 2.1096914e-05, 2.2467911e-05, 2.3928002e-05, 2.5482978e-05, + 2.7139006e-05, 2.8902651e-05, 3.0780908e-05, 3.2781225e-05, + 3.4911534e-05, 3.7180282e-05, 3.9596466e-05, 4.2169667e-05, + 4.4910090e-05, 4.7828601e-05, 5.0936773e-05, 5.4246931e-05, + 5.7772202e-05, 6.1526565e-05, 6.5524908e-05, 6.9783085e-05, + 7.4317983e-05, 7.9147585e-05, 8.4291040e-05, 8.9768747e-05, + 9.5602426e-05, 0.00010181521, 0.00010843174, 0.00011547824, + 0.00012298267, 0.00013097477, 0.00013948625, 0.00014855085, + 0.00015820453, 0.00016848555, 0.00017943469, 0.00019109536, + 0.00020351382, 0.00021673929, 0.00023082423, 0.00024582449, + 0.00026179955, 0.00027881276, 0.00029693158, 0.00031622787, + 0.00033677814, 0.00035866388, 0.00038197188, 0.00040679456, + 0.00043323036, 0.00046138411, 0.00049136745, 0.00052329927, + 0.00055730621, 0.00059352311, 0.00063209358, 0.00067317058, + 0.00071691700, 0.00076350630, 0.00081312324, 0.00086596457, + 0.00092223983, 0.00098217216, 0.0010459992, 0.0011139742, + 0.0011863665, 0.0012634633, 0.0013455702, 0.0014330129, + 0.0015261382, 0.0016253153, 0.0017309374, 0.0018434235, + 0.0019632195, 0.0020908006, 0.0022266726, 0.0023713743, + 0.0025254795, 0.0026895994, 0.0028643847, 0.0030505286, + 0.0032487691, 0.0034598925, 0.0036847358, 0.0039241906, + 0.0041792066, 0.0044507950, 0.0047400328, 0.0050480668, + 0.0053761186, 0.0057254891, 0.0060975636, 0.0064938176, + 0.0069158225, 0.0073652516, 0.0078438871, 0.0083536271, + 0.0088964928, 0.009474637, 0.010090352, 0.010746080, + 0.011444421, 0.012188144, 0.012980198, 0.013823725, + 0.014722068, 0.015678791, 0.016697687, 0.017782797, + 0.018938423, 0.020169149, 0.021479854, 0.022875735, + 0.024362330, 0.025945531, 0.027631618, 0.029427276, + 0.031339626, 0.033376252, 0.035545228, 0.037855157, + 0.040315199, 0.042935108, 0.045725273, 0.048696758, + 0.051861348, 0.055231591, 0.058820850, 0.062643361, + 0.066714279, 0.071049749, 0.075666962, 0.080584227, + 0.085821044, 0.091398179, 0.097337747, 0.10366330, + 0.11039993, 0.11757434, 0.12521498, 0.13335215, + 0.14201813, 0.15124727, 0.16107617, 0.17154380, + 0.18269168, 0.19456402, 0.20720788, 0.22067342, + 0.23501402, 0.25028656, 0.26655159, 0.28387361, + 0.30232132, 0.32196786, 0.34289114, 0.36517414, + 0.38890521, 0.41417847, 0.44109412, 0.46975890, + 0.50028648, 0.53279791, 0.56742212, 0.60429640, + 0.64356699, 0.68538959, 0.72993007, 0.77736504, + 0.82788260, 0.88168307, 0.9389798, 1. +\end{Verbatim} diff --git a/Dependencies/libvorbis/doc/Doxyfile.in b/Dependencies/libvorbis/doc/Doxyfile.in new file mode 100644 index 0000000..cdb894f --- /dev/null +++ b/Dependencies/libvorbis/doc/Doxyfile.in @@ -0,0 +1,1142 @@ +# Doxyfile 1.3.7 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = vorbis + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 2 levels of 10 sub-directories under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of source +# files, where putting all generated files in the same directory would otherwise +# cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, +# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en +# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, +# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). +#This tag is now obsolete, according to doxygen 1.5.2 +#USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is used +# as the annotated text. Otherwise, the brief description is used as-is. If left +# blank, the following values are used ("$name" is automatically replaced with the +# name of the entity): "The $name class" "The $name widget" "The $name file" +# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @top_srcdir@/include/vorbis + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superseded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. +#This tag is now obsolete, according to doxygen 1.5.2 +#MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. +#This tag is now obsolete, according to doxygen 1.5.2 +#MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. +#This tag is now obsolete, according to doxygen 1.5.2 +#MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/Dependencies/libvorbis/doc/Makefile.am b/Dependencies/libvorbis/doc/Makefile.am new file mode 100644 index 0000000..2837a2c --- /dev/null +++ b/Dependencies/libvorbis/doc/Makefile.am @@ -0,0 +1,149 @@ +## Process this with automake to create Makefile.in + +SUBDIRS = vorbisfile vorbisenc + +docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) + +### all of the static docs, commited to SVN and included as is +static_docs = \ + rfc5215.xml \ + rfc5215.txt \ + eightphase.png \ + evenlsp.png \ + fish_xiph_org.png \ + floor1_inverse_dB_table.html \ + floorval.png \ + fourphase.png \ + framing.html \ + helper.html \ + index.html \ + lspmap.png \ + oddlsp.png \ + oggstream.html \ + programming.html \ + squarepolar.png \ + stereo.html \ + stream.png \ + v-comment.html \ + vorbis-clip.txt \ + vorbis-errors.txt \ + vorbis-fidelity.html \ + vorbis.html \ + vorbisword2.png \ + wait.png \ + white-xifish.png + +# bits needed by the spec +SPEC_PNG = \ + components.png \ + floor1-1.png \ + floor1-2.png \ + floor1-3.png \ + floor1-4.png \ + hufftree.png \ + hufftree-under.png \ + residue-pack.png \ + residue2.png \ + white-xifish.png \ + window1.png \ + window2.png +SPEC_PDF = xifish.pdf + +# FIXME: also needed here +# white-xifish.png + +SPEC_TEX = \ + Vorbis_I_spec.tex \ + 01-introduction.tex \ + 02-bitpacking.tex \ + 03-codebook.tex \ + 04-codec.tex \ + 05-comment.tex \ + 06-floor0.tex \ + 07-floor1.tex \ + 08-residue.tex \ + 09-helper.tex \ + 10-tables.tex \ + a1-encapsulation-ogg.tex \ + a2-encapsulation-rtp.tex \ + footer.tex + +built_docs = Vorbis_I_spec.pdf Vorbis_I_spec.html Vorbis_I_spec.css + +# conditionally make the generated documentation +if BUILD_DOCS +doc_DATA = $(static_docs) $(SPEC_PNG) $(built_docs) doxygen-build.stamp +else +doc_DATA = $(static_docs) doxygen-build.stamp +endif + +EXTRA_DIST = $(static_docs) $(built_docs) \ + $(SPEC_TEX) $(SPEC_PNG) $(SPEC_PDF) Vorbis_I_spec.cfg Doxyfile.in + +# these are expensive; only remove if we have to +MAINTAINERCLEANFILES = $(built_docs) +CLEANFILES = $(SPEC_TEX:%.tex=%.aux) \ + Vorbis_I_spec.4ct Vorbis_I_spec.4tc \ + Vorbis_I_spec.dvi Vorbis_I_spec.idv \ + Vorbis_I_spec.lg Vorbis_I_spec.log \ + Vorbis_I_spec.out Vorbis_I_spec.tmp \ + Vorbis_I_spec.toc Vorbis_I_spec.xref \ + Vorbis_I_spec*.png \ + zzVorbis_I_spec.ps xifish.png +DISTCLEANFILES = $(built_docs) + + +# explicit rules for generating docs +if BUILD_DOCS +xifish.png: white-xifish.png + cp $< $@ + +Vorbis_I_spec.html Vorbis_I_spec.css: $(SPEC_TEX) $(SPEC_PNG) xifish.png + htlatex $< + +Vorbis_I_spec.pdf: $(SPEC_TEX) $(SPEC_PNG) xifish.png + pdflatex $< + pdflatex $< + pdflatex $< +else +Vorbis_I_spec.html: NO_DOCS_ERROR +Vorbis_I_spec.pdf: NO_DOCS_ERROR +NO_DOCS_ERROR: + @echo + @echo "*** Documentation has not been built! ***" + @echo "Try re-running after passing --enable-docs to configure." + @echo +endif + +if HAVE_DOXYGEN +doxygen-build.stamp: Doxyfile $(top_srcdir)/include/vorbis/*.h + doxygen + touch doxygen-build.stamp +else +doxygen-build.stamp: + echo "*** Warning: Doxygen not found; documentation will not be built." + touch doxygen-build.stamp +endif + +install-data-local: doxygen-build.stamp + $(mkinstalldirs) $(DESTDIR)$(docdir) + if test -d vorbis; then \ + for dir in vorbis/*; do \ + if test -d $$dir; then \ + b=`basename $$dir`; \ + $(mkinstalldirs) $(DESTDIR)$(docdir)/$$b; \ + for f in $$dir/*; do \ + $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$b; \ + done \ + fi \ + done \ + fi + +uninstall-local: + rm -rf $(DESTDIR)$(docdir) + +clean-local: + if test -d vorbis; then rm -rf vorbis; fi + if test -f doxygen-build.stamp; then rm -f doxygen-build.stamp; fi + + diff --git a/Dependencies/libvorbis/doc/Makefile.in b/Dependencies/libvorbis/doc/Makefile.in new file mode 100644 index 0000000..1f467a8 --- /dev/null +++ b/Dependencies/libvorbis/doc/Makefile.in @@ -0,0 +1,685 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = doc +DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = Doxyfile +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(docdir)" +docDATA_INSTALL = $(INSTALL_DATA) +DATA = $(doc_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = vorbisfile vorbisenc + +### all of the static docs, commited to SVN and included as is +static_docs = \ + rfc5215.xml \ + rfc5215.txt \ + eightphase.png \ + evenlsp.png \ + fish_xiph_org.png \ + floor1_inverse_dB_table.html \ + floorval.png \ + fourphase.png \ + framing.html \ + helper.html \ + index.html \ + lspmap.png \ + oddlsp.png \ + oggstream.html \ + programming.html \ + squarepolar.png \ + stereo.html \ + stream.png \ + v-comment.html \ + vorbis-clip.txt \ + vorbis-errors.txt \ + vorbis-fidelity.html \ + vorbis.html \ + vorbisword2.png \ + wait.png \ + white-xifish.png + + +# bits needed by the spec +SPEC_PNG = \ + components.png \ + floor1-1.png \ + floor1-2.png \ + floor1-3.png \ + floor1-4.png \ + hufftree.png \ + hufftree-under.png \ + residue-pack.png \ + residue2.png \ + white-xifish.png \ + window1.png \ + window2.png + +SPEC_PDF = xifish.pdf + +# FIXME: also needed here +# white-xifish.png +SPEC_TEX = \ + Vorbis_I_spec.tex \ + 01-introduction.tex \ + 02-bitpacking.tex \ + 03-codebook.tex \ + 04-codec.tex \ + 05-comment.tex \ + 06-floor0.tex \ + 07-floor1.tex \ + 08-residue.tex \ + 09-helper.tex \ + 10-tables.tex \ + a1-encapsulation-ogg.tex \ + a2-encapsulation-rtp.tex \ + footer.tex + +built_docs = Vorbis_I_spec.pdf Vorbis_I_spec.html Vorbis_I_spec.css +@BUILD_DOCS_FALSE@doc_DATA = $(static_docs) doxygen-build.stamp + +# conditionally make the generated documentation +@BUILD_DOCS_TRUE@doc_DATA = $(static_docs) $(SPEC_PNG) $(built_docs) doxygen-build.stamp +EXTRA_DIST = $(static_docs) $(built_docs) \ + $(SPEC_TEX) $(SPEC_PNG) $(SPEC_PDF) Vorbis_I_spec.cfg Doxyfile.in + + +# these are expensive; only remove if we have to +MAINTAINERCLEANFILES = $(built_docs) +CLEANFILES = $(SPEC_TEX:%.tex=%.aux) \ + Vorbis_I_spec.4ct Vorbis_I_spec.4tc \ + Vorbis_I_spec.dvi Vorbis_I_spec.idv \ + Vorbis_I_spec.lg Vorbis_I_spec.log \ + Vorbis_I_spec.out Vorbis_I_spec.tmp \ + Vorbis_I_spec.toc Vorbis_I_spec.xref \ + Vorbis_I_spec*.png \ + zzVorbis_I_spec.ps xifish.png + +DISTCLEANFILES = $(built_docs) +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" + @list='$(doc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ + $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-docDATA + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-docDATA uninstall-local + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + clean-local ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data-local install-docDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-docDATA uninstall-local + + +# explicit rules for generating docs +@BUILD_DOCS_TRUE@xifish.png: white-xifish.png +@BUILD_DOCS_TRUE@ cp $< $@ + +@BUILD_DOCS_TRUE@Vorbis_I_spec.html Vorbis_I_spec.css: $(SPEC_TEX) $(SPEC_PNG) xifish.png +@BUILD_DOCS_TRUE@ htlatex $< + +@BUILD_DOCS_TRUE@Vorbis_I_spec.pdf: $(SPEC_TEX) $(SPEC_PNG) xifish.png +@BUILD_DOCS_TRUE@ pdflatex $< +@BUILD_DOCS_TRUE@ pdflatex $< +@BUILD_DOCS_TRUE@ pdflatex $< +@BUILD_DOCS_FALSE@Vorbis_I_spec.html: NO_DOCS_ERROR +@BUILD_DOCS_FALSE@Vorbis_I_spec.pdf: NO_DOCS_ERROR +@BUILD_DOCS_FALSE@NO_DOCS_ERROR: +@BUILD_DOCS_FALSE@ @echo +@BUILD_DOCS_FALSE@ @echo "*** Documentation has not been built! ***" +@BUILD_DOCS_FALSE@ @echo "Try re-running after passing --enable-docs to configure." +@BUILD_DOCS_FALSE@ @echo + +@HAVE_DOXYGEN_TRUE@doxygen-build.stamp: Doxyfile $(top_srcdir)/include/vorbis/*.h +@HAVE_DOXYGEN_TRUE@ doxygen +@HAVE_DOXYGEN_TRUE@ touch doxygen-build.stamp +@HAVE_DOXYGEN_FALSE@doxygen-build.stamp: +@HAVE_DOXYGEN_FALSE@ echo "*** Warning: Doxygen not found; documentation will not be built." +@HAVE_DOXYGEN_FALSE@ touch doxygen-build.stamp + +install-data-local: doxygen-build.stamp + $(mkinstalldirs) $(DESTDIR)$(docdir) + if test -d vorbis; then \ + for dir in vorbis/*; do \ + if test -d $$dir; then \ + b=`basename $$dir`; \ + $(mkinstalldirs) $(DESTDIR)$(docdir)/$$b; \ + for f in $$dir/*; do \ + $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$b; \ + done \ + fi \ + done \ + fi + +uninstall-local: + rm -rf $(DESTDIR)$(docdir) + +clean-local: + if test -d vorbis; then rm -rf vorbis; fi + if test -f doxygen-build.stamp; then rm -f doxygen-build.stamp; fi +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/doc/Vorbis_I_spec.cfg b/Dependencies/libvorbis/doc/Vorbis_I_spec.cfg new file mode 100644 index 0000000..6fca7ce --- /dev/null +++ b/Dependencies/libvorbis/doc/Vorbis_I_spec.cfg @@ -0,0 +1,4 @@ +\Preamble{html} +\begin{document} + \DeclareGraphicsExtensions{.png} +\EndPreamble diff --git a/Dependencies/libvorbis/doc/Vorbis_I_spec.css b/Dependencies/libvorbis/doc/Vorbis_I_spec.css new file mode 100644 index 0000000..aaad4be --- /dev/null +++ b/Dependencies/libvorbis/doc/Vorbis_I_spec.css @@ -0,0 +1,138 @@ + +/* start css.sty */ +.cmex-10{font-size:83%;} +.cmssbx-10x-x-120{ font-family: sans-serif; font-weight: bold;} +.cmssbx-10x-x-120{ font-family: sans-serif; font-weight: bold;} +.cmssbx-10x-x-248{font-size:206%; font-family: sans-serif; font-weight: bold;} +.cmssbx-10x-x-248{ font-family: sans-serif; font-weight: bold;} +.cmr-17{font-size:141%;} +.cmmi-12{font-style: italic;} +.cmtt-12{font-family: monospace;} +.cmtt-12{font-family: monospace;} +.cmtt-12{font-family: monospace;} +.cmbx-12{ font-weight: bold;} +.cmti-12{ font-style: italic;} +.cmr-8{font-size:66%;} +.cmr-6{font-size:50%;} +.cmmi-8{font-size:66%;font-style: italic;} +.cmsy-8{font-size:66%;} +.cmsy-6{font-size:50%;} +.cmtt-8{font-size:66%;font-family: monospace;} +.cmtt-8{font-family: monospace;} +.cmtt-8{font-family: monospace;} +.cmtt-8x-x-75{font-size:50%;font-family: monospace;} +.cmtt-8x-x-75{font-family: monospace;} +.cmtt-8x-x-75{font-family: monospace;} +p.noindent { text-indent: 0em } +td p.noindent { text-indent: 0em; margin-top:0em; } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;} +.index-item, .index-subitem, .index-subsubitem {display:block} +div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} +div.caption span.id{font-weight: bold; white-space: nowrap; } +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } +.abstract p {margin-left:5%; margin-right:5%;} +div.abstract {width:100%;} +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +.figure img.graphics {margin-left:10%;} +P.fancyvrb {white-space: nowrap; margin:0em;} +/* end css.sty */ + diff --git a/Dependencies/libvorbis/doc/Vorbis_I_spec.html b/Dependencies/libvorbis/doc/Vorbis_I_spec.html new file mode 100644 index 0000000..56a5e4f --- /dev/null +++ b/Dependencies/libvorbis/doc/Vorbis_I_spec.html @@ -0,0 +1,13722 @@ + + +Vorbis I specification + + + + + + + + +
+ + + + + + + +

Vorbis I specification

+
Xiph.org Foundation
+
+
February 3, 2010
+
+

Contents

+
1 Introduction and Description +
  1.1 Overview +
   1.1.1 Application +
   1.1.2 Classification +
   1.1.3 Assumptions +
   1.1.4 Codec Setup and Probability Model +
   1.1.5 Format Specification +
   1.1.6 Hardware Profile +
  1.2 Decoder Configuration +
   1.2.1 Global Config +
   1.2.2 Mode + + + +
   1.2.3 Mapping +
   1.2.4 Floor +
   1.2.5 Residue +
   1.2.6 Codebooks +
  1.3 High-level Decode Process +
   1.3.1 Decode Setup +
   1.3.2 Decode Procedure +
 2 Bitpacking Convention +
  2.1 Overview +
   2.1.1 octets, bytes and words +
   2.1.2 bit order +
   2.1.3 byte order +
   2.1.4 coding bits into byte sequences +
   2.1.5 signedness +
   2.1.6 coding example +
   2.1.7 decoding example +
   2.1.8 end-of-packet alignment +
   2.1.9 reading zero bits +
 3 Probability Model and Codebooks +
  3.1 Overview +
   3.1.1 Bitwise operation +
  3.2 Packed codebook format +
   3.2.1 codebook decode +
  3.3 Use of the codebook abstraction +
 4 Codec Setup and Packet Decode +
  4.1 Overview +
  4.2 Header decode and decode setup +
   4.2.1 Common header decode +
   4.2.2 Identification header + + + +
   4.2.3 Comment header +
   4.2.4 Setup header +
  4.3 Audio packet decode and synthesis +
   4.3.1 packet type, mode and window decode +
   4.3.2 floor curve decode +
   4.3.3 nonzero vector propagate +
   4.3.4 residue decode +
   4.3.5 inverse coupling +
   4.3.6 dot product +
   4.3.7 inverse MDCT +
   4.3.8 overlap˙add +
   4.3.9 output channel order +
 5 comment field and header specification +
  5.1 Overview +
  5.2 Comment encoding +
   5.2.1 Structure +
   5.2.2 Content vector format +
   5.2.3 Encoding +
 6 Floor type 0 setup and decode +
  6.1 Overview +
  6.2 Floor 0 format +
   6.2.1 header decode +
   6.2.2 packet decode +
   6.2.3 curve computation +
 7 Floor type 1 setup and decode +
  7.1 Overview +
  7.2 Floor 1 format +
   7.2.1 model +
   7.2.2 header decode + + + +
 8 Residue setup and decode +
  8.1 Overview +
  8.2 Residue format +
  8.3 residue 0 +
  8.4 residue 1 +
  8.5 residue 2 +
  8.6 Residue decode +
   8.6.1 header decode +
   8.6.2 packet decode +
   8.6.3 format 0 specifics +
   8.6.4 format 1 specifics +
   8.6.5 format 2 specifics +
 9 Helper equations +
  9.1 Overview +
  9.2 Functions +
   9.2.1 ilog +
   9.2.2 float32˙unpack +
   9.2.3 lookup1˙values +
   9.2.4 low˙neighbor +
   9.2.5 high˙neighbor +
   9.2.6 render˙point +
   9.2.7 render˙line +
 10 Tables +
  10.1 floor1_inverse_dB_table +
 A Embedding Vorbis into an Ogg stream +
  A.1 Overview +
   A.1.1 Restrictions +
   A.1.2 MIME type +
  A.2 Encapsulation + + + +
 B Vorbis encapsulation in RTP +
+ + + +

1 Introduction and Description

+

+

1.1 Overview

+

This document provides a high level description of the Vorbis codec’s construction. A bit-by-bit +specification appears beginning in Section 4, “Codec Setup and Packet Decode”. The later +sections assume a high-level understanding of the Vorbis decode process, which is provided +here. +

+

1.1.1 Application
+

Vorbis is a general purpose perceptual audio CODEC intended to allow maximum encoder +flexibility, thus allowing it to scale competitively over an exceptionally wide range of bitrates. At +the high quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits) it is in the same +league as MPEG-2 and MPC. Similarly, the 1.0 encoder can encode high-quality CD and DAT +rate stereo at below 48kbps without resampling to a lower rate. Vorbis is also intended for lower +and higher sample rates (from 8kHz telephony to 192kHz digital masters) and a range of channel +representations (monaural, polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255 +discrete channels). +

+

1.1.2 Classification
+

Vorbis I is a forward-adaptive monolithic transform CODEC based on the Modified Discrete +Cosine Transform. The codec is structured to allow addition of a hybrid wavelet filterbank in +Vorbis II to offer better transient response and reproduction using a transform better suited to +localized time events. + + + +

+

1.1.3 Assumptions
+

The Vorbis CODEC design assumes a complex, psychoacoustically-aware encoder and simple, +low-complexity decoder. Vorbis decode is computationally simpler than mp3, although it does +require more working memory as Vorbis has no static probability model; the vector codebooks +used in the first stage of decoding from the bitstream are packed in their entirety into the Vorbis +bitstream headers. In packed form, these codebooks occupy only a few kilobytes; the extent to +which they are pre-decoded into a cache is the dominant factor in decoder memory +usage. +

Vorbis provides none of its own framing, synchronization or protection against errors; it +is solely a method of accepting input audio, dividing it into individual frames and +compressing these frames into raw, unformatted ’packets’. The decoder then accepts +these raw packets in sequence, decodes them, synthesizes audio frames from them, and +reassembles the frames into a facsimile of the original audio stream. Vorbis is a free-form +variable bit rate (VBR) codec and packets have no minimum size, maximum size, or +fixed/expected size. Packets are designed that they may be truncated (or padded) +and remain decodable; this is not to be considered an error condition and is used +extensively in bitrate management in peeling. Both the transport mechanism and +decoder must allow that a packet may be any size, or end before or after packet decode +expects. +

Vorbis packets are thus intended to be used with a transport mechanism that provides free-form +framing, sync, positioning and error correction in accordance with these design assumptions, such +as Ogg (for file transport) or RTP (for network multicast). For purposes of a few examples in this +document, we will assume that Vorbis is to be embedded in an Ogg stream specifically, +although this is by no means a requirement or fundamental assumption in the Vorbis +design. +

The specification for embedding Vorbis into an Ogg transport stream is in Section A, +“Embedding Vorbis into an Ogg stream”. +

+

1.1.4 Codec Setup and Probability Model
+

Vorbis’ heritage is as a research CODEC and its current design reflects a desire to allow multiple +decades of continuous encoder improvement before running out of room within the codec +specification. For these reasons, configurable aspects of codec setup intentionally lean toward the +extreme of forward adaptive. + + + +

The single most controversial design decision in Vorbis (and the most unusual for a Vorbis +developer to keep in mind) is that the entire probability model of the codec, the Huffman and +VQ codebooks, is packed into the bitstream header along with extensive CODEC setup +parameters (often several hundred fields). This makes it impossible, as it would be with +MPEG audio layers, to embed a simple frame type flag in each audio packet, or begin +decode at any frame in the stream without having previously fetched the codec setup +header. +

Note: Vorbis can initiate decode at any arbitrary packet within a bitstream so long as the codec +has been initialized/setup with the setup headers. +

Thus, Vorbis headers are both required for decode to begin and relatively large as bitstream +headers go. The header size is unbounded, although for streaming a rule-of-thumb of 4kB or less +is recommended (and Xiph.Org’s Vorbis encoder follows this suggestion). +

Our own design work indicates the primary liability of the required header is in mindshare; it is +an unusual design and thus causes some amount of complaint among engineers as this runs +against current design trends (and also points out limitations in some existing software/interface +designs, such as Windows’ ACM codec framework). However, we find that it does not +fundamentally limit Vorbis’ suitable application space. +

+

1.1.5 Format Specification
+

The Vorbis format is well-defined by its decode specification; any encoder that produces packets +that are correctly decoded by the reference Vorbis decoder described below may be considered +a proper Vorbis encoder. A decoder must faithfully and completely implement the +specification defined below (except where noted) to be considered a proper Vorbis +decoder. +

+

1.1.6 Hardware Profile
+ + + +

Although Vorbis decode is computationally simple, it may still run into specific limitations of an +embedded design. For this reason, embedded designs are allowed to deviate in limited ways from +the ‘full’ decode specification yet still be certified compliant. These optional omissions are +labelled in the spec where relevant. +

+

1.2 Decoder Configuration

+

Decoder setup consists of configuration of multiple, self-contained component abstractions that +perform specific functions in the decode pipeline. Each different component instance of a specific +type is semantically interchangeable; decoder configuration consists both of internal component +configuration, as well as arrangement of specific instances into a decode pipeline. Componentry +arrangement is roughly as follows: +

+

+ +

PIC +

Figure 1: decoder pipeline configuration
+
+

+

1.2.1 Global Config
+

Global codec configuration consists of a few audio related fields (sample rate, channels), Vorbis +version (always ’0’ in Vorbis I), bitrate hints, and the lists of component instances. All other +configuration is in the context of specific components. +

+

1.2.2 Mode
+ + + +

Each Vorbis frame is coded according to a master ’mode’. A bitstream may use one or many +modes. +

The mode mechanism is used to encode a frame according to one of multiple possible +methods with the intention of choosing a method best suited to that frame. Different +modes are, e.g. how frame size is changed from frame to frame. The mode number of a +frame serves as a top level configuration switch for all other specific aspects of frame +decode. +

A ’mode’ configuration consists of a frame size setting, window type (always 0, the Vorbis +window, in Vorbis I), transform type (always type 0, the MDCT, in Vorbis I) and a mapping +number. The mapping number specifies which mapping configuration instance to use for low-level +packet decode and synthesis. +

+

1.2.3 Mapping
+

A mapping contains a channel coupling description and a list of ’submaps’ that bundle sets +of channel vectors together for grouped encoding and decoding. These submaps are +not references to external components; the submap list is internal and specific to a +mapping. +

A ’submap’ is a configuration/grouping that applies to a subset of floor and residue vectors +within a mapping. The submap functions as a last layer of indirection such that specific special +floor or residue settings can be applied not only to all the vectors in a given mode, but also +specific vectors in a specific mode. Each submap specifies the proper floor and residue +instance number to use for decoding that submap’s spectral floor and spectral residue +vectors. +

As an example: +

Assume a Vorbis stream that contains six channels in the standard 5.1 format. The sixth +channel, as is normal in 5.1, is bass only. Therefore it would be wasteful to encode a +full-spectrum version of it as with the other channels. The submapping mechanism can be used +to apply a full range floor and residue encoding to channels 0 through 4, and a bass-only +representation to the bass channel, thus saving space. In this example, channels 0-4 belong to +submap 0 (which indicates use of a full-range floor) and channel 5 belongs to submap 1, which +uses a bass-only representation. + + + +

+

1.2.4 Floor
+

Vorbis encodes a spectral ’floor’ vector for each PCM channel. This vector is a low-resolution +representation of the audio spectrum for the given channel in the current frame, generally used +akin to a whitening filter. It is named a ’floor’ because the Xiph.Org reference encoder has +historically used it as a unit-baseline for spectral resolution. +

A floor encoding may be of two types. Floor 0 uses a packed LSP representation on a dB +amplitude scale and Bark frequency scale. Floor 1 represents the curve as a piecewise linear +interpolated representation on a dB amplitude scale and linear frequency scale. The two floors +are semantically interchangeable in encoding/decoding. However, floor type 1 provides more +stable inter-frame behavior, and so is the preferred choice in all coupled-stereo and +high bitrate modes. Floor 1 is also considerably less expensive to decode than floor +0. +

Floor 0 is not to be considered deprecated, but it is of limited modern use. No known Vorbis +encoder past Xiph.org’s own beta 4 makes use of floor 0. +

The values coded/decoded by a floor are both compactly formatted and make use of entropy +coding to save space. For this reason, a floor configuration generally refers to multiple +codebooks in the codebook component list. Entropy coding is thus provided as an +abstraction, and each floor instance may choose from any and all available codebooks when +coding/decoding. +

+

1.2.5 Residue
+

The spectral residue is the fine structure of the audio spectrum once the floor curve has been +subtracted out. In simplest terms, it is coded in the bitstream using cascaded (multi-pass) vector +quantization according to one of three specific packing/coding algorithms numbered +0 through 2. The packing algorithm details are configured by residue instance. As +with the floor components, the final VQ/entropy encoding is provided by external +codebook instances and each residue instance may choose from any and all available +codebooks. +

+ + + +

1.2.6 Codebooks
+

Codebooks are a self-contained abstraction that perform entropy decoding and, optionally, use +the entropy-decoded integer value as an offset into an index of output value vectors, returning +the indicated vector of values. +

The entropy coding in a Vorbis I codebook is provided by a standard Huffman binary tree +representation. This tree is tightly packed using one of several methods, depending on whether +codeword lengths are ordered or unordered, or the tree is sparse. +

The codebook vector index is similarly packed according to index characteristic. Most commonly, +the vector index is encoded as a single list of values of possible values that are then permuted +into a list of n-dimensional rows (lattice VQ). +

+

1.3 High-level Decode Process

+

+

1.3.1 Decode Setup
+

Before decoding can begin, a decoder must initialize using the bitstream headers matching the +stream to be decoded. Vorbis uses three header packets; all are required, in-order, by +this specification. Once set up, decode may begin at any audio packet belonging to +the Vorbis stream. In Vorbis I, all packets after the three initial headers are audio +packets. +

The header packets are, in order, the identification header, the comments header, and the setup +header. +

Identification Header +The identification header identifies the bitstream as Vorbis, Vorbis version, and the simple audio +characteristics of the stream such as sample rate and number of channels. + + + +

Comment Header +The comment header includes user text comments (“tags”) and a vendor string for the +application/library that produced the bitstream. The encoding and proper use of the comment +header is described in Section 5, “comment field and header specification”. +

Setup Header +The setup header includes extensive CODEC setup information as well as the complete VQ and +Huffman codebooks needed for decode. +

+

1.3.2 Decode Procedure
+

The decoding and synthesis procedure for all audio packets is fundamentally the same. +

    +
  1. decode packet type flag +
  2. +
  3. decode mode number +
  4. +
  5. decode window shape (long windows only) +
  6. +
  7. decode floor +
  8. +
  9. decode residue into residue vectors +
  10. +
  11. inverse channel coupling of residue vectors +
  12. +
  13. generate floor curve from decoded floor data +
  14. +
  15. compute dot product of floor and residue, producing audio spectrum vector +
  16. +
  17. inverse monolithic transform of audio spectrum vector, always an MDCT in Vorbis + I + + + +
  18. +
  19. overlap/add left-hand output of transform with right-hand output of previous frame +
  20. +
  21. store right hand-data from transform of current frame for future lapping +
  22. +
  23. if not first frame, return results of overlap/add as audio result of current frame
+

Note that clever rearrangement of the synthesis arithmetic is possible; as an example, one can +take advantage of symmetries in the MDCT to store the right-hand transform data of a partial +MDCT for a 50% inter-frame buffer space savings, and then complete the transform later before +overlap/add with the next frame. This optimization produces entirely equivalent output and is +naturally perfectly legal. The decoder must be entirely mathematically equivalent to the +specification, it need not be a literal semantic implementation. +

Packet type decode +Vorbis I uses four packet types. The first three packet types mark each of the three Vorbis +headers described above. The fourth packet type marks an audio packet. All other packet types +are reserved; packets marked with a reserved type should be ignored. +

Following the three header packets, all packets in a Vorbis I stream are audio. The first step of +audio packet decode is to read and verify the packet type; a non-audio packet when audio is +expected indicates stream corruption or a non-compliant stream. The decoder must ignore the +packet and not attempt decoding it to audio. +

Mode decode +Vorbis allows an encoder to set up multiple, numbered packet ’modes’, as described earlier, all of +which may be used in a given Vorbis stream. The mode is encoded as an integer used as a direct +offset into the mode instance index. +

Window shape decode (long windows only) +Vorbis frames may be one of two PCM sample sizes specified during codec setup. In Vorbis I, +legal frame sizes are powers of two from 64 to 8192 samples. Aside from coupling, Vorbis +handles channels as independent vectors and these frame sizes are in samples per +channel. + + + +

Vorbis uses an overlapping transform, namely the MDCT, to blend one frame into the next, +avoiding most inter-frame block boundary artifacts. The MDCT output of one frame is windowed +according to MDCT requirements, overlapped 50% with the output of the previous frame and +added. The window shape assures seamless reconstruction. +

This is easy to visualize in the case of equal sized-windows: +

+

+ +

PIC +

Figure 2: overlap of two equal-sized windows
+
+

And slightly more complex in the case of overlapping unequal sized windows: +

+

+ +

PIC +

Figure 3: overlap of a long and a short window
+
+

In the unequal-sized window case, the window shape of the long window must be modified for +seamless lapping as above. It is possible to correctly infer window shape to be applied to the +current window from knowing the sizes of the current, previous and next window. It is legal for a +decoder to use this method. However, in the case of a long window (short windows require no +modification), Vorbis also codes two flag bits to specify pre- and post- window shape. Although +not strictly necessary for function, this minor redundancy allows a packet to be fully decoded to +the point of lapping entirely independently of any other packet, allowing easier abstraction of +decode layers as well as allowing a greater level of easy parallelism in encode and +decode. +

A description of valid window functions for use with an inverse MDCT can be found in [1]. +Vorbis windows all use the slope function +

+y = sin (.5 ∗ π sin2((x + .5)∕n ∗ π)).
+                                                                                        
+
+                                                                                        
+
+

+

floor decode +Each floor is encoded/decoded in channel order, however each floor belongs to a ’submap’ that +specifies which floor configuration to use. All floors are decoded before residue decode +begins. +

residue decode +Although the number of residue vectors equals the number of channels, channel coupling may +mean that the raw residue vectors extracted during decode do not map directly to specific +channels. When channel coupling is in use, some vectors will correspond to coupled magnitude or +angle. The coupling relationships are described in the codec setup and may differ from frame to +frame, due to different mode numbers. +

Vorbis codes residue vectors in groups by submap; the coding is done in submap order from +submap 0 through n-1. This differs from floors which are coded using a configuration provided by +submap number, but are coded individually in channel order. +

inverse channel coupling +A detailed discussion of stereo in the Vorbis codec can be found in the document +Stereo Channel Coupling in the Vorbis CODEC. Vorbis is not limited to only stereo +coupling, but the stereo document also gives a good overview of the generic coupling +mechanism. +

Vorbis coupling applies to pairs of residue vectors at a time; decoupling is done in-place a +pair at a time in the order and using the vectors specified in the current mapping +configuration. The decoupling operation is the same for all pairs, converting square polar +representation (where one vector is magnitude and the second angle) back to Cartesian +representation. +

After decoupling, in order, each pair of vectors on the coupling list, the resulting residue vectors +represent the fine spectral detail of each output channel. + + + +

generate floor curve +The decoder may choose to generate the floor curve at any appropriate time. It is reasonable to +generate the output curve when the floor data is decoded from the raw packet, or it +can be generated after inverse coupling and applied to the spectral residue directly, +combining generation and the dot product into one step and eliminating some working +space. +

Both floor 0 and floor 1 generate a linear-range, linear-domain output vector to be multiplied +(dot product) by the linear-range, linear-domain spectral residue. +

compute floor/residue dot product +This step is straightforward; for each output channel, the decoder multiplies the floor curve and +residue vectors element by element, producing the finished audio spectrum of each +channel. +

One point is worth mentioning about this dot product; a common mistake in a fixed point +implementation might be to assume that a 32 bit fixed-point representation for floor and +residue and direct multiplication of the vectors is sufficient for acceptable spectral depth +in all cases because it happens to mostly work with the current Xiph.Org reference +encoder. +

However, floor vector values can span 140dB (24 bits unsigned), and the audio spectrum +vector should represent a minimum of 120dB (21 bits with sign), even when output is to a 16 +bit PCM device. For the residue vector to represent full scale if the floor is nailed +to 140dB, it must be able to span 0 to +140dB. For the residue vector to reach +full scale if the floor is nailed at 0dB, it must be able to represent 140dB to +0dB. +Thus, in order to handle full range dynamics, a residue vector may span 140dB to ++140dB entirely within spec. A 280dB range is approximately 48 bits with sign; thus the +residue vector must be able to represent a 48 bit range and the dot product must +be able to handle an effective 48 bit times 24 bit multiplication. This range may be +achieved using large (64 bit or larger) integers, or implementing a movable binary point +representation. +

inverse monolithic transform (MDCT) +The audio spectrum is converted back into time domain PCM audio via an inverse Modified +Discrete Cosine Transform (MDCT). A detailed description of the MDCT is available in +[1]. +

Note that the PCM produced directly from the MDCT is not yet finished audio; it must be + + + +lapped with surrounding frames using an appropriate window (such as the Vorbis window) before +the MDCT can be considered orthogonal. +

overlap/add data +Windowed MDCT output is overlapped and added with the right hand data of the previous +window such that the 3/4 point of the previous window is aligned with the 1/4 point of the +current window (as illustrated in the window overlap diagram). At this point, the audio data +between the center of the previous frame and the center of the current frame is now finished and +ready to be returned. +

cache right hand data +The decoder must cache the right hand portion of the current frame to be lapped with the left +hand portion of the next frame. +

return finished audio data +The overlapped portion produced from overlapping the previous and current frame data +is finished data to be returned by the decoder. This data spans from the center of +the previous window to the center of the current window. In the case of same-sized +windows, the amount of data to return is one-half block consisting of and only of the +overlapped portions. When overlapping a short and long window, much of the returned +range is not actually overlap. This does not damage transform orthogonality. Pay +attention however to returning the correct data range; the amount of data to be returned +is: +

+

+1  window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +
+

from the center of the previous window to the center of the current window. +

Data is not returned from the first frame; it must be used to ’prime’ the decode engine. The +encoder accounts for this priming when calculating PCM offsets; after the first frame, the proper +PCM output offset is ’0’ (as no data has been returned yet). + + + + + + +

2 Bitpacking Convention

+

+

2.1 Overview

+

The Vorbis codec uses relatively unstructured raw packets containing arbitrary-width binary +integer fields. Logically, these packets are a bitstream in which bits are coded one-by-one by the +encoder and then read one-by-one in the same monotonically increasing order by the decoder. +Most current binary storage arrangements group bits into a native word size of eight bits +(octets), sixteen bits, thirty-two bits or, less commonly other fixed word sizes. The Vorbis +bitpacking convention specifies the correct mapping of the logical packet bitstream into an actual +representation in fixed-width words. +

+

2.1.1 octets, bytes and words
+

In most contemporary architectures, a ’byte’ is synonymous with an ’octet’, that is, eight bits. +This has not always been the case; seven, ten, eleven and sixteen bit ’bytes’ have been used. +For purposes of the bitpacking convention, a byte implies the native, smallest integer +storage representation offered by a platform. On modern platforms, this is generally +assumed to be eight bits (not necessarily because of the processor but because of the +filesystem/memory architecture. Modern filesystems invariably offer bytes as the fundamental +atom of storage). A ’word’ is an integer size that is a grouped multiple of this smallest +size. +

The most ubiquitous architectures today consider a ’byte’ to be an octet (eight bits) and a word +to be a group of two, four or eight bytes (16, 32 or 64 bits). Note however that the Vorbis +bitpacking convention is still well defined for any native byte size; Vorbis uses the native +bit-width of a given storage system. This document assumes that a byte is one octet for purposes +of example. +

+ + + +

2.1.2 bit order
+

A byte has a well-defined ’least significant’ bit (LSb), which is the only bit set when the byte is +storing the two’s complement integer value +1. A byte’s ’most significant’ bit (MSb) is at the +opposite end of the byte. Bits in a byte are numbered from zero at the LSb to n (n = 7 in an +octet) for the MSb. +

+

2.1.3 byte order
+

Words are native groupings of multiple bytes. Several byte orderings are possible in a word; the +common ones are 3-2-1-0 (’big endian’ or ’most significant byte first’ in which the +highest-valued byte comes first), 0-1-2-3 (’little endian’ or ’least significant byte first’ in +which the lowest value byte comes first) and less commonly 3-1-2-0 and 0-2-1-3 (’mixed +endian’). +

The Vorbis bitpacking convention specifies storage and bitstream manipulation at the byte, not +word, level, thus host word ordering is of a concern only during optimization when writing high +performance code that operates on a word of storage at a time rather than by byte. +Logically, bytes are always coded and decoded in order from byte zero through byte +n. +

+

2.1.4 coding bits into byte sequences
+

The Vorbis codec has need to code arbitrary bit-width integers, from zero to 32 bits +wide, into packets. These integer fields are not aligned to the boundaries of the byte +representation; the next field is written at the bit position at which the previous field +ends. +

The encoder logically packs integers by writing the LSb of a binary integer to the logical +bitstream first, followed by next least significant bit, etc, until the requested number of bits +have been coded. When packing the bits into bytes, the encoder begins by placing +the LSb of the integer to be written into the least significant unused bit position of +the destination byte, followed by the next-least significant bit of the source integer +and so on up to the requested number of bits. When all bits of the destination byte +have been filled, encoding continues by zeroing all bits of the next byte and writing +the next bit into the bit position 0 of that byte. Decoding follows the same process + + + +as encoding, but by reading bits from the byte stream and reassembling them into +integers. +

+

2.1.5 signedness
+

The signedness of a specific number resulting from decode is to be interpreted by the decoder +given decode context. That is, the three bit binary pattern ’b111’ can be taken to represent +either ’seven’ as an unsigned integer, or ’-1’ as a signed, two’s complement integer. The +encoder and decoder are responsible for knowing if fields are to be treated as signed or +unsigned. +

+

2.1.6 coding example
+

Code the 4 bit integer value ’12’ [b1100] into an empty bytestream. Bytestream result: +

+

+1                | +
2                V +
3   +
4          7 6 5 4 3 2 1 0 +
5  byte 0 [0 0 0 0 1 1 0 0]  <- +
6  byte 1 [               ] +
7  byte 2 [               ] +
8  byte 3 [               ] +
9               ... +
10  byte n [               ]  bytestream length == 1 byte +
11   +
+

Continue by coding the 3 bit integer value ’-1’ [b111]: +

+

+1          | +
2          V +
3   +
4          7 6 5 4 3 2 1 0 +
5  byte 0 [0 1 1 1 1 1 0 0]  <- +
6  byte 1 [               ] + + + +
7  byte 2 [               ] +
8  byte 3 [               ] +
9               ... +
10  byte n [               ]  bytestream length == 1 byte +
+

Continue by coding the 7 bit integer value ’17’ [b0010001]: +

+

+1            | +
2            V +
3   +
4          7 6 5 4 3 2 1 0 +
5  byte 0 [1 1 1 1 1 1 0 0] +
6  byte 1 [0 0 0 0 1 0 0 0]  <- +
7  byte 2 [               ] +
8  byte 3 [               ] +
9               ... +
10  byte n [               ]  bytestream length == 2 bytes +
11                            bit cursor == 6 +
+

Continue by coding the 13 bit integer value ’6969’ [b110 11001110 01]: +

+

+1                  | +
2                  V +
3   +
4          7 6 5 4 3 2 1 0 +
5  byte 0 [1 1 1 1 1 1 0 0] +
6  byte 1 [0 1 0 0 1 0 0 0] +
7  byte 2 [1 1 0 0 1 1 1 0] +
8  byte 3 [0 0 0 0 0 1 1 0]  <- +
9               ... +
10  byte n [               ]  bytestream length == 4 bytes +
11   +
+

+

2.1.7 decoding example
+

Reading from the beginning of the bytestream encoded in the above example: +

+

+ + + +1                        | +
2                        V +
3   +
4          7 6 5 4 3 2 1 0 +
5  byte 0 [1 1 1 1 1 1 0 0]  <- +
6  byte 1 [0 1 0 0 1 0 0 0] +
7  byte 2 [1 1 0 0 1 1 1 0] +
8  byte 3 [0 0 0 0 0 1 1 0]  bytestream length == 4 bytes +
9   +
+

We read two, two-bit integer fields, resulting in the returned numbers ’b00’ and ’b11’. Two things +are worth noting here: +

    +
  • Although these four bits were originally written as a single four-bit integer, reading + some other combination of bit-widths from the bitstream is well defined. There are + no artificial alignment boundaries maintained in the bitstream. +
  • +
  • The second value is the two-bit-wide integer ’b11’. This value may be interpreted + either as the unsigned value ’3’, or the signed value ’-1’. Signedness is dependent on + decode context.
+

+

2.1.8 end-of-packet alignment
+

The typical use of bitpacking is to produce many independent byte-aligned packets which are +embedded into a larger byte-aligned container structure, such as an Ogg transport bitstream. +Externally, each bytestream (encoded bitstream) must begin and end on a byte boundary. Often, +the encoded bitstream is not an integer number of bytes, and so there is unused (uncoded) space +in the last byte of a packet. +

Unused space in the last byte of a bytestream is always zeroed during the coding process. Thus, +should this unused space be read, it will return binary zeroes. +

Attempting to read past the end of an encoded packet results in an ’end-of-packet’ condition. +End-of-packet is not to be considered an error; it is merely a state indicating that there is +insufficient remaining data to fulfill the desired read size. Vorbis uses truncated packets as a +normal mode of operation, and as such, decoders must handle reading past the end of a packet as +a typical mode of operation. Any further read operations after an ’end-of-packet’ condition shall +also return ’end-of-packet’. + + + +

+

2.1.9 reading zero bits
+

Reading a zero-bit-wide integer returns the value ’0’ and does not increment the stream cursor. +Reading to the end of the packet (but not past, such that an ’end-of-packet’ condition has not +triggered) and then reading a zero bit integer shall succeed, returning 0, and not trigger an +end-of-packet condition. Reading a zero-bit-wide integer after a previous read sets ’end-of-packet’ +shall also fail with ’end-of-packet’. + + + + + + +

3 Probability Model and Codebooks

+

+

3.1 Overview

+

Unlike practically every other mainstream audio codec, Vorbis has no statically configured +probability model, instead packing all entropy decoding configuration, VQ and Huffman, into the +bitstream itself in the third header, the codec setup header. This packed configuration consists of +multiple ’codebooks’, each containing a specific Huffman-equivalent representation for decoding +compressed codewords as well as an optional lookup table of output vector values to which a +decoded Huffman value is applied as an offset, generating the final decoded output corresponding +to a given compressed codeword. +

+

3.1.1 Bitwise operation
+

The codebook mechanism is built on top of the vorbis bitpacker. Both the codebooks themselves +and the codewords they decode are unrolled from a packet as a series of arbitrary-width values +read from the stream according to Section 2, “Bitpacking Convention”. +

+

3.2 Packed codebook format

+

For purposes of the examples below, we assume that the storage system’s native byte width is +eight bits. This is not universally true; see Section 2, “Bitpacking Convention” for discussion +relating to non-eight-bit bytes. + + + +

+

3.2.1 codebook decode
+

A codebook begins with a 24 bit sync pattern, 0x564342: +

+

+1  byte 0: [ 0 1 0 0 0 0 1 0 ] (0x42) +
2  byte 1: [ 0 1 0 0 0 0 1 1 ] (0x43) +
3  byte 2: [ 0 1 0 1 0 1 1 0 ] (0x56) +
+

16 bit [codebook_dimensions] and 24 bit [codebook_entries] fields: +

+

+1   +
2  byte 3: [ X X X X X X X X ] +
3  byte 4: [ X X X X X X X X ] [codebook_dimensions] (16 bit unsigned) +
4   +
5  byte 5: [ X X X X X X X X ] +
6  byte 6: [ X X X X X X X X ] +
7  byte 7: [ X X X X X X X X ] [codebook_entries] (24 bit unsigned) +
8   +
+

Next is the [ordered] bit flag: +

+

+1   +
2  byte 8: [               X ] [ordered] (1 bit) +
3   +
+

Each entry, numbering a total of [codebook_entries], is assigned a codeword length. +We now read the list of codeword lengths and store these lengths in the array +[codebook_codeword_lengths]. Decode of lengths is according to whether the [ordered] flag +is set or unset. +

    +
  • If the [ordered] flag is unset, the codeword list is not length ordered and the decoder + needs to read each codeword length one-by-one. +

    The decoder first reads one additional bit flag, the [sparse] flag. This flag determines + whether or not the codebook contains unused entries that are not to be included in + + + + the codeword decode tree: +

    +

    +1  byte 8: [             X 1 ] [sparse] flag (1 bit) +
    +

    The decoder now performs for each of the [codebook_entries] codebook entries: +

    +

    +1   +
    2    1) if([sparse] is set) { +
    3   +
    4           2) [flag] = read one bit; +
    5           3) if([flag] is set) { +
    6   +
    7                4) [length] = read a five bit unsigned integer; +
    8                5) codeword length for this entry is [length]+1; +
    9   +
    10              } else { +
    11   +
    12                6) this entry is unused.  mark it as such. +
    13   +
    14              } +
    15   +
    16       } else the sparse flag is not set { +
    17   +
    18          7) [length] = read a five bit unsigned integer; +
    19          8) the codeword length for this entry is [length]+1; +
    20   +
    21       } +
    22   +
    +
  • +
  • If the [ordered] flag is set, the codeword list for this codebook is encoded in + ascending length order. Rather than reading a length for every codeword, the + encoder reads the number of codewords per length. That is, beginning at entry + zero: +

    +

    +1    1) [current_entry] = 0; +
    2    2) [current_length] = read a five bit unsigned integer and add 1; +
    3    3) [number] = read ilog([codebook_entries] - [current_entry]) bits as an unsigned integer +
    4    4) set the entries [current_entry] through [current_entry]+[number]-1, inclusive, +
    5      of the [codebook_codeword_lengths] array to [current_length] +
    6    5) set [current_entry] to [number] + [current_entry] +
    7    6) increment [current_length] by 1 +
    8    7) if [current_entry] is greater than [codebook_entries] ERROR CONDITION; +
    9      the decoder will not be able to read this stream. +
    10    8) if [current_entry] is less than [codebook_entries], repeat process starting at 3) +
    11    9) done. + + + +
    +
+

After all codeword lengths have been decoded, the decoder reads the vector lookup table. Vorbis +I supports three lookup types: +

    +
  1. No lookup +
  2. +
  3. Implicitly populated value mapping (lattice VQ) +
  4. +
  5. Explicitly populated value mapping (tessellated or ’foam’ VQ)
+

The lookup table type is read as a four bit unsigned integer: +

+1    1) [codebook_lookup_type] = read four bits as an unsigned integer +
+

Codebook decode precedes according to [codebook_lookup_type]: +

    +
  • Lookup type zero indicates no lookup to be read. Proceed past lookup decode. +
  • +
  • Lookup types one and two are similar, differing only in the number of lookup values to + be read. Lookup type one reads a list of values that are permuted in a set pattern to + build a list of vectors, each vector of order [codebook_dimensions] scalars. Lookup + type two builds the same vector list, but reads each scalar for each vector explicitly, + rather than building vectors from a smaller list of possible scalar values. Lookup + decode proceeds as follows: +

    +

    +1    1) [codebook_minimum_value] = float32_unpack( read 32 bits as an unsigned integer) +
    2    2) [codebook_delta_value] = float32_unpack( read 32 bits as an unsigned integer) +
    3    3) [codebook_value_bits] = read 4 bits as an unsigned integer and add 1 +
    4    4) [codebook_sequence_p] = read 1 bit as a boolean flag +
    5   +
    6    if ( [codebook_lookup_type] is 1 ) { +
    7   +
    8       5) [codebook_lookup_values] = lookup1_values([codebook_entries], [codebook_dimensions] ) +
    9   +
    10    } else { +
    11   +
    12       6) [codebook_lookup_values] = [codebook_entries] * [codebook_dimensions] +
    13   +
    14    } +
    15   +
    16    7) read a total of [codebook_lookup_values] unsigned integers of [codebook_value_bits] each; + + + +
    17       store these in order in the array [codebook_multiplicands] +
    +
  • +
  • A [codebook_lookup_type] of greater than two is reserved and indicates a stream that is + not decodable by the specification in this document. +
+

An ’end of packet’ during any read operation in the above steps is considered an error condition +rendering the stream undecodable. +

Huffman decision tree representation +The [codebook_codeword_lengths] array and [codebook_entries] value uniquely define the +Huffman decision tree used for entropy decoding. +

Briefly, each used codebook entry (recall that length-unordered codebooks support unused +codeword entries) is assigned, in order, the lowest valued unused binary Huffman codeword +possible. Assume the following codeword length list: +

+

+1  entry 0: length 2 +
2  entry 1: length 4 +
3  entry 2: length 4 +
4  entry 3: length 4 +
5  entry 4: length 4 +
6  entry 5: length 2 +
7  entry 6: length 3 +
8  entry 7: length 3 +
+

Assigning codewords in order (lowest possible value of the appropriate length to highest) results +in the following codeword list: +

+

+1  entry 0: length 2 codeword 00 +
2  entry 1: length 4 codeword 0100 +
3  entry 2: length 4 codeword 0101 +
4  entry 3: length 4 codeword 0110 +
5  entry 4: length 4 codeword 0111 +
6  entry 5: length 2 codeword 10 +
7  entry 6: length 3 codeword 110 +
8  entry 7: length 3 codeword 111 +
+ + + +

Note: Unlike most binary numerical values in this document, we intend the above codewords to +be read and used bit by bit from left to right, thus the codeword ’001’ is the bit string ’zero, zero, +one’. When determining ’lowest possible value’ in the assignment definition above, the leftmost +bit is the MSb. +

It is clear that the codeword length list represents a Huffman decision tree with the entry +numbers equivalent to the leaves numbered left-to-right: +

+

+ +

PIC +

Figure 4: huffman tree illustration
+
+

As we assign codewords in order, we see that each choice constructs a new leaf in the leftmost +possible position. +

Note that it’s possible to underspecify or overspecify a Huffman tree via the length list. +In the above example, if codeword seven were eliminated, it’s clear that the tree is +unfinished: +

+

+ +

PIC +

Figure 5: underspecified huffman tree illustration
+
+

Similarly, in the original codebook, it’s clear that the tree is fully populated and a ninth +codeword is impossible. Both underspecified and overspecified trees are an error condition +rendering the stream undecodable. Take special care that a codebook with a single used +entry is handled properly; it consists of a single codework of zero bits and ’reading’ +a value out of such a codebook always returns the single used value and sinks zero +bits. +

Codebook entries marked ’unused’ are simply skipped in the assigning process. They have no +codeword and do not appear in the decision tree, thus it’s impossible for any bit pattern read +from the stream to decode to that entry number. + + + +

VQ lookup table vector representation +Unpacking the VQ lookup table vectors relies on the following values: +

+1  the [codebook_multiplicands] array +
2  [codebook_minimum_value] +
3  [codebook_delta_value] +
4  [codebook_sequence_p] +
5  [codebook_lookup_type] +
6  [codebook_entries] +
7  [codebook_dimensions] +
8  [codebook_lookup_values] +
+

Decoding (unpacking) a specific vector in the vector lookup table proceeds according to +[codebook_lookup_type]. The unpacked vector values are what a codebook would return +during audio packet decode in a VQ context. +

Vector value decode: Lookup type 1 +Lookup type one specifies a lattice VQ lookup table built algorithmically from a list of +scalar values. Calculate (unpack) the final values of a codebook entry vector from +the entries in [codebook_multiplicands] as follows ([value_vector] is the output +vector representing the vector of values for entry number [lookup_offset] in this +codebook): +

+

+1    1) [last] = 0; +
2    2) [index_divisor] = 1; +
3    3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) { +
4   +
5         4) [multiplicand_offset] = ( [lookup_offset] divided by [index_divisor] using integer +
6            division ) integer modulo [codebook_lookup_values] +
7   +
8         5) vector [value_vector] element [i] = +
9              ( [codebook_multiplicands] array element number [multiplicand_offset] ) * +
10              [codebook_delta_value] + [codebook_minimum_value] + [last]; +
11   +
12         6) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] +
13   +
14         7) [index_divisor] = [index_divisor] * [codebook_lookup_values] +
15   +
16       } +
17   +
18    8) vector calculation completed. +
+ + + +

Vector value decode: Lookup type 2 +Lookup type two specifies a VQ lookup table in which each scalar in each vector is explicitly set +by the [codebook_multiplicands] array in a one-to-one mapping. Calculate [unpack] the final +values of a codebook entry vector from the entries in [codebook_multiplicands] as follows +([value_vector] is the output vector representing the vector of values for entry number +[lookup_offset] in this codebook): +

+

+1    1) [last] = 0; +
2    2) [multiplicand_offset] = [lookup_offset] * [codebook_dimensions] +
3    3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) { +
4   +
5         4) vector [value_vector] element [i] = +
6              ( [codebook_multiplicands] array element number [multiplicand_offset] ) * +
7              [codebook_delta_value] + [codebook_minimum_value] + [last]; +
8   +
9         5) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] +
10   +
11         6) increment [multiplicand_offset] +
12   +
13       } +
14   +
15    7) vector calculation completed. +
+

+

3.3 Use of the codebook abstraction

+

The decoder uses the codebook abstraction much as it does the bit-unpacking convention; a +specific codebook reads a codeword from the bitstream, decoding it into an entry number, and +then returns that entry number to the decoder (when used in a scalar entropy coding context), or +uses that entry number as an offset into the VQ lookup table, returning a vector of values (when +used in a context desiring a VQ value). Scalar or VQ context is always explicit; any +call to the codebook mechanism requests either a scalar entry number or a lookup +vector. +

Note that VQ lookup type zero indicates that there is no lookup table; requesting +decode using a codebook of lookup type 0 in any context expecting a vector return +value (even in a case where a vector of dimension one) is forbidden. If decoder setup +or decode requests such an action, that is an error condition rendering the packet + + + +undecodable. +

Using a codebook to read from the packet bitstream consists first of reading and decoding the +next codeword in the bitstream. The decoder reads bits until the accumulated bits match a +codeword in the codebook. This process can be though of as logically walking the +Huffman decode tree by reading one bit at a time from the bitstream, and using the +bit as a decision boolean to take the 0 branch (left in the above examples) or the 1 +branch (right in the above examples). Walking the tree finishes when the decode process +hits a leaf in the decision tree; the result is the entry number corresponding to that +leaf. Reading past the end of a packet propagates the ’end-of-stream’ condition to the +decoder. +

When used in a scalar context, the resulting codeword entry is the desired return +value. +

When used in a VQ context, the codeword entry number is used as an offset into the VQ lookup +table. The value returned to the decoder is the vector of scalars corresponding to this +offset. + + + + + + +

4 Codec Setup and Packet Decode

+

+

4.1 Overview

+

This document serves as the top-level reference document for the bit-by-bit decode specification +of Vorbis I. This document assumes a high-level understanding of the Vorbis decode +process, which is provided in Section 1, “Introduction and Description”. Section 2, +“Bitpacking Convention” covers reading and writing bit fields from and to bitstream +packets. +

+

4.2 Header decode and decode setup

+

A Vorbis bitstream begins with three header packets. The header packets are, in order, the +identification header, the comments header, and the setup header. All are required for decode +compliance. An end-of-packet condition during decoding the first or third header packet renders +the stream undecodable. End-of-packet decoding the comment header is a non-fatal error +condition. +

+

4.2.1 Common header decode
+

Each header packet begins with the same header fields. +

+

+1    1) [packet_type] : 8 bit value +
2    2) 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73: the characters ’v’,’o’,’r’,’b’,’i’,’s’ as six octets +
+ + + +

Decode continues according to packet type; the identification header is type 1, the comment +header type 3 and the setup header type 5 (these types are all odd as a packet with a leading +single bit of ’0’ is an audio packet). The packets must occur in the order of identification, +comment, setup. +

+

4.2.2 Identification header
+

The identification header is a short header of only a few fields used to declare the stream +definitively as Vorbis, and provide a few externally relevant pieces of information about the audio +stream. The identification header is coded as follows: +

+

+1   1) [vorbis_version] = read 32 bits as unsigned integer +
2   2) [audio_channels] = read 8 bit integer as unsigned +
3   3) [audio_sample_rate] = read 32 bits as unsigned integer +
4   4) [bitrate_maximum] = read 32 bits as signed integer +
5   5) [bitrate_nominal] = read 32 bits as signed integer +
6   6) [bitrate_minimum] = read 32 bits as signed integer +
7   7) [blocksize_0] = 2 exponent (read 4 bits as unsigned integer) +
8   8) [blocksize_1] = 2 exponent (read 4 bits as unsigned integer) +
9   9) [framing_flag] = read one bit +
+

[vorbis_version] is to read ’0’ in order to be compatible with this document. Both +[audio_channels] and [audio_sample_rate] must read greater than zero. Allowed final +blocksize values are 64, 128, 256, 512, 1024, 2048, 4096 and 8192 in Vorbis I. [blocksize_0] +must be less than or equal to [blocksize_1]. The framing bit must be nonzero. Failure to meet +any of these conditions renders a stream undecodable. +

The bitrate fields above are used only as hints. The nominal bitrate field especially may be +considerably off in purely VBR streams. The fields are meaningful only when greater than +zero. +

    +
  • All three fields set to the same value implies a fixed rate, or tightly bounded, nearly + fixed-rate bitstream +
  • +
  • Only nominal set implies a VBR or ABR stream that averages the nominal bitrate + + + +
  • +
  • Maximum and or minimum set implies a VBR bitstream that obeys the bitrate limits +
  • +
  • None set indicates the encoder does not care to speculate.
+

+

4.2.3 Comment header
+

Comment header decode and data specification is covered in Section 5, “comment field and +header specification”. +

+

4.2.4 Setup header
+

Vorbis codec setup is configurable to an extreme degree: +

+

+ +

PIC +

Figure 6: decoder pipeline configuration
+
+

The setup header contains the bulk of the codec setup information needed for decode. The setup +header contains, in order, the lists of codebook configurations, time-domain transform +configurations (placeholders in Vorbis I), floor configurations, residue configurations, channel +mapping configurations and mode configurations. It finishes with a framing bit of ’1’. Header +decode proceeds in the following order: +

Codebooks + + + +

    +
  1. [vorbis_codebook_count] = read eight bits as unsigned integer and add one +
  2. +
  3. Decode [vorbis_codebook_count] codebooks in order as defined in Section 3, + “Probability Model and Codebooks”. Save each configuration, in order, in an array + of codebook configurations [vorbis_codebook_configurations].
+

Time domain transforms +These hooks are placeholders in Vorbis I. Nevertheless, the configuration placeholder values must +be read to maintain bitstream sync. +

+

    +
  1. [vorbis_time_count] = read 6 bits as unsigned integer and add one +
  2. +
  3. read [vorbis_time_count] 16 bit values; each value should be zero. If any value is + nonzero, this is an error condition and the stream is undecodable.
+

Floors +Vorbis uses two floor types; header decode is handed to the decode abstraction of the appropriate +type. +

+

    +
  1. [vorbis_floor_count] = read 6 bits as unsigned integer and add one +
  2. +
  3. For each [i] of [vorbis_floor_count] floor numbers: +
      +
    1. read the floor type: vector [vorbis_floor_types] element [i] = read 16 bits + as unsigned integer +
    2. +
    3. If the floor type is zero, decode the floor configuration as defined in Section 6, + “Floor type 0 setup and decode”; save this configuration in slot [i] of the floor + configuration array [vorbis_floor_configurations]. + + + +
    4. +
    5. If the floor type is one, decode the floor configuration as defined in Section 7, + “Floor type 1 setup and decode”; save this configuration in slot [i] of the floor + configuration array [vorbis_floor_configurations]. +
    6. +
    7. If the the floor type is greater than one, this stream is undecodable; ERROR + CONDITION
    +
+

Residues +Vorbis uses three residue types; header decode of each type is identical. +

+

    +
  1. [vorbis_residue_count] = read 6 bits as unsigned integer and add one +
  2. +
  3. For each of [vorbis_residue_count] residue numbers: +
      +
    1. read the residue type; vector [vorbis_residue_types] element [i] = read 16 + bits as unsigned integer +
    2. +
    3. If the residue type is zero, one or two, decode the residue configuration as defined + in Section 8, “Residue setup and decode”; save this configuration in slot [i] of + the residue configuration array [vorbis_residue_configurations]. +
    4. +
    5. If the the residue type is greater than two, this stream is undecodable; ERROR + CONDITION
    +
+

Mappings +Mappings are used to set up specific pipelines for encoding multichannel audio with varying +channel mapping applications. Vorbis I uses a single mapping type (0), with implicit PCM +channel mappings. + + + +

+

    +
  1. [vorbis_mapping_count] = read 6 bits as unsigned integer and add one +
  2. +
  3. For each [i] of [vorbis_mapping_count] mapping numbers: +
      +
    1. read the mapping type: 16 bits as unsigned integer. There’s no reason to save + the mapping type in Vorbis I. +
    2. +
    3. If the mapping type is nonzero, the stream is undecodable +
    4. +
    5. If the mapping type is zero: +
        +
      1. read 1 bit as a boolean flag +
          +
        1. if set, [vorbis_mapping_submaps] = read 4 bits as unsigned integer + and add one +
        2. +
        3. if unset, [vorbis_mapping_submaps] = 1
        +
      2. +
      3. read 1 bit as a boolean flag +
          +
        1. if set, square polar channel mapping is in use: +
            +
          • [vorbis_mapping_coupling_steps] = read 8 bits as unsigned + integer and add one +
          • +
          • for [j] each of [vorbis_mapping_coupling_steps] steps: +
              +
            • vector [vorbis_mapping_magnitude] element [j]= read + ilog([audio_channels] - 1) bits as unsigned integer +
            • +
            • vector [vorbis_mapping_angle] element [j]= read + ilog([audio_channels] - 1) bits as unsigned integer +
            • + + + +
            • the numbers read in the above two steps are channel numbers + representing the channel to treat as magnitude and the channel + to treat as angle, respectively. If for any coupling step the + angle channel number equals the magnitude channel number, the + magnitude channel number is greater than [audio_channels]-1, or + the angle channel is greater than [audio_channels]-1, the stream + is undecodable.
            +
          +
        2. +
        3. if unset, [vorbis_mapping_coupling_steps] = 0
        +
      4. +
      5. read 2 bits (reserved field); if the value is nonzero, the stream is undecodable +
      6. +
      7. if [vorbis_mapping_submaps] is greater than one, we read channel multiplex + settings. For each [j] of [audio_channels] channels: +
          +
        1. vector [vorbis_mapping_mux] element [j] = read 4 bits as unsigned + integer +
        2. +
        3. if the value is greater than the highest numbered submap + ([vorbis_mapping_submaps] - 1), this in an error condition rendering + the stream undecodable
        +
      8. +
      9. for each submap [j] of [vorbis_mapping_submaps] submaps, read the floor and + residue numbers for use in decoding that submap: +
          +
        1. read and discard 8 bits (the unused time configuration placeholder) +
        2. +
        3. read 8 bits as unsigned integer for the floor number; save in vector + [vorbis_mapping_submap_floor] element [j] +
        4. +
        5. verify the floor number is not greater than the highest number floor + configured for the bitstream. If it is, the bitstream is undecodable +
        6. +
        7. read 8 bits as unsigned integer for the residue number; save in vector + [vorbis_mapping_submap_residue] element [j] + + + +
        8. +
        9. verify the residue number is not greater than the highest number residue + configured for the bitstream. If it is, the bitstream is undecodable
        +
      10. +
      11. save this mapping configuration in slot [i] of the mapping configuration array + [vorbis_mapping_configurations].
      +
    +
+

Modes +

    +
  1. [vorbis_mode_count] = read 6 bits as unsigned integer and add one +
  2. +
  3. For each of [vorbis_mode_count] mode numbers: +
      +
    1. [vorbis_mode_blockflag] = read 1 bit +
    2. +
    3. [vorbis_mode_windowtype] = read 16 bits as unsigned integer +
    4. +
    5. [vorbis_mode_transformtype] = read 16 bits as unsigned integer +
    6. +
    7. [vorbis_mode_mapping] = read 8 bits as unsigned integer +
    8. +
    9. verify ranges; zero is the only legal value in + Vorbis I for [vorbis_mode_windowtype] and [vorbis_mode_transformtype]. + [vorbis_mode_mapping] must not be greater than the highest number mapping + in use. Any illegal values render the stream undecodable. +
    10. +
    11. save this mode configuration in slot [i] of the mode configuration array + [vorbis_mode_configurations].
    +
  4. +
  5. read 1 bit as a framing flag. If unset, a framing error occurred and the stream is not + decodable.
+ + + +

After reading mode descriptions, setup header decode is complete. +

+

4.3 Audio packet decode and synthesis

+

Following the three header packets, all packets in a Vorbis I stream are audio. The first step of +audio packet decode is to read and verify the packet type. A non-audio packet when audio is +expected indicates stream corruption or a non-compliant stream. The decoder must ignore the +packet and not attempt decoding it to audio. +

+

4.3.1 packet type, mode and window decode
+

+

    +
  1. read 1 bit [packet_type]; check that packet type is 0 (audio) +
  2. +
  3. read ilog([vorbis˙mode˙count]-1) bits [mode_number] +
  4. +
  5. decode blocksize [n] is equal to [blocksize_0] if [vorbis_mode_blockflag] is 0, + else [n] is equal to [blocksize_1]. +
  6. +
  7. perform window selection and setup; this window is used later by the inverse + MDCT: +
      +
    1. if this is a long window (the [vorbis_mode_blockflag] flag of this mode is + set): +
        +
      1. read 1 bit for [previous_window_flag] +
      2. +
      3. read 1 bit for [next_window_flag] + + + +
      4. +
      5. if [previous_window_flag] is not set, the left half of the window will + be a hybrid window for lapping with a short block. See paragraph 1.3.2, + “Window shape decode (long windows only)” for an illustration of + overlapping dissimilar windows. Else, the left half window will have normal + long shape. +
      6. +
      7. if [next_window_flag] is not set, the right half of the window will be + a hybrid window for lapping with a short block. See paragraph 1.3.2, + “Window shape decode (long windows only)” for an illustration of + overlapping dissimilar windows. Else, the left right window will have normal + long shape.
      +
    2. +
    3. if this is a short window, the window is always the same short-window + shape.
    +
+

Vorbis windows all use the slope function y = sin(π2 sin 2((x + 0.5)∕n π)), where n is window +size and x ranges 0n1, but dissimilar lapping requirements can affect overall shape. Window +generation proceeds as follows: +

+

    +
  1. [window_center] = [n] / 2 +
  2. +
  3. if ([vorbis_mode_blockflag] is set and [previous_window_flag] is not set) + then +
      +
    1. [left_window_start] = [n]/4 - [blocksize_0]/4 +
    2. +
    3. [left_window_end] = [n]/4 + [blocksize_0]/4 +
    4. +
    5. [left_n] = [blocksize_0]/2
    +

    else +

      +
    1. [left_window_start] = 0 +
    2. +
    3. [left_window_end] = [window_center] + + + +
    4. +
    5. [left_n] = [n]/2
    +
  4. +
  5. if ([vorbis_mode_blockflag] is set and [next_window_flag] is not set) then +
      +
    1. [right_window_start] = [n]*3/4 - [blocksize_0]/4 +
    2. +
    3. [right_window_end] = [n]*3/4 + [blocksize_0]/4 +
    4. +
    5. [right_n] = [blocksize_0]/2
    +

    else +

      +
    1. [right_window_start] = [window_center] +
    2. +
    3. [right_window_end] = [n] +
    4. +
    5. [right_n] = [n]/2
    +
  6. +
  7. window from range 0 ... [left_window_start]-1 inclusive is zero +
  8. +
  9. for [i] in range [left_window_start] ... [left_window_end]-1, window([i]) = + sin(π
+2 sin 2( ([i]-[left_window_start]+0.5) / [left_n] π
+2) ) +
  10. +
  11. window from range [left_window_end] ... [right_window_start]-1 inclusive is + one +
  12. +
  13. for [i] in range [right_window_start] ... [right_window_end]-1, window([i]) = + sin(π
+2 sin 2( ([i]-[right_window_start]+0.5) / [right_n] π
+2 + π
+2) ) +
  14. +
  15. window from range [right_window_start] ... [n]-1 is zero
+

An end-of-packet condition up to this point should be considered an error that discards this +packet from the stream. An end of packet condition past this point is to be considered a possible +nominal occurrence. + + + +

+

4.3.2 floor curve decode
+

From this point on, we assume out decode context is using mode number [mode_number] +from configuration array [vorbis_mode_configurations] and the map number +[vorbis_mode_mapping] (specified by the current mode) taken from the mapping configuration +array [vorbis_mapping_configurations]. +

Floor curves are decoded one-by-one in channel order. +

For each floor [i] of [audio_channels] +

    +
  1. [submap_number] = element [i] of vector [vorbis˙mapping˙mux] +
  2. +
  3. [floor_number] = element [submap_number] of vector [vorbis˙submap˙floor] +
  4. +
  5. if the floor type of this floor (vector + [vorbis_floor_types] element [floor_number]) is zero then decode the floor for + channel [i] according to the subsubsection 6.2.2, “packet decode” +
  6. +
  7. if the type of this floor is one then decode the floor for channel [i] according to the + paragraph 7.2.2, “packet decode” +
  8. +
  9. save the needed decoded floor information for channel for later synthesis +
  10. +
  11. if the decoded floor returned ’unused’, set vector [no_residue] element [i] to true, + else set vector [no_residue] element [i] to false
+

An end-of-packet condition during floor decode shall result in packet decode zeroing all channel +output vectors and skipping to the add/overlap output stage. +

+

4.3.3 nonzero vector propagate
+

A possible result of floor decode is that a specific vector is marked ’unused’ which indicates that +that final output vector is all-zero values (and the floor is zero). The residue for that vector is not +coded in the stream, save for one complication. If some vectors are used and some are not, + + + +channel coupling could result in mixing a zeroed and nonzeroed vector to produce two nonzeroed +vectors. +

for each [i] from 0 ... [vorbis_mapping_coupling_steps]-1 +

+

    +
  1. if either [no_residue] entry for channel ([vorbis_mapping_magnitude] element + [i]) or channel ([vorbis_mapping_angle] element [i]) are set to false, then both + must be set to false. Note that an ’unused’ floor has no decoded floor information; it + is important that this is remembered at floor curve synthesis time.
+

+

4.3.4 residue decode
+

Unlike floors, which are decoded in channel order, the residue vectors are decoded in submap +order. +

for each submap [i] in order from 0 ... [vorbis_mapping_submaps]-1 +

+

    +
  1. [ch] = 0 +
  2. +
  3. for each channel [j] in order from 0 ... [audio_channels] - 1 +
      +
    1. if channel [j] in submap [i] (vector [vorbis_mapping_mux] element [j] is equal to + [i]) +
        +
      1. if vector [no_residue] element [j] is true +
          +
        1. vector [do_not_decode_flag] element [ch] is set
        +

        else +

          +
        1. vector [do_not_decode_flag] element [ch] is unset
        +
      2. +
      3. increment [ch]
      + + + +
    +
  4. +
  5. [residue_number] = vector [vorbis_mapping_submap_residue] element [i] +
  6. +
  7. [residue_type] = vector [vorbis_residue_types] element [residue_number] +
  8. +
  9. decode [ch] vectors using residue [residue_number], according to type [residue_type], + also passing vector [do_not_decode_flag] to indicate which vectors in the bundle should + not be decoded. Correct per-vector decode length is [n]/2. +
  10. +
  11. [ch] = 0 +
  12. +
  13. for each channel [j] in order from 0 ... [audio_channels] +
      +
    1. if channel [j] is in submap [i] (vector [vorbis_mapping_mux] element [j] is equal + to [i]) +
        +
      1. residue vector for channel [j] is set to decoded residue vector [ch] +
      2. +
      3. increment [ch]
      +
    +
+

+

4.3.5 inverse coupling
+

for each [i] from [vorbis_mapping_coupling_steps]-1 descending to 0 +

+

    +
  1. [magnitude_vector] = the residue vector for channel (vector + [vorbis_mapping_magnitude] element [i]) +
  2. +
  3. [angle_vector] = the residue vector for channel (vector [vorbis_mapping_angle] + + + + element [i]) +
  4. +
  5. for each scalar value [M] in vector [magnitude_vector] and the corresponding scalar value + [A] in vector [angle_vector]: +
      +
    1. if ([M] is greater than zero) +
        +
      1. if ([A] is greater than zero) +
          +
        1. [new_M] = [M] +
        2. +
        3. [new_A] = [M]-[A]
        +

        else +

          +
        1. [new_A] = [M] +
        2. +
        3. [new_M] = [M]+[A]
        +
      +

      else +

        +
      1. if ([A] is greater than zero) +
          +
        1. [new_M] = [M] +
        2. +
        3. [new_A] = [M]+[A]
        +

        else +

          +
        1. [new_A] = [M] +
        2. +
        3. [new_M] = [M]-[A]
        +
      +
    2. +
    3. set scalar value [M] in vector [magnitude_vector] to [new_M] + + + +
    4. +
    5. set scalar value [A] in vector [angle_vector] to [new_A]
    +
+

+

4.3.6 dot product
+

For each channel, synthesize the floor curve from the decoded floor information, according to +packet type. Note that the vector synthesis length for floor computation is [n]/2. +

For each channel, multiply each element of the floor curve by each element of that +channel’s residue vector. The result is the dot product of the floor and residue vectors for +each channel; the produced vectors are the length [n]/2 audio spectrum for each +channel. +

One point is worth mentioning about this dot product; a common mistake in a fixed point +implementation might be to assume that a 32 bit fixed-point representation for floor and +residue and direct multiplication of the vectors is sufficient for acceptable spectral depth +in all cases because it happens to mostly work with the current Xiph.Org reference +encoder. +

However, floor vector values can span 140dB (24 bits unsigned), and the audio spectrum +vector should represent a minimum of 120dB (21 bits with sign), even when output is to a 16 +bit PCM device. For the residue vector to represent full scale if the floor is nailed +to 140dB, it must be able to span 0 to +140dB. For the residue vector to reach +full scale if the floor is nailed at 0dB, it must be able to represent 140dB to +0dB. +Thus, in order to handle full range dynamics, a residue vector may span 140dB to ++140dB entirely within spec. A 280dB range is approximately 48 bits with sign; thus the +residue vector must be able to represent a 48 bit range and the dot product must +be able to handle an effective 48 bit times 24 bit multiplication. This range may be +achieved using large (64 bit or larger) integers, or implementing a movable binary point +representation. +

+

4.3.7 inverse MDCT
+

Convert the audio spectrum vector of each channel back into time domain PCM audio via an + + + +inverse Modified Discrete Cosine Transform (MDCT). A detailed description of the MDCT is +available in [1]. The window function used for the MDCT is the function described +earlier. +

+

4.3.8 overlap˙add
+

Windowed MDCT output is overlapped and added with the right hand data of the previous +window such that the 3/4 point of the previous window is aligned with the 1/4 point of the +current window (as illustrated in paragraph 1.3.2, “Window shape decode (long windows +only)”). The overlapped portion produced from overlapping the previous and current frame data +is finished data to be returned by the decoder. This data spans from the center of +the previous window to the center of the current window. In the case of same-sized +windows, the amount of data to return is one-half block consisting of and only of the +overlapped portions. When overlapping a short and long window, much of the returned +range does not actually overlap. This does not damage transform orthogonality. Pay +attention however to returning the correct data range; the amount of data to be returned +is: +

+

+1  window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +
+

from the center (element windowsize/2) of the previous window to the center (element +windowsize/2-1, inclusive) of the current window. +

Data is not returned from the first frame; it must be used to ’prime’ the decode engine. The +encoder accounts for this priming when calculating PCM offsets; after the first frame, the proper +PCM output offset is ’0’ (as no data has been returned yet). +

+

4.3.9 output channel order
+

Vorbis I specifies only a channel mapping type 0. In mapping type 0, channel mapping is +implicitly defined as follows for standard audio applications. As of revision 16781 (20100113), the +specification adds defined channel locations for 6.1 and 7.1 surround. Ordering/location for + + + +greater-than-eight channels remains ’left to the implementation’. +

These channel orderings refer to order within the encoded stream. It is naturally possible for a +decoder to produce output with channels in any order. Any such decoder should explicitly +document channel reordering behavior. +

+

+one channel
the stream is monophonic +
+two channels
the stream is stereo. channel order: left, right +
+three channels
the stream is a 1d-surround encoding. channel order: left, center, right +
+four channels
the stream is quadraphonic surround. channel order: front left, front right, + rear left, rear right +
+five channels
the stream is five-channel surround. channel order: front left, center, front + right, rear left, rear right +
+six channels
the stream is 5.1 surround. channel order: front left, center, front right, rear + left, rear right, LFE +
+seven channels
the stream is 6.1 surround. channel order: front left, center, front right, + side left, side right, rear center, LFE +
+eight channels
the stream is 7.1 surround. channel order: front left, center, front right, + side left, side right, rear left, rear right, LFE +
+greater than eight channels
channel use and order is defined by the application +
+

Applications using Vorbis for dedicated purposes may define channel mapping as seen fit. Future +channel mappings (such as three and four channel Ambisonics) will make use of channel +mappings other than mapping 0. + + + + + + +

5 comment field and header specification

+

+

5.1 Overview

+

The Vorbis text comment header is the second (of three) header packets that begin a Vorbis +bitstream. It is meant for short text comments, not arbitrary metadata; arbitrary metadata +belongs in a separate logical bitstream (usually an XML stream type) that provides greater +structure and machine parseability. +

The comment field is meant to be used much like someone jotting a quick note on the bottom of +a CDR. It should be a little information to remember the disc by and explain it to others; a +short, to-the-point text note that need not only be a couple words, but isn’t going to be more +than a short paragraph. The essentials, in other words, whatever they turn out to be, +eg: +

+

+

Honest Bob and the Factory-to-Dealer-Incentives, “I’m Still Around”, opening + for Moxy Früvous, 1997.

+

+

5.2 Comment encoding

+

+

5.2.1 Structure
+

The comment header is logically a list of eight-bit-clean vectors; the number of vectors is +bounded to 232 1 and the length of each vector is limited to 232 1 bytes. The vector length is + + + +encoded; the vector contents themselves are not null terminated. In addition to the vector list, +there is a single vector for vendor name (also 8 bit clean, length encoded in 32 bits). For +example, the 1.0 release of libvorbis set the vendor string to “Xiph.Org libVorbis I +20020717”. +

The vector lengths and number of vectors are stored lsb first, according to the bit +packing conventions of the vorbis codec. However, since data in the comment header +is octet-aligned, they can simply be read as unaligned 32 bit little endian unsigned +integers. +

The comment header is decoded as follows: +

+

+1    1) [vendor_length] = read an unsigned integer of 32 bits +
2    2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets +
3    3) [user_comment_list_length] = read an unsigned integer of 32 bits +
4    4) iterate [user_comment_list_length] times { +
5         5) [length] = read an unsigned integer of 32 bits +
6         6) this iteration’s user comment = read a UTF-8 vector as [length] octets +
7       } +
8    7) [framing_bit] = read a single bit as boolean +
9    8) if ( [framing_bit] unset or end-of-packet ) then ERROR +
10    9) done. +
+

+

5.2.2 Content vector format
+

The comment vectors are structured similarly to a UNIX environment variable. That is, +comment fields consist of a field name and a corresponding value and look like: +

+

+

+

+1  comment[0]="ARTIST=me"; +
2  comment[1]="TITLE=the sound of Vorbis"; +
+
+ + + +

The field name is case-insensitive and may consist of ASCII 0x20 through 0x7D, 0x3D (’=’) +excluded. ASCII 0x41 through 0x5A inclusive (characters A-Z) is to be considered equivalent to +ASCII 0x61 through 0x7A inclusive (characters a-z). +

The field name is immediately followed by ASCII 0x3D (’=’); this equals sign is used to +terminate the field name. +

0x3D is followed by 8 bit clean UTF-8 encoded value of the field contents to the end of the +field. +

Field names +Below is a proposed, minimal list of standard field names with a description of intended use. No +single or group of field names is mandatory; a comment header may contain one, all or none of +the names in this list. +

+

+TITLE
Track/Work name +
+VERSION
The version field may be used to differentiate multiple versions of the same + track title in a single collection. (e.g. remix info) +
+ALBUM
The collection name to which this track belongs +
+TRACKNUMBER
The track number of this piece if part of a specific larger collection or + album +
+ARTIST
The artist generally considered responsible for the work. In popular music this is + usually the performing band or singer. For classical music it would be the composer. + For an audio book it would be the author of the original text. +
+PERFORMER
The artist(s) who performed the work. In classical music this would be the + conductor, orchestra, soloists. In an audio book it would be the actor who did the + reading. In popular music this is typically the same as the ARTIST and is omitted. +
+COPYRIGHT
Copyright attribution, e.g., ’2001 Nobody’s Band’ or ’1999 Jack Moffitt’ +
+ + + +LICENSE
License information, eg, ’All Rights Reserved’, ’Any Use Permitted’, a URL to + a license such as a Creative + Commons license (”www.creativecommons.org/blahblah/license.html”) or the EFF + Open Audio License (’distributed under the terms of the Open Audio License. see + http://www.eff.org/IP/Open˙licenses/eff˙oal.html for details’), etc. +
+ORGANIZATION
Name of the organization producing the track (i.e. the ’record label’) +
+DESCRIPTION
A short text description of the contents +
+GENRE
A short text indication of music genre +
+DATE
Date the track was recorded +
+LOCATION
Location where track was recorded +
+CONTACT
Contact information for the creators or distributors of the track. This could + be a URL, an email address, the physical address of the producing label. +
+ISRC
International Standard Recording Code for the track; see the ISRC intro page for + more information on ISRC numbers. +
+

Implications +Field names should not be ’internationalized’; this is a concession to simplicity not +an attempt to exclude the majority of the world that doesn’t speak English. Field +contents, however, use the UTF-8 character encoding to allow easy representation of any +language. +

We have the length of the entirety of the field and restrictions on the field name so that +the field name is bounded in a known way. Thus we also have the length of the field +contents. +

Individual ’vendors’ may use non-standard field names within reason. The proper +use of comment fields should be clear through context at this point. Abuse will be +discouraged. + + + +

There is no vendor-specific prefix to ’nonstandard’ field names. Vendors should make some effort +to avoid arbitrarily polluting the common namespace. We will generally collect the more useful +tags here to help with standardization. +

Field names are not required to be unique (occur once) within a comment header. As an +example, assume a track was recorded by three well know artists; the following is permissible, +and encouraged: +

+

+

+

+1  ARTIST=Dizzy Gillespie +
2  ARTIST=Sonny Rollins +
3  ARTIST=Sonny Stitt +
+
+

+

5.2.3 Encoding
+

The comment header comprises the entirety of the second bitstream header packet. Unlike the +first bitstream header packet, it is not generally the only packet on the second page and may not +be restricted to within the second bitstream page. The length of the comment header packet is +(practically) unbounded. The comment header packet is not optional; it must be present in the +bitstream even if it is effectively empty. +

The comment header is encoded as follows (as per Ogg’s standard bitstream mapping which +renders least-significant-bit of the word to be coded into the least significant available bit of the +current bitstream octet first): +

+

    +
  1. Vendor string length (32 bit unsigned quantity specifying number of octets) +
  2. +
  3. Vendor string ([vendor string length] octets coded from beginning of string to end of + string, not null terminated) + + + +
  4. +
  5. Number of comment fields (32 bit unsigned quantity specifying number of fields) +
  6. +
  7. Comment field 0 length (if [Number of comment fields] > 0; 32 bit unsigned quantity + specifying number of octets) +
  8. +
  9. Comment field 0 ([Comment field 0 length] octets coded from beginning of string to + end of string, not null terminated) +
  10. +
  11. Comment field 1 length (if [Number of comment fields] > 1...)... +
+

This is actually somewhat easier to describe in code; implementation of the above can be found +in vorbis/lib/info.c, _vorbis_pack_comment() and _vorbis_unpack_comment(). + + + + + + +

6 Floor type 0 setup and decode

+

+

6.1 Overview

+

Vorbis floor type zero uses Line Spectral Pair (LSP, also alternately known as Line Spectral +Frequency or LSF) representation to encode a smooth spectral envelope curve as the frequency +response of the LSP filter. This representation is equivalent to a traditional all-pole infinite +impulse response filter as would be used in linear predictive coding; LSP representation may be +converted to LPC representation and vice-versa. +

+

6.2 Floor 0 format

+

Floor zero configuration consists of six integer fields and a list of VQ codebooks for use in +coding/decoding the LSP filter coefficient values used by each frame. +

+

6.2.1 header decode
+

Configuration information for instances of floor zero decodes from the codec setup header (third +packet). configuration decode proceeds as follows: +

+

+1    1) [floor0_order] = read an unsigned integer of 8 bits +
2    2) [floor0_rate] = read an unsigned integer of 16 bits +
3    3) [floor0_bark_map_size] = read an unsigned integer of 16 bits +
4    4) [floor0_amplitude_bits] = read an unsigned integer of six bits +
5    5) [floor0_amplitude_offset] = read an unsigned integer of eight bits +
6    6) [floor0_number_of_books] = read an unsigned integer of four bits and add 1 +
7    7) array [floor0_book_list] = read a list of [floor0_number_of_books] unsigned integers of eight bits each; +
+ + + +

An end-of-packet condition during any of these bitstream reads renders this stream undecodable. +In addition, any element of the array [floor0_book_list] that is greater than the maximum +codebook number for this bitstream is an error condition that also renders the stream +undecodable. +

+

6.2.2 packet decode
+

Extracting a floor0 curve from an audio packet consists of first decoding the curve +amplitude and [floor0_order] LSP coefficient values from the bitstream, and then +computing the floor curve, which is defined as the frequency response of the decoded LSP +filter. +

Packet decode proceeds as follows: +

+1    1) [amplitude] = read an unsigned integer of [floor0_amplitude_bits] bits +
2    2) if ( [amplitude] is greater than zero ) { +
3         3) [coefficients] is an empty, zero length vector +
4         4) [booknumber] = read an unsigned integer of ilog( [floor0_number_of_books] ) bits +
5         5) if ( [booknumber] is greater than the highest number decode codebook ) then packet is undecodable +
6         6) [last] = zero; +
7         7) vector [temp_vector] = read vector from bitstream using codebook number [floor0_book_list] element [booknumber] in VQ context. +
8         8) add the scalar value [last] to each scalar in vector [temp_vector] +
9         9) [last] = the value of the last scalar in vector [temp_vector] +
10        10) concatenate [temp_vector] onto the end of the [coefficients] vector +
11        11) if (length of vector [coefficients] is less than [floor0_order], continue at step 6 +
12   +
13       } +
14   +
15   12) done. +
16   +
+

Take note of the following properties of decode: +

    +
  • An [amplitude] value of zero must result in a return code that indicates this channel + is unused in this frame (the output of the channel will be all-zeroes in synthesis). + Several later stages of decode don’t occur for an unused channel. +
  • +
  • An end-of-packet condition during decode should be considered a nominal occruence; + if end-of-packet is reached during any read operation above, floor decode is to return + ’unused’ status as if the [amplitude] value had read zero at the beginning of decode. +
  • +
  • The book number used for decode can, in fact, be stored in the bitstream in ilog( + + + + [floor0_number_of_books] - 1 ) bits. Nevertheless, the above specification is correct + and values greater than the maximum possible book value are reserved. +
  • +
  • The number of scalars read into the vector [coefficients] may be greater + than [floor0_order], the number actually required for curve computation. For + example, if the VQ codebook used for the floor currently being decoded has a + [codebook_dimensions] value of three and [floor0_order] is ten, the only way to + fill all the needed scalars in [coefficients] is to to read a total of twelve scalars + as four vectors of three scalars each. This is not an error condition, and care must + be taken not to allow a buffer overflow in decode. The extra values are not used and + may be ignored or discarded.
+

+

6.2.3 curve computation
+

Given an [amplitude] integer and [coefficients] vector from packet decode as well +as the [floor0˙order], [floor0˙rate], [floor0˙bark˙map˙size], [floor0˙amplitude˙bits] and +[floor0˙amplitude˙offset] values from floor setup, and an output vector size [n] specified by the +decode process, we compute a floor output vector. +

If the value [amplitude] is zero, the return value is a length [n] vector with all-zero +scalars. Otherwise, begin by assuming the following definitions for the given vector to be +synthesized: +

+        {
+          min (floor0xbarkxmapxsize    − 1,foobar )  for i ∈ [0,n − 1 ]
+mapi =    − 1                                        for i = n
+
+

+

where +

+          ⌊                                                 ⌋
+                (floor0xrate   ⋅ i) floor0xbarkxmapxsize
+foobar =   bark  -------2n-------  ⋅-bark(.5 ⋅ floor0xrate-)
+
+ + + +

+

and +

+                                                         2
+bark(x) = 13.1arctan (.00074x ) + 2.24 arctan(.0000000185x  +  .0001x )
+
+

+

The above is used to synthesize the LSP curve on a Bark-scale frequency axis, then map the +result to a linear-scale frequency axis. Similarly, the below calculation synthesizes the output +LSP curve [output] on a log (dB) amplitude scale, mapping it to linear amplitude in the last +step: +

+

    +
  1. [i] = 0 +
  2. +
  3. [ω] = π * map element [i] / [floor0_bark_map_size] +
  4. +
  5. if ( [floor0_order] is odd ) +
      +
    1. calculate [p] and [q] according to:
      +
      +                    floor0xorder−3
+               2      ∏2                                       2
+p  =   (1 − cos ω)           4(cos([coefficients  ]2j+1) − cosω )
+                      j=0
+         floor0x∏or2der−1
+q  =   1-          4(cos([coefficients  ]2j) − cosω )2
+       4    j=0
+                                                                                        
+
+                                                                                        
+
      +
      +
    +

    else [floor0_order] is even +

      +
    1. calculate [p] and [q] according to:
      +
      +                    floor0xorder−2
+       (1 − cos2ω)     ∏2                                       2
+p  =   -----2------          4(cos([coefficients  ]2j+1) − cosω )
+                       j=0
+               2   floor0xor2der−2
+q  =   (1 +-cos-ω)-    ∏     4(cos([coefficients  ] ) − cosω )2
+            2         j=0                          2j
+
      +
      +
    +
  6. +
  7. calculate [linear_floor_value] according to: +
    +     (           (                                                                      ))
+                 amplitude---⋅ floor0xamplitutexoffset---
+exp   .11512925       (2floor0xamplitudexbits − 1)√ p + q     − floor0xamplitudexoffset
+
    +

    +

  8. +
  9. [iteration_condition] = map element [i] + + + +
  10. +
  11. [output] element [i] = [linear_floor_value] +
  12. +
  13. increment [i] +
  14. +
  15. if ( map element [i] is equal to [iteration_condition] ) continue at step + 5 +
  16. +
  17. if ( [i] is less than [n] ) continue at step 2 +
  18. +
  19. done
+ + + + + + +

7 Floor type 1 setup and decode

+

+

7.1 Overview

+

Vorbis floor type one uses a piecewise straight-line representation to encode a spectral envelope +curve. The representation plots this curve mechanically on a linear frequency axis and a +logarithmic (dB) amplitude axis. The integer plotting algorithm used is similar to Bresenham’s +algorithm. +

+

7.2 Floor 1 format

+

+

7.2.1 model
+

Floor type one represents a spectral curve as a series of line segments. Synthesis constructs a +floor curve using iterative prediction in a process roughly equivalent to the following simplified +description: +

    +
  • the first line segment (base case) is a logical line spanning from x˙0,y˙0 to x˙1,y˙1 + where in the base case x˙0=0 and x˙1=[n], the full range of the spectral floor to be + computed. +
  • +
  • the induction step chooses a point x˙new within an existing logical line segment and + produces a y˙new value at that point computed from the existing line’s y value at + x˙new (as plotted by the line) and a difference value decoded from the bitstream + packet. + + + +
  • +
  • floor computation produces two new line segments, one running from x˙0,y˙0 to + x˙new,y˙new and from x˙new,y˙new to x˙1,y˙1. This step is performed logically even if + y˙new represents no change to the amplitude value at x˙new so that later refinement + is additionally bounded at x˙new. +
  • +
  • the induction step repeats, using a list of x values specified in the codec setup header + at floor 1 initialization time. Computation is completed at the end of the x value list. +
+

Consider the following example, with values chosen for ease of understanding rather than +representing typical configuration: +

For the below example, we assume a floor setup with an [n] of 128. The list of selected X values +in increasing order is 0,16,32,48,64,80,96,112 and 128. In list order, the values interleave as 0, +128, 64, 32, 96, 16, 48, 80 and 112. The corresponding list-order Y values as decoded from an +example packet are 110, 20, -5, -45, 0, -25, -10, 30 and -10. We compute the floor in the following +way, beginning with the first line: +

+

+ +

PIC +

Figure 7: graph of example floor
+
+

We now draw new logical lines to reflect the correction to new˙Y, and iterate for X positions 32 +and 96: +

+

+ +

PIC +

Figure 8: graph of example floor
+
+

Although the new Y value at X position 96 is unchanged, it is still used later as an endpoint for +further refinement. From here on, the pattern should be clear; we complete the floor computation +as follows: + + + +

+

+ +

PIC +

Figure 9: graph of example floor
+
+
+

+ +

PIC +

Figure 10: graph of example floor
+
+

A more efficient algorithm with carefully defined integer rounding behavior is used for actual +decode, as described later. The actual algorithm splits Y value computation and line plotting +into two steps with modifications to the above algorithm to eliminate noise accumulation +through integer roundoff/truncation. +

+

7.2.2 header decode
+

A list of floor X values is stored in the packet header in interleaved format (used in list order +during packet decode and synthesis). This list is split into partitions, and each partition is +assigned to a partition class. X positions 0 and [n] are implicit and do not belong to an explicit +partition or partition class. +

A partition class consists of a representation vector width (the number of Y values which +the partition class encodes at once), a ’subclass’ value representing the number of +alternate entropy books the partition class may use in representing Y values, the list of +[subclass] books and a master book used to encode which alternate books were chosen +for representation in a given packet. The master/subclass mechanism is meant to be +used as a flexible representation cascade while still using codebooks only in a scalar +context. + + + +

+

+1   +
2    1) [floor1_partitions] = read 5 bits as unsigned integer +
3    2) [maximum_class] = -1 +
4    3) iterate [i] over the range 0 ... [floor1_partitions]-1 { +
5   +
6          4) vector [floor1_partition_class_list] element [i] = read 4 bits as unsigned integer +
7   +
8       } +
9   +
10    5) [maximum_class] = largest integer scalar value in vector [floor1_partition_class_list] +
11    6) iterate [i] over the range 0 ... [maximum_class] { +
12   +
13          7) vector [floor1_class_dimensions] element [i] = read 3 bits as unsigned integer and add 1 +
14   8) vector [floor1_class_subclasses] element [i] = read 2 bits as unsigned integer +
15          9) if ( vector [floor1_class_subclasses] element [i] is nonzero ) { +
16   +
17               10) vector [floor1_class_masterbooks] element [i] = read 8 bits as unsigned integer +
18   +
19             } +
20   +
21         11) iterate [j] over the range 0 ... (2 exponent [floor1_class_subclasses] element [i]) - 1 { +
22   +
23               12) array [floor1_subclass_books] element [i],[j] = +
24                   read 8 bits as unsigned integer and subtract one +
25             } +
26        } +
27   +
28   13) [floor1_multiplier] = read 2 bits as unsigned integer and add one +
29   14) [rangebits] = read 4 bits as unsigned integer +
30   15) vector [floor1_X_list] element [0] = 0 +
31   16) vector [floor1_X_list] element [1] = 2 exponent [rangebits]; +
32   17) [floor1_values] = 2 +
33   18) iterate [i] over the range 0 ... [floor1_partitions]-1 { +
34   +
35         19) [current_class_number] = vector [floor1_partition_class_list] element [i] +
36         20) iterate [j] over the range 0 ... ([floor1_class_dimensions] element [current_class_number])-1 { +
37               21) vector [floor1_X_list] element ([floor1_values]) = +
38                   read [rangebits] bits as unsigned integer +
39               22) increment [floor1_values] by one +
40             } +
41       } +
42   +
43   23) done +
+

An end-of-packet condition while reading any aspect of a floor 1 configuration during +setup renders a stream undecodable. In addition, a [floor1_class_masterbooks] or +[floor1_subclass_books] scalar element greater than the highest numbered codebook +configured in this stream is an error condition that renders the stream undecodable. All vector +[floor1˙x˙list] element values must be unique within the vector; a non-unique value renders the +stream undecodable. +

packet decode + + + +Packet decode begins by checking the [nonzero] flag: +

+

+1    1) [nonzero] = read 1 bit as boolean +
+

If [nonzero] is unset, that indicates this channel contained no audio energy in this frame. +Decode immediately returns a status indicating this floor curve (and thus this channel) is unused +this frame. (A return status of ’unused’ is different from decoding a floor that has all +points set to minimum representation amplitude, which happens to be approximately +-140dB). +

Assuming [nonzero] is set, decode proceeds as follows: +

+

+1    1) [range] = vector { 256, 128, 86, 64 } element ([floor1_multiplier]-1) +
2    2) vector [floor1_Y] element [0] = read ilog([range]-1) bits as unsigned integer +
3    3) vector [floor1_Y] element [1] = read ilog([range]-1) bits as unsigned integer +
4    4) [offset] = 2; +
5    5) iterate [i] over the range 0 ... [floor1_partitions]-1 { +
6   +
7         6) [class] = vector [floor1_partition_class]  element [i] +
8         7) [cdim]  = vector [floor1_class_dimensions] element [class] +
9         8) [cbits] = vector [floor1_class_subclasses] element [class] +
10         9) [csub]  = (2 exponent [cbits])-1 +
11        10) [cval]  = 0 +
12        11) if ( [cbits] is greater than zero ) { +
13   +
14               12) [cval] = read from packet using codebook number +
15                   (vector [floor1_class_masterbooks] element [class]) in scalar context +
16            } +
17   +
18        13) iterate [j] over the range 0 ... [cdim]-1 { +
19   +
20               14) [book] = array [floor1_subclass_books] element [class],([cval] bitwise AND [csub]) +
21               15) [cval] = [cval] right shifted [cbits] bits +
22        16) if ( [book] is not less than zero ) { +
23   +
24              17) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook +
25                         [book] in scalar context +
26   +
27                   } else [book] is less than zero { +
28   +
29              18) vector [floor1_Y] element ([j]+[offset]) = 0 +
30   +
31                   } +
32            } +
33   +
34        19) [offset] = [offset] + [cdim] +
35   +
36       } +
37   +
38   20) done +
+ + + +

An end-of-packet condition during curve decode should be considered a nominal occurrence; if +end-of-packet is reached during any read operation above, floor decode is to return ’unused’ +status as if the [nonzero] flag had been unset at the beginning of decode. +

Vector [floor1_Y] contains the values from packet decode needed for floor 1 synthesis. +

curve computation +Curve computation is split into two logical steps; the first step derives final Y amplitude values +from the encoded, wrapped difference values taken from the bitstream. The second step +plots the curve lines. Also, although zero-difference values are used in the iterative +prediction to find final Y values, these points are conditionally skipped during final +line computation in step two. Skipping zero-difference values allows a smoother line +fit. +

Although some aspects of the below algorithm look like inconsequential optimizations, +implementors are warned to follow the details closely. Deviation from implementing a strictly +equivalent algorithm can result in serious decoding errors. +

+

+step 1: amplitude value synthesis
+

Unwrap the always-positive-or-zero values read from the packet into +/- difference + values, then apply to line prediction. +

+

+1    1) [range] = vector { 256, 128, 86, 64 } element ([floor1_multiplier]-1) +
2    2) vector [floor1_step2_flag] element [0] = set +
3    3) vector [floor1_step2_flag] element [1] = set +
4    4) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0] +
5    5) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1] +
6    6) iterate [i] over the range 2 ... [floor1_values]-1 { +
7   +
8         7) [low_neighbor_offset] = low_neighbor([floor1_X_list],[i]) +
9         8) [high_neighbor_offset] = high_neighbor([floor1_X_list],[i]) +
10   +
11         9) [predicted] = render_point( vector [floor1_X_list] element [low_neighbor_offset], +
12         vector [floor1_final_Y] element [low_neighbor_offset], +
13                                        vector [floor1_X_list] element [high_neighbor_offset], +
14         vector [floor1_final_Y] element [high_neighbor_offset], +
15                                        vector [floor1_X_list] element [i] ) +
16   +
17        10) [val] = vector [floor1_Y] element [i] +
18        11) [highroom] = [range] - [predicted] +
19        12) [lowroom]  = [predicted] +
20        13) if ( [highroom] is less than [lowroom] ) { +
21   +
22              14) [room] = [highroom] * 2 + + + +
23   +
24            } else [highroom] is not less than [lowroom] { +
25   +
26              15) [room] = [lowroom] * 2 +
27   +
28            } +
29   +
30        16) if ( [val] is nonzero ) { +
31   +
32              17) vector [floor1_step2_flag] element [low_neighbor_offset] = set +
33              18) vector [floor1_step2_flag] element [high_neighbor_offset] = set +
34              19) vector [floor1_step2_flag] element [i] = set +
35              20) if ( [val] is greater than or equal to [room] ) { +
36   +
37                    21) if ( [highroom] is greater than [lowroom] ) { +
38   +
39                          22) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted] +
40   +
41         } else [highroom] is not greater than [lowroom] { +
42   +
43                          23) vector [floor1_final_Y] element [i] = [predicted] - [val] + [highroom] - 1 +
44   +
45                        } +
46   +
47                  } else [val] is less than [room] { +
48   +
49     24) if ([val] is odd) { +
50   +
51                          25) vector [floor1_final_Y] element [i] = +
52                              [predicted] - (([val] + 1) divided by  2 using integer division) +
53   +
54                        } else [val] is even { +
55   +
56                          26) vector [floor1_final_Y] element [i] = +
57                              [predicted] + ([val] / 2 using integer division) +
58   +
59                        } +
60   +
61                  } +
62   +
63            } else [val] is zero { +
64   +
65              27) vector [floor1_step2_flag] element [i] = unset +
66              28) vector [floor1_final_Y] element [i] = [predicted] +
67   +
68            } +
69   +
70       } +
71   +
72   29) done +
73   +
+
+step 2: curve synthesis
+

Curve synthesis generates a return vector [floor] of length [n] (where [n] is provided by + the decode process calling to floor decode). Floor 1 curve synthesis makes use of the + [floor1_X_list], [floor1_final_Y] and [floor1_step2_flag] vectors, as well as + [floor1˙multiplier] and [floor1˙values] values. + + + +

Decode begins by sorting the scalars from vectors [floor1_X_list], [floor1_final_Y] and + [floor1_step2_flag] together into new vectors [floor1_X_list]’, [floor1_final_Y]’ + and [floor1_step2_flag]’ according to ascending sort order of the values in + [floor1_X_list]. That is, sort the values of [floor1_X_list] and then apply the same + permutation to elements of the other two vectors so that the X, Y and step2˙flag values still + match. +

Then compute the final curve in one pass: +

+

+1    1) [hx] = 0 +
2    2) [lx] = 0 +
3    3) [ly] = vector [floor1_final_Y]’ element [0] * [floor1_multiplier] +
4    4) iterate [i] over the range 1 ... [floor1_values]-1 { +
5   +
6         5) if ( [floor1_step2_flag]’ element [i] is set ) { +
7   +
8               6) [hy] = [floor1_final_Y]’ element [i] * [floor1_multiplier] +
9         7) [hx] = [floor1_X_list]’ element [i] +
10               8) render_line( [lx], [ly], [hx], [hy], [floor] ) +
11               9) [lx] = [hx] +
12       10) [ly] = [hy] +
13            } +
14       } +
15   +
16   11) if ( [hx] is less than [n] ) { +
17   +
18          12) render_line( [hx], [hy], [n], [hy], [floor] ) +
19   +
20       } +
21   +
22   13) if ( [hx] is greater than [n] ) { +
23   +
24              14) truncate vector [floor] to [n] elements +
25   +
26       } +
27   +
28   15) for each scalar in vector [floor], perform a lookup substitution using +
29       the scalar value from [floor] as an offset into the vector [floor1_inverse_dB_static_table] +
30   +
31   16) done +
32   +
+
+ + + +

8 Residue setup and decode

+

+

8.1 Overview

+

A residue vector represents the fine detail of the audio spectrum of one channel in an audio frame +after the encoder subtracts the floor curve and performs any channel coupling. A residue vector +may represent spectral lines, spectral magnitude, spectral phase or hybrids as mixed by channel +coupling. The exact semantic content of the vector does not matter to the residue +abstraction. +

Whatever the exact qualities, the Vorbis residue abstraction codes the residue vectors into the +bitstream packet, and then reconstructs the vectors during decode. Vorbis makes use of three +different encoding variants (numbered 0, 1 and 2) of the same basic vector encoding +abstraction. +

+

8.2 Residue format

+

Residue format partitions each vector in the vector bundle into chunks, classifies each +chunk, encodes the chunk classifications and finally encodes the chunks themselves +using the the specific VQ arrangement defined for each selected classification. The +exact interleaving and partitioning vary by residue encoding number, however the +high-level process used to classify and encode the residue vector is the same in all three +variants. +

A set of coded residue vectors are all of the same length. High level coding structure, ignoring for +the moment exactly how a partition is encoded and simply trusting that it is, is as +follows: +

    +
  • Each vector is partitioned into multiple equal sized chunks according to configuration + specified. If we have a vector size of n, a partition size residue˙partition˙size, and + a total of ch residue vectors, the total number of partitioned chunks coded is + + + + n/residue˙partition˙size*ch. It is important to note that the integer division truncates. + In the below example, we assume an example residue˙partition˙size of 8. +
  • +
  • Each partition in each vector has a classification number that specifies which of + multiple configured VQ codebook setups are used to decode that partition. The + classification numbers of each partition can be thought of as forming a vector in + their own right, as in the illustration below. Just as the residue vectors are coded + in grouped partitions to increase encoding efficiency, the classification vector is also + partitioned into chunks. The integer elements of each scalar in a classification chunk + are built into a single scalar that represents the classification numbers in that chunk. + In the below example, the classification codeword encodes two classification numbers. +
  • +
  • The values in a residue vector may be encoded monolithically in a single pass through + the residue vector, but more often efficient codebook design dictates that each vector + is encoded as the additive sum of several passes through the residue vector using + more than one VQ codebook. Thus, each residue value potentially accumulates values + from multiple decode passes. The classification value associated with a partition is + the same in each pass, thus the classification codeword is coded only in the first pass. +
+
+

+ +

PIC +

Figure 11: illustration of residue vector format
+
+

+

8.3 residue 0

+

Residue 0 and 1 differ only in the way the values within a residue partition are interleaved during +partition encoding (visually treated as a black box–or cyan box or brown box–in the above +figure). +

Residue encoding 0 interleaves VQ encoding according to the dimension of the codebook used to + + + +encode a partition in a specific pass. The dimension of the codebook need not be the same in +multiple passes, however the partition size must be an even multiple of the codebook +dimension. +

As an example, assume a partition vector of size eight, to be encoded by residue 0 using +codebook sizes of 8, 4, 2 and 1: +

+

+1   +
2              original residue vector: [ 0 1 2 3 4 5 6 7 ] +
3   +
4  codebook dimensions = 8  encoded as: [ 0 1 2 3 4 5 6 7 ] +
5   +
6  codebook dimensions = 4  encoded as: [ 0 2 4 6 ], [ 1 3 5 7 ] +
7   +
8  codebook dimensions = 2  encoded as: [ 0 4 ], [ 1 5 ], [ 2 6 ], [ 3 7 ] +
9   +
10  codebook dimensions = 1  encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] +
11   +
+

It is worth mentioning at this point that no configurable value in the residue coding setup is +restricted to a power of two. +

+

8.4 residue 1

+

Residue 1 does not interleave VQ encoding. It represents partition vector scalars in order. As +with residue 0, however, partition length must be an integer multiple of the codebook dimension, +although dimension may vary from pass to pass. +

As an example, assume a partition vector of size eight, to be encoded by residue 0 using +codebook sizes of 8, 4, 2 and 1: +

+

+1   +
2              original residue vector: [ 0 1 2 3 4 5 6 7 ] +
3   +
4  codebook dimensions = 8  encoded as: [ 0 1 2 3 4 5 6 7 ] +
5   +
6  codebook dimensions = 4  encoded as: [ 0 1 2 3 ], [ 4 5 6 7 ] +
7   +
8  codebook dimensions = 2  encoded as: [ 0 1 ], [ 2 3 ], [ 4 5 ], [ 6 7 ] +
9   +
10  codebook dimensions = 1  encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] +
11   + + + +
+

+

8.5 residue 2

+

Residue type two can be thought of as a variant of residue type 1. Rather than encoding multiple +passed-in vectors as in residue type 1, the ch passed in vectors of length n are first interleaved +and flattened into a single vector of length ch*n. Encoding then proceeds as in type 1. Decoding +is as in type 1 with decode interleave reversed. If operating on a single vector to begin with, +residue type 1 and type 2 are equivalent. +

+

+ +

PIC +

Figure 12: illustration of residue type 2
+
+

+

8.6 Residue decode

+

+

8.6.1 header decode
+

Header decode for all three residue types is identical. +

+1    1) [residue_begin] = read 24 bits as unsigned integer +
2    2) [residue_end] = read 24 bits as unsigned integer +
3    3) [residue_partition_size] = read 24 bits as unsigned integer and add one +
4    4) [residue_classifications] = read 6 bits as unsigned integer and add one + + + +
5    5) [residue_classbook] = read 8 bits as unsigned integer +
+

[residue_begin] and [residue_end] select the specific sub-portion of each vector that is +actually coded; it implements akin to a bandpass where, for coding purposes, the vector +effectively begins at element [residue_begin] and ends at [residue_end]. Preceding and +following values in the unpacked vectors are zeroed. Note that for residue type 2, these +values as well as [residue_partition_size]apply to the interleaved vector, not the +individual vectors before interleave. [residue_partition_size] is as explained above, +[residue_classifications] is the number of possible classification to which a partition can +belong and [residue_classbook] is the codebook number used to code classification +codewords. The number of dimensions in book [residue_classbook] determines how +many classification values are grouped into a single classification codeword. Note that +the number of entries and dimensions in book [residue_classbook], along with +[residue_classifications], overdetermines to possible number of classification +codewords. If [residue_classifications]ˆ[residue_classbook].dimensions exceeds +[residue_classbook].entries, the bitstream should be regarded to be undecodable. +

Next we read a bitmap pattern that specifies which partition classes code values in which +passes. +

+

+1    1) iterate [i] over the range 0 ... [residue_classifications]-1 { +
2   +
3         2) [high_bits] = 0 +
4         3) [low_bits] = read 3 bits as unsigned integer +
5         4) [bitflag] = read one bit as boolean +
6         5) if ( [bitflag] is set ) then [high_bits] = read five bits as unsigned integer +
7         6) vector [residue_cascade] element [i] = [high_bits] * 8 + [low_bits] +
8       } +
9    7) done +
+

Finally, we read in a list of book numbers, each corresponding to specific bit set in the cascade +bitmap. We loop over the possible codebook classifications and the maximum possible number of +encoding stages (8 in Vorbis I, as constrained by the elements of the cascade bitmap being eight +bits): +

+

+1    1) iterate [i] over the range 0 ... [residue_classifications]-1 { +
2   +
3         2) iterate [j] over the range 0 ... 7 { +
4   +
5              3) if ( vector [residue_cascade] element [i] bit [j] is set ) { +
6   +
7                   4) array [residue_books] element [i][j] = read 8 bits as unsigned integer +
8   +
9                 } else { + + + +
10   +
11                   5) array [residue_books] element [i][j] = unused +
12   +
13                 } +
14            } +
15        } +
16   +
17    6) done +
+

An end-of-packet condition at any point in header decode renders the stream undecodable. +In addition, any codebook number greater than the maximum numbered codebook +set up in this stream also renders the stream undecodable. All codebooks in array +[residue˙books] are required to have a value mapping. The presence of codebook in array +[residue˙books] without a value mapping (maptype equals zero) renders the stream +undecodable. +

+

8.6.2 packet decode
+

Format 0 and 1 packet decode is identical except for specific partition interleave. Format 2 packet +decode can be built out of the format 1 decode process. Thus we describe first the decode +infrastructure identical to all three formats. +

In addition to configuration information, the residue decode process is passed the number of +vectors in the submap bundle and a vector of flags indicating if any of the vectors are not to be +decoded. If the passed in number of vectors is 3 and vector number 1 is marked ’do not decode’, +decode skips vector 1 during the decode loop. However, even ’do not decode’ vectors are +allocated and zeroed. +

Depending on the values of [residue_begin] and [residue_end], it is obvious that the +encoded portion of a residue vector may be the entire possible residue vector or some other strict +subset of the actual residue vector size with zero padding at either uncoded end. However, it is +also possible to set [residue_begin] and [residue_end] to specify a range partially or wholly +beyond the maximum vector size. Before beginning residue decode, limit [residue_begin] +and [residue_end] to the maximum possible vector size as follows. We assume that +the number of vectors being encoded, [ch] is provided by the higher level decoding +process. +

+

+1    1) [actual_size] = current blocksize/2; +
2    2) if residue encoding is format 2 +
3         3) [actual_size] = [actual_size] * [ch]; + + + +
4    4) [limit_residue_begin] = maximum of ([residue_begin],[actual_size]); +
5    5) [limit_residue_end] = maximum of ([residue_end],[actual_size]); +
+

The following convenience values are conceptually useful to clarifying the decode process: +

+

+1    1) [classwords_per_codeword] = [codebook_dimensions] value of codebook [residue_classbook] +
2    2) [n_to_read] = [limit_residue_end] - [limit_residue_begin] +
3    3) [partitions_to_read] = [n_to_read] / [residue_partition_size] +
+

Packet decode proceeds as follows, matching the description offered earlier in the document. +

+1    1) allocate and zero all vectors that will be returned. +
2    2) if ([n_to_read] is zero), stop; there is no residue to decode. +
3    3) iterate [pass] over the range 0 ... 7 { +
4   +
5         4) [partition_count] = 0 +
6   +
7         5) while [partition_count] is less than [partitions_to_read] +
8   +
9              6) if ([pass] is zero) { +
10   +
11                   7) iterate [j] over the range 0 .. [ch]-1 { +
12   +
13                        8) if vector [j] is not marked ’do not decode’ { +
14   +
15                             9) [temp] = read from packet using codebook [residue_classbook] in scalar context +
16                            10) iterate [i] descending over the range [classwords_per_codeword]-1 ... 0 { +
17   +
18                                 11) array [classifications] element [j],([i]+[partition_count]) = +
19                                     [temp] integer modulo [residue_classifications] +
20                                 12) [temp] = [temp] / [residue_classifications] using integer division +
21   +
22                                } +
23   +
24                           } +
25   +
26                      } +
27   +
28                 } +
29   +
30             13) iterate [i] over the range 0 .. ([classwords_per_codeword] - 1) while [partition_count] +
31                 is also less than [partitions_to_read] { +
32   +
33                   14) iterate [j] over the range 0 .. [ch]-1 { +
34   +
35                        15) if vector [j] is not marked ’do not decode’ { +
36   +
37                             16) [vqclass] = array [classifications] element [j],[partition_count] +
38                             17) [vqbook] = array [residue_books] element [vqclass],[pass] +
39                             18) if ([vqbook] is not ’unused’) { +
40   +
41                                  19) decode partition into output vector number [j], starting at scalar +
42                                      offset [limit_residue_begin]+[partition_count]*[residue_partition_size] using +
43                                      codebook number [vqbook] in VQ context +
44                            } + + + +
45                       } +
46   +
47                   20) increment [partition_count] by one +
48   +
49                 } +
50            } +
51       } +
52   +
53   21) done +
54   +
+

An end-of-packet condition during packet decode is to be considered a nominal occurrence. +Decode returns the result of vector decode up to that point. +

+

8.6.3 format 0 specifics
+

Format zero decodes partitions exactly as described earlier in the ’Residue Format: residue 0’ +section. The following pseudocode presents the same algorithm. Assume: +

    +
  • [n] is the value in [residue_partition_size] +
  • +
  • [v] is the residue vector +
  • +
  • [offset] is the beginning read offset in [v]
+

+

+1   1) [step] = [n] / [codebook_dimensions] +
2   2) iterate [i] over the range 0 ... [step]-1 { +
3   +
4        3) vector [entry_temp] = read vector from packet using current codebook in VQ context +
5        4) iterate [j] over the range 0 ... [codebook_dimensions]-1 { +
6   +
7             5) vector [v] element ([offset]+[i]+[j]*[step]) = +
8           vector [v] element ([offset]+[i]+[j]*[step]) + +
9                  vector [entry_temp] element [j] +
10   +
11           } +
12   +
13      } +
14   +
15    6) done +
16   + + + +
+

+

8.6.4 format 1 specifics
+

Format 1 decodes partitions exactly as described earlier in the ’Residue Format: residue 1’ +section. The following pseudocode presents the same algorithm. Assume: +

    +
  • [n] is the value in [residue_partition_size] +
  • +
  • [v] is the residue vector +
  • +
  • [offset] is the beginning read offset in [v]
+

+

+1   1) [i] = 0 +
2   2) vector [entry_temp] = read vector from packet using current codebook in VQ context +
3   3) iterate [j] over the range 0 ... [codebook_dimensions]-1 { +
4   +
5        4) vector [v] element ([offset]+[i]) = +
6     vector [v] element ([offset]+[i]) + +
7            vector [entry_temp] element [j] +
8        5) increment [i] +
9   +
10      } +
11   +
12    6) if ( [i] is less than [n] ) continue at step 2 +
13    7) done +
+

+

8.6.5 format 2 specifics
+

Format 2 is reducible to format 1. It may be implemented as an additional step prior to and an +additional post-decode step after a normal format 1 decode. + + + +

Format 2 handles ’do not decode’ vectors differently than residue 0 or 1; if all vectors are marked +’do not decode’, no decode occurrs. However, if at least one vector is to be decoded, all +the vectors are decoded. We then request normal format 1 to decode a single vector +representing all output channels, rather than a vector for each channel. After decode, +deinterleave the vector into independent vectors, one for each output channel. That +is: +

+

    +
  1. If all vectors 0 through ch-1 are marked ’do not decode’, allocate and clear a single + vector [v]of length ch*n and skip step 2 below; proceed directly to the post-decode + step. +
  2. +
  3. Rather than performing format 1 decode to produce ch vectors of length n each, call + format 1 decode to produce a single vector [v] of length ch*n. +
  4. +
  5. Post decode: Deinterleave the single vector [v] returned by format 1 decode as + described above into ch independent vectors, one for each outputchannel, according + to: +
    +1    1) iterate [i] over the range 0 ... [n]-1 { +
    2   +
    3         2) iterate [j] over the range 0 ... [ch]-1 { +
    4   +
    5              3) output vector number [j] element [i] = vector [v] element ([i] * [ch] + [j]) +
    6   +
    7            } +
    8       } +
    9   +
    10    4) done +
    +
+ + + + + + +

9 Helper equations

+

+

9.1 Overview

+

The equations below are used in multiple places by the Vorbis codec specification. Rather than +cluttering up the main specification documents, they are defined here and referenced where +appropriate. +

+

9.2 Functions

+

+

9.2.1 ilog
+

The ”ilog(x)” function returns the position number (1 through n) of the highest set bit in the +two’s complement integer value [x]. Values of [x] less than zero are defined to return +zero. +

+

+1    1) [return_value] = 0; +
2    2) if ( [x] is greater than zero ) { +
3   +
4         3) increment [return_value]; +
5         4) logical shift [x] one bit to the right, padding the MSb with zero +
6         5) repeat at step 2) +
7   +
8       } +
9   +
10     6) done +
+ + + +

Examples: +

    +
  • ilog(0) = 0; +
  • +
  • ilog(1) = 1; +
  • +
  • ilog(2) = 2; +
  • +
  • ilog(3) = 2; +
  • +
  • ilog(4) = 3; +
  • +
  • ilog(7) = 3; +
  • +
  • ilog(negative number) = 0;
+

+

9.2.2 float32˙unpack
+

”float32˙unpack(x)” is intended to translate the packed binary representation of a Vorbis +codebook float value into the representation used by the decoder for floating point numbers. For +purposes of this example, we will unpack a Vorbis float32 into a host-native floating point +number. +

+

+1    1) [mantissa] = [x] bitwise AND 0x1fffff (unsigned result) +
2    2) [sign] = [x] bitwise AND 0x80000000 (unsigned result) +
3    3) [exponent] = ( [x] bitwise AND 0x7fe00000) shifted right 21 bits (unsigned result) +
4    4) if ( [sign] is nonzero ) then negate [mantissa] +
5    5) return [mantissa] * ( 2 ^ ( [exponent] - 788 ) ) +
+ + + +

+

9.2.3 lookup1˙values
+

”lookup1˙values(codebook˙entries,codebook˙dimensions)” is used to compute the correct length of +the value index for a codebook VQ lookup table of lookup type 1. The values on this list are +permuted to construct the VQ vector lookup table of size [codebook_entries]. +

The return value for this function is defined to be ’the greatest integer value for which +[return_value] to the power of [codebook_dimensions] is less than or equal to +[codebook_entries]’. +

+

9.2.4 low˙neighbor
+

”low˙neighbor(v,x)” finds the position n in vector [v] of the greatest value scalar element for +which n is less than [x] and vector [v] element n is less than vector [v] element +[x]. +

+

9.2.5 high˙neighbor
+

”high˙neighbor(v,x)” finds the position n in vector [v] of the lowest value scalar element for +which n is less than [x] and vector [v] element n is greater than vector [v] element +[x]. +

+

9.2.6 render˙point
+

”render˙point(x0,y0,x1,y1,X)” is used to find the Y value at point X along the line specified by +x0, x1, y0 and y1. This function uses an integer algorithm to solve for the point directly without +calculating intervening values along the line. +

+ + + +

+1    1)  [dy] = [y1] - [y0] +
2    2) [adx] = [x1] - [x0] +
3    3) [ady] = absolute value of [dy] +
4    4) [err] = [ady] * ([X] - [x0]) +
5    5) [off] = [err] / [adx] using integer division +
6    6) if ( [dy] is less than zero ) { +
7   +
8         7) [Y] = [y0] - [off] +
9   +
10       } else { +
11   +
12         8) [Y] = [y0] + [off] +
13   +
14       } +
15   +
16    9) done +
+

+

9.2.7 render˙line
+

Floor decode type one uses the integer line drawing algorithm of ”render˙line(x0, y0, x1, y1, v)” +to construct an integer floor curve for contiguous piecewise line segments. Note that it has not +been relevant elsewhere, but here we must define integer division as rounding division of both +positive and negative numbers toward zero. +

+

+1    1)   [dy] = [y1] - [y0] +
2    2)  [adx] = [x1] - [x0] +
3    3)  [ady] = absolute value of [dy] +
4    4) [base] = [dy] / [adx] using integer division +
5    5)    [x] = [x0] +
6    6)    [y] = [y0] +
7    7)  [err] = 0 +
8   +
9    8) if ( [dy] is less than 0 ) { +
10   +
11          9) [sy] = [base] - 1 +
12   +
13       } else { +
14   +
15         10) [sy] = [base] + 1 +
16   +
17       } +
18   +
19   11) [ady] = [ady] - (absolute value of [base]) * [adx] +
20   12) vector [v] element [x] = [y] +
21   +
22   13) iterate [x] over the range [x0]+1 ... [x1]-1 { +
23   +
24         14) [err] = [err] + [ady]; + + + +
25         15) if ( [err] >= [adx] ) { +
26   +
27               16) [err] = [err] - [adx] +
28               17)   [y] = [y] + [sy] +
29   +
30             } else { +
31   +
32               18) [y] = [y] + [base] +
33   +
34             } +
35   +
36         19) vector [v] element [x] = [y] +
37   +
38       } +
+ + + + + + +

10 Tables

+

+

10.1 floor1_inverse_dB_table

+

The vector [floor1_inverse_dB_table] is a 256 element static lookup table consiting of the +following values (read left to right then top to bottom): +

+

+1    1.0649863e-07, 1.1341951e-07, 1.2079015e-07, 1.2863978e-07, +
2    1.3699951e-07, 1.4590251e-07, 1.5538408e-07, 1.6548181e-07, +
3    1.7623575e-07, 1.8768855e-07, 1.9988561e-07, 2.1287530e-07, +
4    2.2670913e-07, 2.4144197e-07, 2.5713223e-07, 2.7384213e-07, +
5    2.9163793e-07, 3.1059021e-07, 3.3077411e-07, 3.5226968e-07, +
6    3.7516214e-07, 3.9954229e-07, 4.2550680e-07, 4.5315863e-07, +
7    4.8260743e-07, 5.1396998e-07, 5.4737065e-07, 5.8294187e-07, +
8    6.2082472e-07, 6.6116941e-07, 7.0413592e-07, 7.4989464e-07, +
9    7.9862701e-07, 8.5052630e-07, 9.0579828e-07, 9.6466216e-07, +
10    1.0273513e-06, 1.0941144e-06, 1.1652161e-06, 1.2409384e-06, +
11    1.3215816e-06, 1.4074654e-06, 1.4989305e-06, 1.5963394e-06, +
12    1.7000785e-06, 1.8105592e-06, 1.9282195e-06, 2.0535261e-06, +
13    2.1869758e-06, 2.3290978e-06, 2.4804557e-06, 2.6416497e-06, +
14    2.8133190e-06, 2.9961443e-06, 3.1908506e-06, 3.3982101e-06, +
15    3.6190449e-06, 3.8542308e-06, 4.1047004e-06, 4.3714470e-06, +
16    4.6555282e-06, 4.9580707e-06, 5.2802740e-06, 5.6234160e-06, +
17    5.9888572e-06, 6.3780469e-06, 6.7925283e-06, 7.2339451e-06, +
18    7.7040476e-06, 8.2047000e-06, 8.7378876e-06, 9.3057248e-06, +
19    9.9104632e-06, 1.0554501e-05, 1.1240392e-05, 1.1970856e-05, +
20    1.2748789e-05, 1.3577278e-05, 1.4459606e-05, 1.5399272e-05, +
21    1.6400004e-05, 1.7465768e-05, 1.8600792e-05, 1.9809576e-05, +
22    2.1096914e-05, 2.2467911e-05, 2.3928002e-05, 2.5482978e-05, +
23    2.7139006e-05, 2.8902651e-05, 3.0780908e-05, 3.2781225e-05, +
24    3.4911534e-05, 3.7180282e-05, 3.9596466e-05, 4.2169667e-05, +
25    4.4910090e-05, 4.7828601e-05, 5.0936773e-05, 5.4246931e-05, +
26    5.7772202e-05, 6.1526565e-05, 6.5524908e-05, 6.9783085e-05, +
27    7.4317983e-05, 7.9147585e-05, 8.4291040e-05, 8.9768747e-05, +
28    9.5602426e-05, 0.00010181521, 0.00010843174, 0.00011547824, +
29    0.00012298267, 0.00013097477, 0.00013948625, 0.00014855085, +
30    0.00015820453, 0.00016848555, 0.00017943469, 0.00019109536, +
31    0.00020351382, 0.00021673929, 0.00023082423, 0.00024582449, +
32    0.00026179955, 0.00027881276, 0.00029693158, 0.00031622787, +
33    0.00033677814, 0.00035866388, 0.00038197188, 0.00040679456, +
34    0.00043323036, 0.00046138411, 0.00049136745, 0.00052329927, +
35    0.00055730621, 0.00059352311, 0.00063209358, 0.00067317058, +
36    0.00071691700, 0.00076350630, 0.00081312324, 0.00086596457, +
37    0.00092223983, 0.00098217216, 0.0010459992,  0.0011139742, +
38    0.0011863665,  0.0012634633,  0.0013455702,  0.0014330129, +
39    0.0015261382,  0.0016253153,  0.0017309374,  0.0018434235, +
40    0.0019632195,  0.0020908006,  0.0022266726,  0.0023713743, +
41    0.0025254795,  0.0026895994,  0.0028643847,  0.0030505286, +
42    0.0032487691,  0.0034598925,  0.0036847358,  0.0039241906, + + + +
43    0.0041792066,  0.0044507950,  0.0047400328,  0.0050480668, +
44    0.0053761186,  0.0057254891,  0.0060975636,  0.0064938176, +
45    0.0069158225,  0.0073652516,  0.0078438871,  0.0083536271, +
46    0.0088964928,  0.009474637,   0.010090352,   0.010746080, +
47    0.011444421,   0.012188144,   0.012980198,   0.013823725, +
48    0.014722068,   0.015678791,   0.016697687,   0.017782797, +
49    0.018938423,   0.020169149,   0.021479854,   0.022875735, +
50    0.024362330,   0.025945531,   0.027631618,   0.029427276, +
51    0.031339626,   0.033376252,   0.035545228,   0.037855157, +
52    0.040315199,   0.042935108,   0.045725273,   0.048696758, +
53    0.051861348,   0.055231591,   0.058820850,   0.062643361, +
54    0.066714279,   0.071049749,   0.075666962,   0.080584227, +
55    0.085821044,   0.091398179,   0.097337747,   0.10366330, +
56    0.11039993,    0.11757434,    0.12521498,    0.13335215, +
57    0.14201813,    0.15124727,    0.16107617,    0.17154380, +
58    0.18269168,    0.19456402,    0.20720788,    0.22067342, +
59    0.23501402,    0.25028656,    0.26655159,    0.28387361, +
60    0.30232132,    0.32196786,    0.34289114,    0.36517414, +
61    0.38890521,    0.41417847,    0.44109412,    0.46975890, +
62    0.50028648,    0.53279791,    0.56742212,    0.60429640, +
63    0.64356699,    0.68538959,    0.72993007,    0.77736504, +
64    0.82788260,    0.88168307,    0.9389798,     1. +
+ + + + + + +

A Embedding Vorbis into an Ogg stream

+

+

A.1 Overview

+

This document describes using Ogg logical and physical transport streams to encapsulate Vorbis +compressed audio packet data into file form. +

The Section 1, “Introduction and Description” provides an overview of the construction of +Vorbis audio packets. +

The Ogg bitstream overview and Ogg logical bitstream and framing spec provide detailed +descriptions of Ogg transport streams. This specification document assumes a working +knowledge of the concepts covered in these named backround documents. Please read them +first. +

+

A.1.1 Restrictions
+

The Ogg/Vorbis I specification currently dictates that Ogg/Vorbis streams use Ogg transport +streams in degenerate, unmultiplexed form only. That is: +

    +
  • A meta-headerless Ogg file encapsulates the Vorbis I packets +
  • +
  • The Ogg stream may be chained, i.e., contain multiple, contigous logical streams + (links). +
  • +
  • The Ogg stream must be unmultiplexed (only one stream, a Vorbis audio stream, + per link) +
+ + + +

This is not to say that it is not currently possible to multiplex Vorbis with other media +types into a multi-stream Ogg file. At the time this document was written, Ogg was +becoming a popular container for low-bitrate movies consisting of DivX video and Vorbis +audio. However, a ’Vorbis I audio file’ is taken to imply Vorbis audio existing alone +within a degenerate Ogg stream. A compliant ’Vorbis audio player’ is not required to +implement Ogg support beyond the specific support of Vorbis within a degenrate Ogg +stream (naturally, application authors are encouraged to support full multiplexed Ogg +handling). +

+

A.1.2 MIME type
+

The MIME type of Ogg files depend on the context. Specifically, complex multimedia and +applications should use application/ogg, while visual media should use video/ogg, and audio +audio/ogg. Vorbis data encapsulated in Ogg may appear in any of those types. RTP +encapsulated Vorbis should use audio/vorbis + audio/vorbis-config. +

+

A.2 Encapsulation

+

Ogg encapsulation of a Vorbis packet stream is straightforward. +

    +
  • The first Vorbis packet (the identification header), which uniquely identifies a stream + as Vorbis audio, is placed alone in the first page of the logical Ogg stream. This + results in a first Ogg page of exactly 58 bytes at the very beginning of the logical + stream. +
  • +
  • This first page is marked ’beginning of stream’ in the page flags. +
  • +
  • The second and third vorbis packets (comment and setup headers) may span one or + more pages beginning on the second page of the logical stream. However many pages + they span, the third header packet finishes the page on which it ends. The next (first + audio) packet must begin on a fresh page. + + + +
  • +
  • The granule position of these first pages containing only headers is zero. +
  • +
  • The first audio packet of the logical stream begins a fresh Ogg page. +
  • +
  • Packets are placed into ogg pages in order until the end of stream. +
  • +
  • The last page is marked ’end of stream’ in the page flags. +
  • +
  • Vorbis packets may span page boundaries. +
  • +
  • The granule position of pages containing Vorbis audio is in units of PCM audio + samples (per channel; a stereo stream’s granule position does not increment at twice + the speed of a mono stream). +
  • +
  • The granule position of a page represents the end PCM sample position of the last + packet completed on that page. The ’last PCM sample’ is the last complete sample + returned by decode, not an internal sample awaiting lapping with a subsequent block. + A page that is entirely spanned by a single packet (that completes on a subsequent + page) has no granule position, and the granule position is set to ’-1’. +

    Note that the last decoded (fully lapped) PCM sample from a packet is not + necessarily the middle sample from that block. If, eg, the current Vorbis packet + encodes a ”long block” and the next Vorbis packet encodes a ”short block”, the last + decodable sample from the current packet be at position (3*long_block_length/4) - + (short_block_length/4). +

  • +
  • The granule (PCM) position of the first page need not indicate that the stream + started at position zero. Although the granule position belongs to the last completed + packet on the page and a valid granule position must be positive, by inference it may + indicate that the PCM position of the beginning of audio is positive or negative. +
      +
    • A positive starting value simply indicates that this stream begins at some + positive time offset, potentially within a larger program. This is a common case + when connecting to the middle of broadcast stream. +
    • +
    • A negative value indicates that output samples preceeding time zero should be + + + + discarded during decoding; this technique is used to allow sample-granularity + editing of the stream start time of already-encoded Vorbis streams. The number + of samples to be discarded must not exceed the overlap-add span of the first two + audio packets. +
    +

    In both of these cases in which the initial audio PCM starting offset is nonzero, the + second finished audio packet must flush the page on which it appears and the + third packet begin a fresh page. This allows the decoder to always be able to + perform PCM position adjustments before needing to return any PCM data from + synthesis, resulting in correct positioning information without any aditional seeking + logic. +

    Note: Failure to do so should, at worst, cause a decoder implementation to return + incorrect positioning information for seeking operations at the very beginning of the + stream. +

  • +
  • A granule position on the final page in a stream that indicates less audio data than the + final packet would normally return is used to end the stream on other than even frame + boundaries. The difference between the actual available data returned and the + declared amount indicates how many trailing samples to discard from the decoding + process. +
+ + + +

B Vorbis encapsulation in RTP

+

Please consult RFC 5215 “RTP Payload Format for Vorbis Encoded Audio” for description of +how to embed Vorbis audio in an RTP stream. + + + + + + +

Colophon

+

PIC +

Ogg is a Xiph.org Foundation effort to protect essential tenets of Internet multimedia from +corporate hostage-taking; Open Source is the net’s greatest tool to keep everyone honest. See +About the Xiph.org Foundation for details. +

Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and distribute the Ogg and +Vorbis specification, whether in a private, public or corporate capacity. However, the Xiph.org +Foundation and the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis specification +and certify specification compliance. +

Xiph.org’s Vorbis software CODEC implementation is distributed under a BSD-like license. This +does not restrict third parties from distributing independent implementations of Vorbis software +under other licenses. +

Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) of the Xiph.org +Foundation. These pages are copyright (C) 1994-2007 Xiph.org Foundation. All rights +reserved. +

This document is set using LATEX. + + + +

References

+

+

+

+ [1]   T. Sporer, K. Brandenburg and + B. Edler, The use of multirate filter banks for coding of high quality digital audio, + http://www.iocon.com/resource/docs/ps/eusipco_corrected.ps. +

+
+ + + + + + diff --git a/Dependencies/libvorbis/doc/Vorbis_I_spec.pdf b/Dependencies/libvorbis/doc/Vorbis_I_spec.pdf new file mode 100644 index 0000000..105aaba --- /dev/null +++ b/Dependencies/libvorbis/doc/Vorbis_I_spec.pdf @@ -0,0 +1,8663 @@ +%PDF-1.4 +%ÐÔÅØ +5 0 obj +<< /S /GoTo /D (section.1) >> +endobj +8 0 obj +(Introduction and Description) +endobj +9 0 obj +<< /S /GoTo /D (subsection.1.1) >> +endobj +12 0 obj +(Overview) +endobj +13 0 obj +<< /S /GoTo /D (subsubsection.1.1.1) >> +endobj +16 0 obj +(Application) +endobj +17 0 obj +<< /S /GoTo /D (subsubsection.1.1.2) >> +endobj +20 0 obj +(Classification) +endobj +21 0 obj +<< /S /GoTo /D (subsubsection.1.1.3) >> +endobj +24 0 obj +(Assumptions) +endobj +25 0 obj +<< /S /GoTo /D (subsubsection.1.1.4) >> +endobj +28 0 obj +(Codec Setup and Probability Model) +endobj +29 0 obj +<< /S /GoTo /D (subsubsection.1.1.5) >> +endobj +32 0 obj +(Format Specification) +endobj +33 0 obj +<< /S /GoTo /D (subsubsection.1.1.6) >> +endobj +36 0 obj +(Hardware Profile) +endobj +37 0 obj +<< /S /GoTo /D (subsection.1.2) >> +endobj +40 0 obj +(Decoder Configuration) +endobj +41 0 obj +<< /S /GoTo /D (subsubsection.1.2.1) >> +endobj +44 0 obj +(Global Config) +endobj +45 0 obj +<< /S /GoTo /D (subsubsection.1.2.2) >> +endobj +48 0 obj +(Mode) +endobj +49 0 obj +<< /S /GoTo /D (subsubsection.1.2.3) >> +endobj +52 0 obj +(Mapping) +endobj +53 0 obj +<< /S /GoTo /D (subsubsection.1.2.4) >> +endobj +56 0 obj +(Floor) +endobj +57 0 obj +<< /S /GoTo /D (subsubsection.1.2.5) >> +endobj +60 0 obj +(Residue) +endobj +61 0 obj +<< /S /GoTo /D (subsubsection.1.2.6) >> +endobj +64 0 obj +(Codebooks) +endobj +65 0 obj +<< /S /GoTo /D (subsection.1.3) >> +endobj +68 0 obj +(High-level Decode Process) +endobj +69 0 obj +<< /S /GoTo /D (subsubsection.1.3.1) >> +endobj +72 0 obj +(Decode Setup) +endobj +73 0 obj +<< /S /GoTo /D (subsubsection.1.3.2) >> +endobj +76 0 obj +(Decode Procedure) +endobj +77 0 obj +<< /S /GoTo /D (section.2) >> +endobj +80 0 obj +(Bitpacking Convention) +endobj +81 0 obj +<< /S /GoTo /D (subsection.2.1) >> +endobj +84 0 obj +(Overview) +endobj +85 0 obj +<< /S /GoTo /D (subsubsection.2.1.1) >> +endobj +88 0 obj +(octets, bytes and words) +endobj +89 0 obj +<< /S /GoTo /D (subsubsection.2.1.2) >> +endobj +92 0 obj +(bit order) +endobj +93 0 obj +<< /S /GoTo /D (subsubsection.2.1.3) >> +endobj +96 0 obj +(byte order) +endobj +97 0 obj +<< /S /GoTo /D (subsubsection.2.1.4) >> +endobj +100 0 obj +(coding bits into byte sequences) +endobj +101 0 obj +<< /S /GoTo /D (subsubsection.2.1.5) >> +endobj +104 0 obj +(signedness) +endobj +105 0 obj +<< /S /GoTo /D (subsubsection.2.1.6) >> +endobj +108 0 obj +(coding example) +endobj +109 0 obj +<< /S /GoTo /D (subsubsection.2.1.7) >> +endobj +112 0 obj +(decoding example) +endobj +113 0 obj +<< /S /GoTo /D (subsubsection.2.1.8) >> +endobj +116 0 obj +(end-of-packet alignment) +endobj +117 0 obj +<< /S /GoTo /D (subsubsection.2.1.9) >> +endobj +120 0 obj +(reading zero bits) +endobj +121 0 obj +<< /S /GoTo /D (section.3) >> +endobj +124 0 obj +(Probability Model and Codebooks) +endobj +125 0 obj +<< /S /GoTo /D (subsection.3.1) >> +endobj +128 0 obj +(Overview) +endobj +129 0 obj +<< /S /GoTo /D (subsubsection.3.1.1) >> +endobj +132 0 obj +(Bitwise operation) +endobj +133 0 obj +<< /S /GoTo /D (subsection.3.2) >> +endobj +136 0 obj +(Packed codebook format) +endobj +137 0 obj +<< /S /GoTo /D (subsubsection.3.2.1) >> +endobj +140 0 obj +(codebook decode) +endobj +141 0 obj +<< /S /GoTo /D (subsection.3.3) >> +endobj +144 0 obj +(Use of the codebook abstraction) +endobj +145 0 obj +<< /S /GoTo /D (section.4) >> +endobj +148 0 obj +(Codec Setup and Packet Decode) +endobj +149 0 obj +<< /S /GoTo /D (subsection.4.1) >> +endobj +152 0 obj +(Overview) +endobj +153 0 obj +<< /S /GoTo /D (subsection.4.2) >> +endobj +156 0 obj +(Header decode and decode setup) +endobj +157 0 obj +<< /S /GoTo /D (subsubsection.4.2.1) >> +endobj +160 0 obj +(Common header decode) +endobj +161 0 obj +<< /S /GoTo /D (subsubsection.4.2.2) >> +endobj +164 0 obj +(Identification header) +endobj +165 0 obj +<< /S /GoTo /D (subsubsection.4.2.3) >> +endobj +168 0 obj +(Comment header) +endobj +169 0 obj +<< /S /GoTo /D (subsubsection.4.2.4) >> +endobj +172 0 obj +(Setup header) +endobj +173 0 obj +<< /S /GoTo /D (subsection.4.3) >> +endobj +176 0 obj +(Audio packet decode and synthesis) +endobj +177 0 obj +<< /S /GoTo /D (subsubsection.4.3.1) >> +endobj +180 0 obj +(packet type, mode and window decode) +endobj +181 0 obj +<< /S /GoTo /D (subsubsection.4.3.2) >> +endobj +184 0 obj +(floor curve decode) +endobj +185 0 obj +<< /S /GoTo /D (subsubsection.4.3.3) >> +endobj +188 0 obj +(nonzero vector propagate) +endobj +189 0 obj +<< /S /GoTo /D (subsubsection.4.3.4) >> +endobj +192 0 obj +(residue decode) +endobj +193 0 obj +<< /S /GoTo /D (subsubsection.4.3.5) >> +endobj +196 0 obj +(inverse coupling) +endobj +197 0 obj +<< /S /GoTo /D (subsubsection.4.3.6) >> +endobj +200 0 obj +(dot product) +endobj +201 0 obj +<< /S /GoTo /D (subsubsection.4.3.7) >> +endobj +204 0 obj +(inverse MDCT) +endobj +205 0 obj +<< /S /GoTo /D (subsubsection.4.3.8) >> +endobj +208 0 obj +(overlap\137add) +endobj +209 0 obj +<< /S /GoTo /D (subsubsection.4.3.9) >> +endobj +212 0 obj +(output channel order) +endobj +213 0 obj +<< /S /GoTo /D (section.5) >> +endobj +216 0 obj +(comment field and header specification) +endobj +217 0 obj +<< /S /GoTo /D (subsection.5.1) >> +endobj +220 0 obj +(Overview) +endobj +221 0 obj +<< /S /GoTo /D (subsection.5.2) >> +endobj +224 0 obj +(Comment encoding) +endobj +225 0 obj +<< /S /GoTo /D (subsubsection.5.2.1) >> +endobj +228 0 obj +(Structure) +endobj +229 0 obj +<< /S /GoTo /D (subsubsection.5.2.2) >> +endobj +232 0 obj +(Content vector format) +endobj +233 0 obj +<< /S /GoTo /D (subsubsection.5.2.3) >> +endobj +236 0 obj +(Encoding) +endobj +237 0 obj +<< /S /GoTo /D (section.6) >> +endobj +240 0 obj +(Floor type 0 setup and decode) +endobj +241 0 obj +<< /S /GoTo /D (subsection.6.1) >> +endobj +244 0 obj +(Overview) +endobj +245 0 obj +<< /S /GoTo /D (subsection.6.2) >> +endobj +248 0 obj +(Floor 0 format) +endobj +249 0 obj +<< /S /GoTo /D (subsubsection.6.2.1) >> +endobj +252 0 obj +(header decode) +endobj +253 0 obj +<< /S /GoTo /D (subsubsection.6.2.2) >> +endobj +256 0 obj +(packet decode) +endobj +257 0 obj +<< /S /GoTo /D (subsubsection.6.2.3) >> +endobj +260 0 obj +(curve computation) +endobj +261 0 obj +<< /S /GoTo /D (section.7) >> +endobj +264 0 obj +(Floor type 1 setup and decode) +endobj +265 0 obj +<< /S /GoTo /D (subsection.7.1) >> +endobj +268 0 obj +(Overview) +endobj +269 0 obj +<< /S /GoTo /D (subsection.7.2) >> +endobj +272 0 obj +(Floor 1 format) +endobj +273 0 obj +<< /S /GoTo /D (subsubsection.7.2.1) >> +endobj +276 0 obj +(model) +endobj +277 0 obj +<< /S /GoTo /D (subsubsection.7.2.2) >> +endobj +280 0 obj +(header decode) +endobj +281 0 obj +<< /S /GoTo /D (section.8) >> +endobj +284 0 obj +(Residue setup and decode) +endobj +285 0 obj +<< /S /GoTo /D (subsection.8.1) >> +endobj +288 0 obj +(Overview) +endobj +289 0 obj +<< /S /GoTo /D (subsection.8.2) >> +endobj +292 0 obj +(Residue format) +endobj +293 0 obj +<< /S /GoTo /D (subsection.8.3) >> +endobj +296 0 obj +(residue 0) +endobj +297 0 obj +<< /S /GoTo /D (subsection.8.4) >> +endobj +300 0 obj +(residue 1) +endobj +301 0 obj +<< /S /GoTo /D (subsection.8.5) >> +endobj +304 0 obj +(residue 2) +endobj +305 0 obj +<< /S /GoTo /D (subsection.8.6) >> +endobj +308 0 obj +(Residue decode) +endobj +309 0 obj +<< /S /GoTo /D (subsubsection.8.6.1) >> +endobj +312 0 obj +(header decode) +endobj +313 0 obj +<< /S /GoTo /D (subsubsection.8.6.2) >> +endobj +316 0 obj +(packet decode) +endobj +317 0 obj +<< /S /GoTo /D (subsubsection.8.6.3) >> +endobj +320 0 obj +(format 0 specifics) +endobj +321 0 obj +<< /S /GoTo /D (subsubsection.8.6.4) >> +endobj +324 0 obj +(format 1 specifics) +endobj +325 0 obj +<< /S /GoTo /D (subsubsection.8.6.5) >> +endobj +328 0 obj +(format 2 specifics) +endobj +329 0 obj +<< /S /GoTo /D (section.9) >> +endobj +332 0 obj +(Helper equations) +endobj +333 0 obj +<< /S /GoTo /D (subsection.9.1) >> +endobj +336 0 obj +(Overview) +endobj +337 0 obj +<< /S /GoTo /D (subsection.9.2) >> +endobj +340 0 obj +(Functions) +endobj +341 0 obj +<< /S /GoTo /D (subsubsection.9.2.1) >> +endobj +344 0 obj +(ilog) +endobj +345 0 obj +<< /S /GoTo /D (subsubsection.9.2.2) >> +endobj +348 0 obj +(float32\137unpack) +endobj +349 0 obj +<< /S /GoTo /D (subsubsection.9.2.3) >> +endobj +352 0 obj +(lookup1\137values) +endobj +353 0 obj +<< /S /GoTo /D (subsubsection.9.2.4) >> +endobj +356 0 obj +(low\137neighbor) +endobj +357 0 obj +<< /S /GoTo /D (subsubsection.9.2.5) >> +endobj +360 0 obj +(high\137neighbor) +endobj +361 0 obj +<< /S /GoTo /D (subsubsection.9.2.6) >> +endobj +364 0 obj +(render\137point) +endobj +365 0 obj +<< /S /GoTo /D (subsubsection.9.2.7) >> +endobj +368 0 obj +(render\137line) +endobj +369 0 obj +<< /S /GoTo /D (section.10) >> +endobj +372 0 obj +(Tables) +endobj +373 0 obj +<< /S /GoTo /D (subsection.10.1) >> +endobj +376 0 obj +(floor1\137inverse\137dB\137table) +endobj +377 0 obj +<< /S /GoTo /D (appendix.A) >> +endobj +380 0 obj +(Embedding Vorbis into an Ogg stream) +endobj +381 0 obj +<< /S /GoTo /D (subsection.A.1) >> +endobj +384 0 obj +(Overview) +endobj +385 0 obj +<< /S /GoTo /D (subsubsection.A.1.1) >> +endobj +388 0 obj +(Restrictions) +endobj +389 0 obj +<< /S /GoTo /D (subsubsection.A.1.2) >> +endobj +392 0 obj +(MIME type) +endobj +393 0 obj +<< /S /GoTo /D (subsection.A.2) >> +endobj +396 0 obj +(Encapsulation) +endobj +397 0 obj +<< /S /GoTo /D (appendix.B) >> +endobj +400 0 obj +(Vorbis encapsulation in RTP) +endobj +401 0 obj +<< /S /GoTo /D [402 0 R /Fit ] >> +endobj +431 0 obj << +/Length 1012 +/Filter /FlateDecode +>> +stream +xÚíš]oœ8†ïó+¸4Raý}¹m7mWŠ¶êŽV+u÷‚wŠJ€5nÿ} 23&J‚š6Cs3›‡óñú(ÐÛyÐ{uoŸoÎ~9GÂÃ4ŒD„¼Í äqNC ¥·I½÷à/Ÿ Pú½Íj? <oºƒº2#*Éþˆ&q“•…ÿïæ÷i c_z( +1b´³OyH™˜!²Æÿڏa©wÆÄà܏(Û",yˆ„œ3†‚“úÇÔV·±þb'’gvÄÁ㠈ý (B!‘Æ Ã!cØ|Q*šú`ê8"ózzçًw£QÊÞÀs3À<ĂYkÈ$’àMÑè²ÛHÛ¤Ÿ]\¤ö⥪UM漇ؼ÷&H@nÏî„íïļ)cÒ¼% )åÃvB³!!\ù8J_eê³³ƒ ô¦Jyýë2!q+Ï|w‰©¼GŽ0¿VUžÍ†Y 2öØË>ఈ#tâá‹<®ë›ŒY@0üÈüH€ì }Ð$mêöÒ$šª#X;ÁÏÙɆí÷pE:º¢ÉçX€T%&…cþTM[ÙK›ÖMz}«»|¾·Yž5]¾ýb¸è>B7?2óóã­*—ñ˜Ø€éÜæUõeÜ ˜ªþµo– ]6dl‘Ê€ã¸×±N?w>kµïM¶\9‰ñSÓEƒù¢‹•óR%c˜iëFÞuw­žw=,O¡®>”?Þ@s’0¯r“ÍrëŽ#É㕘 ë҄s$£{×`<‰˜‹±r¸¥—¯YTßÙM£{§M< œ‹¸ª²ÂqJŠéJâú{À5Îyn]µÔŽFáèÉU ]±€î(Þ©:K[·”óèôô¸ê˜üXŽoûzo«~ùÉ=ÞH¼fº‹°Š¨©b‘AD½Îvƒ\نQneԞ°²7Þjû£QU]»ºŠ¯ª$—))2)© ˜ÚóãÑZœ õçPyï°'“–r0Z?Œ@¢ÒV» +K°õ¼{³: « }@cۖõó¬©âäS§¥úþ¾‘ûWª˜;3aF è[ô§ñSzQJ"ßþfsÞkP¼QMýÌFÓ¶oZ5ª>hlqÐ7&J:yžœ´!ÝãÑÑïõ§·YcdžrD3eð'Tv÷ƒºç–ã‘ntÂk²Fc8pYôDõ.TdzÝX7m‚ïb=k†0ϊŽxSæû«VÿµªH”ù“Çz îY±¬Æ“Zí +•3º–1²æªóÍHò›¼Ný_Vn?›3¶æÀe³‚mz B‰¼€Ó0¢rüW‚¹9¿mξ°F°ð +endstream +endobj +402 0 obj << +/Type /Page +/Contents 431 0 R +/Resources 430 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +/Annots [ 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R ] +>> endobj +403 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 495.204 248.208 507.823] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +404 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 483.083 165.278 493.245] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.1) >> +>> endobj +405 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 466.312 214.439 478.932] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.1) >> +>> endobj +406 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 454.191 222.703 464.486] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.2) >> +>> endobj +407 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 437.421 220.487 449.907] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.3) >> +>> endobj +408 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 422.975 339.464 435.594] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.4) >> +>> endobj +409 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 408.529 260.778 421.148] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.5) >> +>> endobj +410 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 396.408 241.589 406.703] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.1.6) >> +>> endobj +411 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 379.637 233.399 392.257] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.2) >> +>> endobj +412 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 365.192 225.905 377.811] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.1) >> +>> endobj +413 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 353.07 183.549 363.365] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.2) >> +>> endobj +414 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 336.3 200.132 348.786] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.3) >> +>> endobj +415 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 324.179 182.413 334.473] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.4) >> +>> endobj +416 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 309.733 194.834 320.028] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.5) >> +>> endobj +417 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 295.287 210.932 305.582] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.2.6) >> +>> endobj +418 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 278.517 251.894 291.136] +/Subtype /Link +/A << /S /GoTo /D (subsection.1.3) >> +>> endobj +419 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 264.071 225.335 276.69] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.3.1) >> +>> endobj +420 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 251.95 247.931 262.244] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.1.3.2) >> +>> endobj +421 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 223.473 214.757 236.092] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +422 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 211.352 165.278 221.514] +/Subtype /Link +/A << /S /GoTo /D (subsection.2.1) >> +>> endobj +423 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 194.582 275.445 207.201] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.1) >> +>> endobj +424 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 182.46 199.811 192.755] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.2) >> +>> endobj +425 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 165.69 207.615 178.309] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.3) >> +>> endobj +426 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 151.244 314.139 163.863] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.4) >> +>> endobj +427 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 136.798 207.81 149.418] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.5) >> +>> endobj +428 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 122.352 234.279 134.972] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.6) >> +>> endobj +432 0 obj << +/D [402 0 R /XYZ 72 751.833 null] +>> endobj +433 0 obj << +/D [402 0 R /XYZ 72 730.164 null] +>> endobj +436 0 obj << +/D [402 0 R /XYZ 72 512.971 null] +>> endobj +430 0 obj << +/Font << /F18 434 0 R /F19 435 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +479 0 obj << +/Length 1337 +/Filter /FlateDecode +>> +stream +xÚíšKs›VÇ÷ú,¯f +½ïDzqœ´™É4­Õ•›l3–@EÈnúé{_` °ä0Îؒ½~÷œó?`pÀàãú-Ò¯0¨®·óçÇÉ»ÙäçˆEŠ1Ì.õ.¨$@2ÂP³488B‘˜†aÒ,)§!– ͋«iH0Ù¿ñb9Ϧ_gŸÚ›ç!¥DӐAØßP¥<÷‚6„ˆDñ­Ã}ªú5D4¢”ßӓž^V¤ay.ãdŠ¸1/Yí(ÆóüªXd…9Vwï,•8X^b/åyUYÜؙÿeUéX]äõª{3EðËF´ßæûøpßõ'ËMOÖþg=9Äu4­€ +çO®{½q¡í²¬q/þs&PÌyሠܚj“Œ ²ô¹ŠAÝTˆŸ/ο@›%Þfÿr.ÏAy錵¾övX­¶ò‹U]ÅÉPt Lé!š˜ŒÕÞFÓ6µ—:ímÕ4qêz–Õëå–âr9ôqrcÔÙæ‡úä{kÌö“}áå\̞@xé›ðŽÞ½ Ðfº¬ÝHů:Ïͪ~ÔrÎeÍ¢†ƒ•µîâr¨z°ŸàPô¢zpR.:Yn×@=žÚêñ· +{T¿é-H§:¸š3ÿ"š¸ Ï2óü:7Š‡VŽ‚G6쬩ÕwÁ¢âÐãÞ :>õèÁ»÷Ðn%øqIÇ8„áp¬k2µ_ÖiîÛ!Cí¤žVx`õÍÙ­NìX™ ÷Jy)%c +^M²U!€¶þæ ߟºÅ R®+å"-mɼ_¨àä¹[Jûyõ¼—´ª¡E‚¹ÿVziM֕K÷*-–ì‹.‚Gðl„¤(‹¦¯)À­édIíÐ +°¬Êe|×=’ô64GÑ¢m?x•§kŸ?¥½ ¸GFdždnEÀ×x«¶Æ_/ç¦ßÞ«áÕÇméàÍ<¬¬[_uƸNúí;ŽŽ²&¤IGX¥Øe•ŸßŸÌz9¢:j†lÃfÆXn œÇ®=p:›üã¿H¡ˆH*#¬x,&ç_aê“Ÿ%ƒ;{é"Ðña½7Î& ΋”ý&¨„û-qšöË zx-žQk‡±v¡E¢¿‚ÍÔ³\×˵+v|p…˙–k5P2qHÄòùSŽ;™k¹&¶X¯]oÕt9²yڙq¶½"}ÅjiçœY²ÙéþX!õ§ˆx‚–+{k¹Žn¹ñÒÍږkÓÁ‘À{ZV4éä@Ä~= +.ÆtaÙFö¬®t´®zy¹:n+GöAâ¶Íèz5[­F%š*ñ¡‘±$äÀ}!r¹¦®>-6ŸSëš!'¯Î ÕS ++wÂúaî2óJ¯žµÙ7}3½Éœ¸B·Y5“N~¯»®†×j;PÃ#  è $–¿Iìh‰Ý»]‰å­ÄZó°)« TÐ íp¼Â\¾þ~Ùå²{?ðÜÙ£Œ,¸G‹ÇãÍv$Þ1Ø”‘W0°´Q㭁yn1E@׸ƒµ•$ê¸ÈáAém/CGP¡ ,RÜGÑáϜÎ&ÿY+{ +endstream +endobj +478 0 obj << +/Type /Page +/Contents 479 0 R +/Resources 477 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +/Annots [ 429 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R ] +>> endobj +429 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 714.888 245.985 727.507] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.7) >> +>> endobj +439 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 700.442 277.526 713.061] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.8) >> +>> endobj +440 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 685.996 240.197 698.615] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.2.1.9) >> +>> endobj +441 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 659.844 276.768 672.464] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +442 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 647.723 165.278 657.885] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.1) >> +>> endobj +443 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 630.953 244.584 643.439] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.3.1.1) >> +>> endobj +444 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 618.831 243.479 629.126] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.2) >> +>> endobj +445 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 604.386 241.757 614.68] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.3.2.1) >> +>> endobj +446 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 589.94 282.789 600.235] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.3) >> +>> endobj +447 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 561.463 271.743 574.083] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +448 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 549.342 165.278 559.504] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.1) >> +>> endobj +449 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 532.572 285 545.191] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.2) >> +>> endobj +450 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 520.451 277.526 530.745] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.2.1) >> +>> endobj +451 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 506.005 260.288 516.299] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.2.2) >> +>> endobj +452 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 491.559 242.408 501.854] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.2.3) >> +>> endobj +453 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 474.788 221.922 487.408] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.2.4) >> +>> endobj +454 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 460.343 296.186 472.962] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.3) >> +>> endobj +455 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 445.897 352.964 458.516] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.1) >> +>> endobj +456 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 433.776 247.936 444.07] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.2) >> +>> endobj +457 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 417.005 284.354 429.027] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.3) >> +>> endobj +458 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 404.884 229.466 415.179] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.4) >> +>> endobj +459 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 388.113 236.62 400.733] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.5) >> +>> endobj +460 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 373.668 215.744 386.287] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.6) >> +>> endobj +461 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 361.546 230.273 371.708] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.7) >> +>> endobj +462 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 344.776 214.756 357.395] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.8) >> +>> endobj +463 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 330.33 262.568 342.949] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.4.3.9) >> +>> endobj +464 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 304.178 305.245 316.798] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +465 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 292.057 165.278 302.219] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.1) >> +>> endobj +466 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 275.287 216.33 287.906] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.2) >> +>> endobj +467 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 263.165 203.063 273.327] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.5.2.1) >> +>> endobj +468 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 248.72 269.071 259.014] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.5.2.2) >> +>> endobj +469 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 231.949 202.898 244.568] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.5.2.3) >> +>> endobj +470 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 205.797 258.154 218.417] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +471 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 193.676 165.278 203.838] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.1) >> +>> endobj +472 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 179.23 192.753 189.525] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2) >> +>> endobj +473 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 164.784 227.45 175.079] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.6.2.1) >> +>> endobj +474 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 148.014 226.475 160.633] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.6.2.2) >> +>> endobj +475 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 133.568 250.537 145.82] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.6.2.3) >> +>> endobj +480 0 obj << +/D [478 0 R /XYZ 72 751.833 null] +>> endobj +477 0 obj << +/Font << /F15 437 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +517 0 obj << +/Length 1301 +/Filter /FlateDecode +>> +stream +xÚíZKsÚH¾ó+æ(˜ž÷ã*'»©Je×Kåâä€AÁª€ ìʿߖF`ÃLÙ͸ 1=íïë÷ˆ‘aä]‡m]?)GÄßܼë\õ:¿½K¨SŠ“ÞWb81`)gŽô†ä61iׁKގ§iW°dšâG‰·Z'‹êþǬ^Ϫ%“€¿Ì³ÅræêC¿6Ì•À›ôKïýZ+rÛå`™J¤ÚXµEUÕsUÁP¥邤RêF]Š*c||H¹I²ò!σ KhÚUìœ.Ò¹§o[€€°|7ø¹6oÀ®ÍážV¦Áumøõ봜ôúÚ^€~h®©ã2@»6nà,™Tp[t¥ñöVšó±é\heŵW¸ÞgýaVzãõ«¾ÙÞH*ùËäž@¢•šåãòF +éJD× +‚ŽNAGÙúÈ¡-¯ë>ŒýjÚ_/ãº×ùÞ# p"P-$L:·_âßF…³ä±~tBUø #còwç¯æ4l3~9N5ò\ɒ(«ÖcY¬«Îíÿ‹1w…ånÆ°)¤ !ämU^ŽýÁÅôÛrꜤN+"Œ¡`í+©³Tƒ²ÐUQV­ÊCŠU¼L!ɂ èÌ©Œ£ä‰äYDÏÉ͹@Ež|"­þ1›j%Bsj$oFájQJ +¯D‘å£ûjï»Õ)cP-ȳ™>ìA¤²Ô1z᪬¾¯àŒ°¨©Qè}ÒRîôëX´ŒrmjY̙=iÔ`/ü!ZPc#Յnø+³¢ERÆM DA­zeødTQ‹Ò«¶Á·^Ó¼¨H Žn0fœä´µ%‰FRp!‡f_ÁQÉäqHDYœ5}œÁ\Lؓ®ø£­Ö²mO `k`}SÍ=°PÍË´Kz©ãIÿn¼]a P+~©ׇ¾ïԕ¼ +̛ùXÕs(_75V[IT•+¥Ø̿ή¤ÃÒÚÔ²4kj+|KØ–ó,fÜ +ÂG k©anS‰áU¸)g­_eSÎ 5 77]Td¹Ìðñ¥¨÷¨Ö®#Tà†ë¼I»F¨äzrW¿"˜ ‡y1ò#©O).ø×ïò¹q$/ÓÕ{#~åã¨y|¾(³þ$ÐÙr¦mŽ0¾zSù›QzÇô +.‡’aÒlun†€W[£«£ÉE™ÇGXZŸQ pè‘Y…!÷~øãõ¨/RìÄ4ãôàtWÀIN£Ál'œÝ¸ar ®‹A6_ŽëÑypäÈÎümWm[§Š&ü>?¹¸ò™âSê_F‡uV@Þ ¡^ʛôpÓû3Ñ{ÝÄ°¨r«kþQe*;À:@¹&ÿ‹¨ ¬Aþ(=X† +endstream +endobj +516 0 obj << +/Type /Page +/Contents 517 0 R +/Resources 515 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +/Annots [ 476 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R ] +>> endobj +476 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 714.888 258.154 727.507] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +481 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 702.767 165.278 712.928] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.1) >> +>> endobj +482 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 688.321 192.753 698.615] +/Subtype /Link +/A << /S /GoTo /D (subsection.7.2) >> +>> endobj +483 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 673.875 185.829 684.17] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.7.2.1) >> +>> endobj +484 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 659.429 227.45 669.724] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.7.2.2) >> +>> endobj +485 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 630.953 233.357 643.572] +/Subtype /Link +/A << /S /GoTo /D (section.8) >> +>> endobj +486 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 618.831 165.278 628.993] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.1) >> +>> endobj +487 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 604.386 195.419 614.68] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.2) >> +>> endobj +488 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 589.94 163.067 600.235] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.3) >> +>> endobj +489 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 575.494 163.067 585.789] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.4) >> +>> endobj +490 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 561.048 163.067 571.343] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.5) >> +>> endobj +491 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 546.602 196.07 556.897] +/Subtype /Link +/A << /S /GoTo /D (subsection.8.6) >> +>> endobj +492 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 532.156 227.45 542.451] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.8.6.1) >> +>> endobj +493 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 515.386 226.475 528.005] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.8.6.2) >> +>> endobj +494 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 500.94 244.164 513.56] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.8.6.3) >> +>> endobj +495 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 486.494 244.164 499.114] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.8.6.4) >> +>> endobj +496 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 472.049 244.164 484.668] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.8.6.5) >> +>> endobj +497 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 445.897 183.251 458.516] +/Subtype /Link +/A << /S /GoTo /D (section.9) >> +>> endobj +498 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 433.776 165.278 443.937] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.1) >> +>> endobj +499 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 419.33 167.13 429.492] +/Subtype /Link +/A << /S /GoTo /D (subsection.9.2) >> +>> endobj +500 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 402.559 173.147 415.179] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +501 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 388.113 230.038 400.733] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.2) >> +>> endobj +502 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 373.668 230.429 386.287] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.3) >> +>> endobj +503 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 359.222 220.609 371.841] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.4) >> +>> endobj +504 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 344.776 225.486 357.395] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.5) >> +>> endobj +505 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 330.33 218.332 342.949] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.6) >> +>> endobj +506 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 318.209 209.878 328.504] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.7) >> +>> endobj +507 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 292.057 125.418 302.352] +/Subtype /Link +/A << /S /GoTo /D (section.10) >> +>> endobj +508 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 277.611 234.075 287.906] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.1) >> +>> endobj +509 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 249.135 301.186 261.754] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +510 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 237.014 165.278 247.176] +/Subtype /Link +/A << /S /GoTo /D (subsection.A.1) >> +>> endobj +511 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 222.568 215.71 232.73] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.A.1.1) >> +>> endobj +512 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.486 205.797 214.917 218.284] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.A.1.2) >> +>> endobj +513 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.563 191.352 189.891 203.971] +/Subtype /Link +/A << /S /GoTo /D (subsection.A.2) >> +>> endobj +514 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 165.2 246.807 177.819] +/Subtype /Link +/A << /S /GoTo /D (appendix.B) >> +>> endobj +518 0 obj << +/D [516 0 R /XYZ 72 751.833 null] +>> endobj +515 0 obj << +/Font << /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +523 0 obj << +/Length 2088 +/Filter /FlateDecode +>> +stream +xڝXKÛ8¾çW{‰ˆ½-cN™îL¦d°iìef´DÛDëá!©tœ_¿õ¢Zî(‹Í\LV±T,¿zÐñ긊W^Å/Ɵ^½ý%©VÉv“&E¾z8¬¶éj›T›4Þ­šÕQr³.Š8ºï½nÖY5cíÍM =å6R}Ó;íjkÎÞÀÊþùÍf¼S¾Éò2ŝâ|¶Ùí +Ùh#[}ü¬íg£Ÿ®”ÀÇÅ*I6»¢§»M&F>œŒ»Yçy5`dºê±Óý L<²“è ÆõÙ4Z's<±H«?£ˆnEÑì4ÄàÌžú“æÉ¿o*X°û°{Í»7º~=qzç-ºlè77ëm•Dïð`xðEž—|‚½ñë=îYõ”‘;“6]›?ã$¯ےnÁçgYRÖ±ìžé£é{ÓYÊð=$°W¼²ÇOþõáÕêú擮ŸUæWî‹Þ¿*£?“,ÿ®šèv:0kù¤ýxf‹8ù¥jü}$Ëñîô䮗{ÿcså£"Ü2¸=Ëã¨U^[˜f»Èñ/(çàâeÎxÁëÙÝâÒWÙ7Ú:F’»;x¤ÛÅOáv“p»H73ƒIQEhÓνAV= ô´tɤ(-çhl˜sÒVo^¾zø¬ÀWS´„xyw>·FÐñÿ‡Ìt‹$â‘ãÈ£îÁÅI¤ZfŸÑg¯¶Š§YH@hk}ö#KÂccžÞ~¼{+ê!«È랎Œ/BªmÉOLvê‹é;fè~½äËé*Û*‚)ô³7-„Æž/e[póѱä´!ß#<.âÛ;‘³<Þ¡¾wˆÿf As  š'y„õÂËÔɈi5É$—éN3«Õê8 +W9æýöûûëTxx*fÞn˜õÉt¦UXð7Xæeųòdó'ºŸ—jՇ¥ÿ 4v’Of>g.úGNz0¹r 2؁8cŠ¼çQÒ÷ ÈË«ÇýÙñüÉøÓ0Š°Õà+ˆyÊó@lcÊxH%ŒË…¡)à·bW^§¸*ŽÂ¨Z7‡Ë¨.r ’øÅFü]/Bè¦Àæp7`42 ¦¯SˆÀƒ:¯ýÊ3¯[}> ”:.–N”ìRú(Ï p›£ñ”Œ€èz; ŒŒó Œ7˜í˜Â0Á‘S¸ê{-z¬>ƒ×¥¥PRqpMïÔ¡F«ZÄ]±“Ä8´´ÞÔo–¢}Š#Ìÿ¨Æª M¬b“Ð jg‡€;šV·¨ …ÕGÂðÓ¢`Fc Ñ´@ÍDÎøáZ“r­¹m¡ÄÎۑ¿WpÒ4‰îq`Äá¨xp=Q¿`›µjԙr.à‹¿é° ëˆ=,³Äò¥ÞÁ‡s ê R{帨›ZT +ûXö'¬â8ëΙؤZ¬™ÇåNœB¤ +ÏEò"Vÿ5ò ´HÝÀ³Š#l°\qqIÃâ…•|{u…@ŸÂB?ðG GÍ<Àþ^ÍzUÙP|Ôþĝˆ3Dk?,b~rÇSÃ#…ò"Š0m®t§ÜrϜÃ#ˆ 0ï(|ê·óÏÔ*K™žkÁVÏ[­„O˜ÂÉyþæûÖ#=ówÚ.÷œ“ex@ Lñæŋ¦(¯Œ)ð]¥zÇPô`ӓæÑ}ϋd`53x˜h°Ä–Ô™:ÙåÊÃՕ‡aUÒK µøÙÞ¡oe¦–ŽwИêáø¦øáíÐOØÁIۚÒ;ÂO 5• +6¿2cL‚ü…8 1ô­^ÏBªáeiæfњï)ìIøe¥Ìh†ÎôjnÆA}Åy=ÁîC_½ÏÒ琡¦ÅÔ¦'~šlÊr¡IÈâŠ_ÊUøß&‹·MX€qF(ñõ&Kœƒz&VÙG¼Ë®ÿÒ³Ã,ôP_åŸúÆòùðwÒê¨LO¡ã ×/'Nj0[¬?CKïÃ4eÿÂÐiÈCì dìÂ?I8U5=©eŽéÏÔçã÷ø’Æd–c‚8ÿ¤ü`eáB%,HqdðÕ®¸J¤áy’r€êLÅv)øúqE~ ¾†®X®#âá±ÇÐQž«/,¿¾ +/ï^S´“qâê%FbÊ +Áýä7±ƒ5²§ÜÙ՟JnñOÇUš–›b›¯Öeº)â-Ÿ/_”}ÿðê¿‘Ù•Ò +endstream +endobj +522 0 obj << +/Type /Page +/Contents 523 0 R +/Resources 521 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +/Annots [ 519 0 R 520 0 R ] +>> endobj +519 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [298.045 634.058 346.266 646.677] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +520 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.803 634.058 522.892 646.677] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +524 0 obj << +/D [522 0 R /XYZ 72 751.833 null] +>> endobj +6 0 obj << +/D [522 0 R /XYZ 72 730.164 null] +>> endobj +10 0 obj << +/D [522 0 R /XYZ 72 703.022 null] +>> endobj +14 0 obj << +/D [522 0 R /XYZ 72 589.433 null] +>> endobj +18 0 obj << +/D [522 0 R /XYZ 72 419.861 null] +>> endobj +22 0 obj << +/D [522 0 R /XYZ 72 311.725 null] +>> endobj +521 0 obj << +/Font << /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +529 0 obj << +/Length 2521 +/Filter /FlateDecode +>> +stream +xڍXݏ۸ß¿ÂèËi¬c}X’{O—4IQàš4].}àZ´—ˆ>|””lî¯ïüf†¶äh}âp8$g8ßܬŽ«ÍêÝÍFÇW÷7/ßÆÛU¯wÛm²º?¬ŠdUÄå:ÙìV÷Õê·Èµ·wIºzûûhÛ½}AÓmUvßTЃ ‹†GÛèbÿ½½¥%ÂôîYßFf¬\'¤oš€>ø®hr€i+¡ôÖô½mpÚC¶áìœÿÞÿƒ¤¹‹³u–åg®ÁݗÆYd0ÐUfß»ÆÕV¦ÝAVù8Fxwt­©u“ð‹…~ >šõí]–ÆѧÛ2!Ò×Ëbl;xkïoûõvKKޙ‡píƒðf°²çóf»ùôê# ñ’0ç—ÞyFœµ·qT |2{Húå6)#;ô‚|4À}eœ`ZH’¥QãZǯ96‚€‚^,£Æ<=»ÖyA}ÞÄٓ­^Ú§ód÷ƒ­.Ôx¢²ˆ>àæ3c3¶ —ñàn“Á†Ü±åƒ6Їd¿ Ô°D:y«•ÆíÞ a3ž’™ÝàmªÊVüªQ齡W…–¢P Y¡åY¡r³Ñœg5}uÕr †»íŽ#2ÙÞ=/ö +ªõlñD!äb8¨_ÜwÞÓ²c¤Û’í—i÷´RJA2ñ!Ï(R"Éb°éû±9áØI¦ îF‘›f9Åh¸]žEïGIì¬<‰3pPΝB híÇÛ2Žî?,œÒ’å°ÍóÖ/‚©·7=Ÿ† JIá­ØŠÜy}xÁe= ™%iUc8Øor2IӜ4sšÌ o€*±àý‚gàLx´Bó͑¿ÊéxD+'‹û êÅÍù"‡NÆK|¤‰æsAUlÎær‰•4‡&”$cl&Wþæ  =ŕïx5ÈP"Ì Ýx|Z•¹˜ŽñAƒඓ±±¤\ñ”EJÉâ÷ÑùiP-T×4FÎÅ&¬¢xà½gk{¦:á"q6)æ5G˜ñb¹ç=D~-»z ­°½¸zhq;ÂÏ®+“iµT&üþÙüp»j·ó1¡ˆá›˜XÞ¬üq%ÀÇw7«ß˜î—“²L‰ïI¶þÂ;B9Jâ½Xz¯Ïqš={tôfIJzijYê£N¤LÄÊ0Š”´ ]ñó—õ CÕr9­–‰Ñ´\§»B×ñ:»½Ûn7ÑkܳѢà¿í0ž”¨—£NŠ#lÕ=öžšjCڄD–çѯ\~Òõ5Û+’ñpb~Â)߬wU2ãÇÈwî072xŠ Æ‡x‚×¿½y­dÂò.rƒn܏¦%% BC¯G6¹EœÜ‚è +Ëٖ°¬Õu‡ó¾-™À9Jž¸ŽÞqö5Ü|`µ<TT1K¢ë±u:—iaBׄÔƑîâÞXœW„ "S³.‡ù­^ÎF#ƒ)2“[t|é\ò\JúR¬ó%gæ<°Eˆ5ä!Õ%d +´l•Ãïizd+ø“w û °ø¬s¡j(BÇ̅d‘†=™×õ• Bæ‹Bï­l ‚éɎ^lù÷i'Õ@²ãf ãÈåŒ[@Ʉ¨`úoFE¡{«pß5V‰Žá¡è +ñ†Ž2™qÓ%¡æ:‚f¶%‡±R$»Z~(õ¥-.Ñ;(dŽtlÏô*/²€’Œ˜ÞGà‹YሚcAú‹§ß‚½œ!­ ­Ö®¡®¿»áôdy@öɑ1µÇY–8·¾I’¯·”îòb癵]¤}só?°ëüU +endstream +endobj +528 0 obj << +/Type /Page +/Contents 529 0 R +/Resources 527 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +/Annots [ 525 0 R 526 0 R ] +>> endobj +525 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [463.663 512.646 528.745 525.266] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +526 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [76.857 498.2 276.512 510.82] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +530 0 obj << +/D [528 0 R /XYZ 72 751.833 null] +>> endobj +26 0 obj << +/D [528 0 R /XYZ 72 482.468 null] +>> endobj +531 0 obj << +/D [528 0 R /XYZ 72 265.324 null] +>> endobj +527 0 obj << +/Font << /F15 437 0 R /F18 434 0 R /F32 532 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +536 0 obj << +/Length 1388 +/Filter /FlateDecode +>> +stream +xڕWYÛ6~ß_¡·Ò@¬ˆºÕ>¥9š(ТFû(W¢ÖBdÑ¥èl÷ßwҕ-Ð`¥83ÎõÍÐIô%Ñw‰_¿?ܽ|'‹Hʸ)Š4:ôQ•F•¬ã4i¢C}³éÝ.­Ä#þSv'…~9L¸qÚöªÕ»}VU¢Óóð0Í/`×H1_Ú]Z‹#òj¡f–ùc˜:Cºæo˜ò +w¯æMkvû5µ|¬·ê¤Q±Ÿ>&…Œwû¢®Å{sµG¦ÿ–®M<µ}Ld>u»??§{™Çy^²Gî¨Ȥ¥h…+ùf=3y2žÞƒ·—©3Øa5ŽO,2§pø÷]‚…÷9¼ù28u?jf«óyZå3yö‚£a×4@êeÀ଎³¦fƒe,ã|/ñn—IavY"쉼(KñÛVHK; Ïþªõōú´õ¬ýp¤ˆèˆdGxßG‘ò4Žð8î;MÖóï1MO^ÖyaÈdH)sæ3Çyiéw»}ž$BQ„Ÿø žè`-:,7ˇ}ڀ}¶ž{i!eË ìDµ}âr J«Ô«À/e5´ÆZÝ:Ì+n&wL¹÷vñyÊê^[°Òoÿ+/´Ø@™[;ܳûWÍ´}9í¤×y­nÍ4 âŸæBá’ad|ˆ-ÓW9Y² à”g`$)Ô!ì|<'´æ2;éÕàŽýŃ ƒœùÛ[s:ÚifäbÀ-¦n‚¹¼L6+‚9‹Ãím°=!Ñÿ´úìxÿxÔÖëë{oYiáÍ2†¸W¼øÖT9ir™à o–éþj`— ì÷ +‘m»GÄ6#hÊJüb FbÔÿÓµõ«ÑÍåáˆf57õÙ¬‰„ÀÀD^e{gJç ŒIM-‰‹B­œA¸†qd¶½L^3wNãU­ÓÍDê¥tçftMbE‰‚VME Ä82 ¬i™B›$‡™ãŽä^QaH%L#3¡3•$U5©ªQ" cI?ÎüÍÔ,ðc õG¼zŽÀùσrš÷ƒ·—Üӛ“ˆg*rÆ6˜ÁÌ3'üÊ=D€ô"î&®‡„gðǞ¨ù9/æ(3H÷Þò¦ÕÖÑIÂ@â‘<(F.³,kq¿Žzö7š3WÇfªNïfû4¯6ÃtŒð²ª°³•=¹Q ¼×x¨ÊZté´ÒE•˜W=:¯®˜ÃöÚÕQ/ËBØðŠË¢¢²Ðþíñú ¿ìSè7&RӘ}GÀÑžâÊw›Þ„î<»rXßî$|$‘Ä9²©b™äQ{ºûû.‰Y'q—ßÄ,’„åi ¾üñ$£7æîWø»½&¬á®=\¶_ܶñ›K6MœC «Ò¸lüöÝ)Õìš\;}à_-ë2¹Uˆ9TÔ,žorÏ­X”4fVàÙT>×PT¼ +endstream +endobj +535 0 obj << +/Type /Page +/Contents 536 0 R +/Resources 534 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 438 0 R +>> endobj +533 0 obj << +/Type /XObject +/Subtype /Image +/Width 500 +/Height 142 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 247 539 0 R] +/Length 8928 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 500 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^ì™ÇnÃ0óÿÿµ$Õ»Ü{wz¿È!¶ak„°°’ß\t#( ïÀ;º9À­K‡téÒ¤H @z2‘Á#1èISHÄKvÔõéfŠ!‹‰!]*†MO‰àU¼ô’j C¯`¥§Ä°˜“\ñÒ]ªÂÀ-}4b¥oIe}ÒQznQ:¤7´ô¥_ˆÛêMǦ£ô½©æd_SÍ ›Þ¨Ò{*©â«KG¼%•dóFIGéƒêù|ºÐ[.R:6Ý^ºk!›ŽÒåIª©ó  ô´ì:¶¥;›N*@ºv¦j(Zºö‚Ž„Ò‹0ðmK÷ƒ0–Pz'ð´ìM×FƦǾý¦û±ŒM7ïé‡ÒØÒyê*ÒùÒyÒôšÒ}/\ü™ØnBW·_:J7ËÙÑ}½} Jÿèÿ~V°[Ӂ²bY—ÿQúzg)ýðã÷ïtF´â¤ŸŸôݗ ý‡=ówQ_YÃxHþ–(c‘`)‚µ©¶ V²‚XYÄBL!XYØX¦³K;SÇnîåÜÆÝâÀ, 6l/3¬‡ý^7°‡…»§XÁw~0óÌÌûá12i̖ªh%¿î±3zwºÙâ+ÌÞõe§ïÛÍé,0zû-ùôkš¾Õž¶×öÆý<ôי¢­ÏÌ¿…ÓkSUDã_»wÐA¿¶„¯Ùé„ÿ5§gMP®±/:ݾCÇá::ÝÏC¿§°ú÷€î-)$§””*èŒRÙEԏ¥ªÆd¥eédœP@ ¥ªð­·—±ÄéL.'𶈠ªA„  p&u•T$åNg{‹r®€P†»$( '–@W£ß͙¦÷å6¹*Ô1î‰Z»êÛö¬ŽÕ‚˜eNßh¦À܁ç"ѨYŠc|îC÷ÿÔ=a1Z/|Pît)®w°ÞÀ˜WírݝÔAXÝé“ÁÂĺ’Ç€“b<¶ ­‹ƒ«6BÀ>ÐÚ  ÏÅÚ©/€Áˆ‹èT»AÌmûÔÃiˆ8äõó>®³<÷l»u´÷âòúMÏtÿˆhÌ4/š½V݆׺8í X»€»+P´e­.ƒî èC‘º¢?˜åÀQo)£Ï‹”=Ó5ŠæIAçÅdJÌXY@RSÐ[J·^Uг]ÂʝŽSSBgãÀñI¶0¯\7&ۀ–@o× 2’£â ì9¼e”«gzjÉ<°•­1`¡ÑNÕ°8ô]<@?o|Ã(c0¶§›„N¶BAoÀlaÄ2•×UÏÁ7A· Ó$&͞Q€ñÊè˜q@4g5`]@ôë@Ñãçpz}Z½ WA‡ç¨SéôF€€TñƒÓ B‡ÐŸ€¼…c˜Æ +ºÒí·Ç& ÂC­Üé8)§“¤ áŸb™‚,gRý5ä¨0ŽFÊéހÀæ +›ë €¹­ %“sÇÜu%ßÓnø]®¡²UôWWr¦½5c =oʵÎÙÎø–?r@¼@4æµ`>å‡QžÂ‘ô Xb¡}“>AxÙd$OÄlöRýG?Ðó2ŽLŸjq+°ñº)uúÍXB/¶ ¾ÑðËPN÷ÝwN¿„KtÈ5^îôX9;ˆ‹psO¯ +úlwýúp7&Ý$צ@æX«–sø‡W::OɤäÏìyØG¾î:G=@§[€Îöä–0¢ïàóVKèí×ÝÂÑtòªãÑ7@ŸŒÌ±‹b?¢çj;lÅAKâÉs]ýÖ “ ~ێM³G¬ƒ–^Pµ Ÿ|(véoMx«ùÔ÷fDÁÒVTÍΑ¦e³á8)qz¡µÏѪ{i_×ýÉh¿hÔ¬J8ÆacŠ‹W½é«Ë­ç“¦¦­3Š–ÜX©Ó»«gG ´%š©Ù.€vՌn´²­ÜV¬'ñ1tT4Í'0ÓáØÆÛ¸ÝzÉ=íÐöu3ºB<Ìˆá¼¯ê¸ô’[gcóØý_褩Y9š+­Sà”„µ¶Mœ[ëv'௫Xß<д˜.«æÓò Cpp!WޑmÁ¹àª_.ÞªãD¹˜©¦*)ªdÅ}b‰Óå 5QݗÈ,!ÔD%$N6u(Ñ2§«=È jwyHq%…èj—ïæ€ßûîë½Å{Ê—_àÁéü¾¸ªþYão‚âžæ÷Çø¹{‡î«"«üÚ}>ÜÀÝæÿëîýóáëwï?oÙ^üØÐÝ?]~éþs’oä~ ÿ¼eûþó>ýúÓ _’O~ôr ÷³F¹Ó—ŸÕ”;}ðY »ºñY ·ºþYË7Aÿ/5gÚæu†á_Å1ûB,»¨.*mnda +Ö4*_™b%5AóZ‰€ ‰1“š‘.r*¹˜ÕQ!º0#íËÒæ¦*Œ¿$°vk7蚮[CIk)”Rºf·«ôKÿ8¯åsÎ_d}jPt*½ûã=Ïw¾£“ãë1·xao CŽ'÷vúÃãŽ?ßÛéGªnãÏîô“ŽÓ¨<¾wÒ먱þL¿’^„[Ó? +4>13]ÎG¦§ùN¿h|aLº ÆÓ4ÌNÿð\7>ݝtÁrÈÄiô 1ýÊ KÚ°ÅôÈY†)éP-§ßëÄW[˜~8àr½‡Ó_íjÜü“…éK㐠¯—Óoó¸csz h–-Lÿú^7^íÁtYNˆLž§œãà0C àR|\':Â0ˆdT9¦A‚éÀÎ:$µœÐæa«ÞI7jP‹ž6Žé /ʬ±êÎtËc@í†>(ê1}ÁK¡î5÷ÅôÚÄi©Î×u¢#Óe½ÓÉoÏtÊ6€76÷ÇôF˜Þ҄CïÓKëÀ룠8@LO¥·jñk”0LA=?U>ÊÊ}Ÿ.‘åéÊvQ³Vבּà­d^še ÷}º@Pór¹‰ ›«wÖÀúüÐJy‘FÓXk4"4–é˜k42jŸûôÙF£¨ö³O ¶Õ˜Å¾œ.Èl5šŠU÷}º8µu¦®hL¦Cùv ¢‡a:ÐþÑÃ0=@ݝé¾Ï#Ó᫨ÝîûttCì³ÓK §Øzڐôc ·xÞàôóŽó01Ýqç NÞQ#npúÓ='¾{¨Ô7§™Ç€Ä6@ag:‡°*œ™.@ƒÂ‘éâ«ô’Pazï%š†pïݾ¼ ”:ؽwàõÒ îLÖr–€ˆkõ.ôTpgz0a W¦p…@«wúMðDúÈtvç镒7†…Ø’Î2•TøS6ÖȀÂ\½ažb­ÞYDvk8WïÒ¡y²Æªèã>½ÈEŠëóc\Æ–BŽË¸úr’Ë8(“Ó< ‘jžË'±8}wÝ$ rº¡ <šÙb ˜{ï»Ë¸ÔJV‚è¿Ó‹Ì^ˆLŒ°;B2=¹”÷’º* f§3Ñç—çÞ§3ÑKÞ08Â9]JÞ›R52qÝôFÓ{&ÊD!þØ:rLt›ô’LtÚ§Äût&úBqžiÌL@NçI2›¬ac:½0i0¤mLg¢'gG³DôþîÓ 5ZÒÅÍé«ì‘‚Ç T¿#÷އÝøÄX½ +·Øéâ;ýρƗԆeÕM¦±ïôÆ»†BΏâk€{ïß äîëI|æͲªà 0=°*^c¢[˜ÎDà%‰èœ˜dMÕÃD3–w&z+éLcәè‚âi؜ÎDðÆ(}e: ¦Kh¦-§Ñ™.?êìtî½s҉èT•™.îL—n»t‰Mjc:WI­¤ƒ§¡úËtN{$AT²1]':|§Ñ-Õ{ˆÈÚ<ÑØÖ{çI‹Hu“4lL'¢ D5ҖꝧH. žúÏtÄÕé«Lt€˜îâtf)1ÝÞ{?ÂD°ºI4¶:gÁL{ïLt Ët9§l‡˜è€€ˆne:]*—ˆè6¦Ñ¤ŠDt«Ó™èÀÆ8ÑØÊt&:pk–4œ˜®»h¤JDïkõ~tÄ-L7\jŽ/œ>ë&Ñ4íӛn³¦.#nQ3ÝpqÔÈõËé?{î±v<× +ÿé±ÎPëeëáÇCÒw®îg#‘Îsûñ{ƒÓ³ÁÛ‹´^:ÁÿŠ\59=ÒVè¨øz½4²§¿üÿ·¶¥|Áà9Ð8lpúkDgBÝ_ÇuƒÓ|\¨Rৃ•ÙzʦUq§E´ŠÂ­÷ÎUœ@õЀ‘é\Å õe\o¸§_I)ðD ˆé—t*ã(œNÙê\@A…>eã2Ž%| q«Þ)HÃ|ÅË8!Uê½dÒcz¤®æóÃ5!wX¿9£e=9šÏ—&µ*ÎÚ{§*N×óùxU4§Ûo¸è9{!Ÿ_! ë h‹çó×MD ªÓïõnΝ¨.žM׃4:œ²­é`z³96ZNZœÎË»¾]8kN•¾Íyz`O)Y¬n]'“š÷éԘòÙ[³qÚ©®ÓÿùH;éDt¬¯(\*ÇÈ¥f¦k}d+"…Ë Í_§3ÑqfHx:Ñmût&ú±&T,(»8]ïË0±Dã´X ÓoÞíÄí¿<â7g˜è‚h:Ùã”íí»Ý¸CLïÅÒ\©Ðã”í~ ñÁn¦‹ÎuÁ‰%Æ¾Ó¿4ÎõpºP·if”5ˆéorŸ·˜ÎDâ+â|Êv ãþ;ïûqûÝ·[L׉Kù* :eûôýnÜ!¦ëD#ñ‰1"z»z¿ß•xð9ºŸ +¨–†d°¶ÓÌã1«.At8žd ªÞß +ä>o1«X ’nÜé÷ÿޅê§=˜.bùZB.…‘é:Ñ!È G˜è¦Ñ!¸:œK…;O'¢©ÑÍ"k°Óÿ¥3ˆ¤ñ7 Dt`Мþ¾eӉ¼™n +ˆè6¦ëD‡ /Š"Y˜ND‡¬”6À4¶0ˆ.2ÚHŠ†…éDt`k§Å‹…8§Ó ýX£r¥RI„:ec¢oOµ4RaN٘è‰üµÊ7¡ÑØæt&úÈr¤råJ‘5V N”‰¾àå*•Ê›ÑßéLôìL+!!N٘请5’q>eãó̍™¶ˆf0›Ó‰èXlO#K¡î²¡:ӚH„œNL´¤¯Ñ;¾WäRND°ÂéLôV(î<ˆ̉4,¹€èü$tÊ6¸Ëûh$²²Yiÿ‰|ó÷Sß¼è Eڏöó©ÈO NŸî|¸-Yé|úTKG{˜˜é´gҙ‡?McÚàô—ƒYûñ'µ[cÔàô×Úk u>ԙý03íôÚ\7šs{G³yÒàôIÒð՚¾`0ތ™ªw’Øk>“§ŸœsŠfÅàôæÜâè@3=]u¨¼ì„80=Xƒ³A@t%N÷Ó¥ ´ƒ0¡ŒLç“…žÖS6(@© Xdð«÷j÷Gô·"€¬]Ý9q+øé:\3Ó}z¶E”(ÈØôN$ÑyåCÐÆt=9Js£;ëƒyÀÎôß)QJ ¢Wwvr©@ +€å”MÚ?²¯â?ïìT +€hðê]ùŽ®¿åHff¢G¸f§«`ƶW2çËI½£a¿á¢$¨»«Û¹L©¤¯7¶»lÁ]ù Mt8“)Ÿ ¿Z¿ «¯R\)“ËO£*hÃvõ^ÕÎÑE0YRåõg”Åéz - RËzÕ~ʦ·E"‡EOè\Ôx—ï:àpXH“†ù† u݁¥! xš„`°«÷*€vR³v)MßÒ9è3ýf'î}LN§ ŽJ& +É¡žN5Ðx@ûtÞjmlRþtËéÆW÷î¼ÇL×»ïk©Tj´ÁÄô¯ovƒ®5ù~_,¤’[|´Šw:íÑ°ày5½{韲}vûö9ÿ¿wÈé´G æy èáô/™éäRȺ·ºQ›¨3-N×qz4=™È•Éé–Þ;-Ì2½YÝ8±I³Tï|ž~&>·1Õ sõND”ÎŒ%–4§ûôÐÀ¾Þø_„e:uݑš^ö&®Ñ-ߑc¢_œZöÊQ„q:»õ¥e¯´@f§3Ñь{^|ŽLj©Þ¹ë¾Pò¼¥5èûvú¿ÿc·”ÿç‡OÚՎÿò¡°Ë»Nt¿U#„0[GŽˆ.P"‚Û>ˆî+ÑmN'¢A31vä˜è,ñݜ²ý[Kús{¿ñ§O:¨ý衐N¯ÄÜÂÔ{w“¨šœî8qSïÝQÃÔ{¿á¨ñ?î®76óŒ3츮”:0ۀ.EîQdFŽÍp"ê®—µcRdŒã…+n˜·Hv +K™©°L‡E3͚" gk³©iÜÏÌÕº,YK”L1¯ºo§ý“¦›†Ô© Ø¤;‰¯{ßþ×çƒ;£}‰÷|°xÑ{?tþ½¿çyÞÿ‹M(«ž†¯ÂËó"áyÐWöü°Äñ$ð{0t’ΡšÈ +d‘çà3,‡xPEՋˆô*Ï!ž*ÕHï_œ«Ùââú¸SBåݦ4Ë6&©¹"ÂaSRúΣÂÏ.îd(cŠ³lÈÄ÷†äýJ³løg1”á‡šPzjÙ\°{¸â6:BPDz2CpeW%£Æé +$‹4jB¶©-+‚––ÊÖ Ú’É Ø Ù¾…pè˜Ûe‰~¹R bœG¶M¹l³7  ÏÔ5mâ€]§ë-$ÜÁÞýÎàô]ø#sÎê+g$¹X=÷®:"‡Ó¸”Ì«FWÔcúžÉ|†rL—¦qâ”i~Ý»yªw˜l„]lÎ[ô„ Îäï"¶}e„ò,$9°1;Ü{ˆÒé5”O W¼Ÿ¬ GH ô&¡ÔG¶w–Èè·B°Òþ¹õ½ÓZ"í¸9¨÷Óq,ÅS?ZÇëa¨dï¸ÝH$mHm–M"Ì5¶&ÇÞ}7¨®Ñ`Òf +³Nˆé 7“ðËUáRnCL¼²?`¹ìÉÃb(c ¤›¨²ˆ0¦K€ðNC}–*BL×[\ Uª óË¢}ñÅ_÷¬œÁiœ”çñ—gܳƒzN @={Çiœ¸!ýTĸrô7Cmì½Ag}ð(–ñgÏ~ýUÌÞ¥qñÑagÆ}zð쳨*½Q·rá}“;“ýýwï>lZét°\¥´œ-ÌiÌ‹¥“薙U¿É¥CÒS"ݱÆ0ã¦25Ò[ FQ ÝSSz©¦tn7éóWV¨—ßöAŸ†í?Ÿ}^·Ë&]2:Ò¶äIˆÁ8Þ5}ãÍèþOŒÄþÔzÕfP°bZ2þWžîc‡ n€Û:ï9öC-ÃA0ZÓå³?Wí§cU¯‹¡*~ÂðƒHYÞýÚÝ}ípÁ:¨•»¿´¡r±y—åÊwî6¯t‚ª®é¸`˜õƾ’‚9ŽœÊUa’ð +J.hjJ_HÖ q[fÏB$½€ºET[|‚{¯)ý¤Øc€“’ÞeÖiŒLҁ”®¾±^D°$q§Òe9úÑC•Õ°òˆ>ÚâD :œüé%å~º<¢ß>vÍÈânÕ;øÌ÷•”^/¢ÌÅv‰’èêýÙ³Š#r²ˆ =có";¿å|ávs1=5f¹Èeó– +ÞU¯h—¥ÕÈäüôj®·úhX³3³7͕;vÆ`q„ô·2©éIƽ¶ G8t®‹³¯Á‡§ƒÁéÉäjˆÉžô•¦RU{&dµºJqD¯Û Jú¸<¢tXÊÒZÓ«9¥Ÿ—Gôž!wUŠa°¼¨4"7"èÝ?™-J1½i%¥ß–Gô#gô¤‚s8;•”~IÑ·Ÿó° RŸ;7Ӕ{º¬ßÑ[Ó9C4Vº!Òñúžˆ¾˜®ÓܪæÆJŸ9ÚdOD+V’c$JI×_[‘Ftk¿“¯óΉƤ»6纥þ">œ)Ô!’oʽ?m–8>vGô¯,Q\³÷§³¥Ù?\Àý¶‘Ñ¥Ûìýé¬Ï=Üi·¶.%ÙfïOg 7 ôˆ½ç؄möþt.àí·Š¤wÓ]ùïO¯Ú-:ðÔYÑxùӁó¿ià^–Æʤi‰k”+[A»1<.lݏ·½dp0§iYÂJ—K§œCíqÁ±_H‡ +»1XEÒ±qe—óÑḐnÄ ˆ±iZ…tŒQ±9_>҃Þå LHa¨“~pŒnñ¿ +í5›H9i¼üÉØØu_’TT:¶250®¸x±%ýcÓôqŠJÇf¦œ㴝ïò! [‰S$[’úÂè2ŠÍ¦œEþP™U" Ž# Ê#þh%¿)`hyV™ôƒkdh³õ¶0 +Ñþ«t¶\GéêV](Fa—¿‹¯£tuãƒ/ Ôöºœz³1 +¤+ů¡)Ùȃ—¼!²éêVší8ŒÞ$úÞèpÎÎþ_’®íl…|ïô¢^ºáadJW3×¹¶]ǍêÔeJW1.xf2õøÁû–$×,éÅüR»dÉf†hšôªièð®QÂûY߁&'äޛØxà +‰ºª5Îâ':S•>i–{^óÄHTÈGPO¯y+ÝW'\:ÒWG¤«¨¿‘žoLzKUŽ¡¿vJ Ÿ÷Øþ–“hLºž‘7=š’ßFìÒø'¥LzêzÌ!U1IÝ[ÁŒ#Êю«Ò‰‘Gº‚T^َ8òìÒì÷”Fä>Ì$¥ž€‰Œõ¬G·QÄö÷;¥Y¶·ó>RêÙÝs=x3äÎRþ¥Y¶×¶*œÔ³ç~iÅýYñš›ƒ}ŽÜ_Ø➠k?ފw4áurʳlÏühÂV1HWz{Ã]³Š#r‡~áܕh1¶¥#x˜Ͻ¬(îp9ôvÌÎœÞ;_kqIuÜÏÞñ± Êَn<0Œg¤ö9r0Çùíí7´Dm”2}™Âÿmµ•3Ñç.†rF3*%³(!Ûºò,œ6ýêÅpÎ3)Œtæϴᦷ£.${ÅÕ°Ùç/s,|ç)ùLÒºÚmM°Î›¯ÌšæQÛ)8Üßn—]U‚\Fô@Ÿù_êÎ 4®*ŒÂ}0 Žd3ΝP…’!Ã<Ä@۝&•8 ƒL¦PC@‚”–K…©Â„¡ "©.Ü$›3:Wîš9P(Hqcтˆ›n„.]tí$yõò¦÷>—ï@²þEnß¹Üùÿÿî. º•//ÿ8SûÊAN/BšÌƒS I¬¼ýêqIzàœ#hˆNñ­ÊXÿâ»ã;/ðX–è(01îÞúç·f%έu.’¤%z9rä½õ;7g5>«4þ+ûÞZr§ç-ln&ƒa˜÷èˆÓA:0/AT¢3:‰t NjÀþA¢ð¶&€Î¹ãûfŒ¢säèÜé/ÿ«DKîtH¯Wá^¶F~°¦„=Þµ*0P¢èesv‰©D/0‰$ÅÕJt‚®ÄN/¾`wÿۀӇùgb5BLÓQÀéïï«ze뎊i³ÔNOsÔyv΋qpÁôîÝE´òÕBN7óºEð5‚ïéék̍qD‘oÎøÙã6Æåu\µÔNOé…¥¸ÓA£y)ŽdyïIqñyï HSDá©ò¢G–~Þ;˜+ãKïy•@Œ‹0ÝÛ2ã".Þóc\á­ÊÁ‡²§wMq•O'õú%“â¢é]SÜNó­aý'ŸâŠïZõEÚ[Óz¯cR\t«²¦¸ÕA«þÑmàÿlUÖ7½éÆM7nºqӍ›nÜtã¦7ݼ”p…X +endstream +endobj +539 0 obj << +/Length 697 +/Filter /FlateDecode +>> +stream +xÚ ÏA¨“pÇqxĂA+í°hĨQò²²øGR£Œ¤„|%X Ixð áa…Ñ+¤$$M «E…æϊÅB|e†¢¨¢(&Ýîb:ëú·§Oíßÿcùj˖áöíãñ8 ‚™ç¥¶’d,™ï‘(J,ŠcU.CM›F©ã̖†C‚òù|1™Ä<±l–eaú¶HÓ<ϗ#Žã|6˳,‘e†ƒ ðQÔ`±XF“y§–•¦é˓sx +endstream +endobj +537 0 obj << +/D [535 0 R /XYZ 72 751.833 null] +>> endobj +30 0 obj << +/D [535 0 R /XYZ 72 684.709 null] +>> endobj +34 0 obj << +/D [535 0 R /XYZ 72 561.463 null] +>> endobj +38 0 obj << +/D [535 0 R /XYZ 72 448.014 null] +>> endobj +538 0 obj << +/D [535 0 R /XYZ 249.391 187.141 null] +>> endobj +534 0 obj << +/Font << /F15 437 0 R /F18 434 0 R >> +/XObject << /Im1 533 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +542 0 obj << +/Length 2027 +/Filter /FlateDecode +>> +stream +xڕXI¯ÛF ¾çWøfˆí–ÛSš¤A +ôöÐKۃ,ɶPY24R^^}I~mOҋg†âp¸/v7׍»ùüÆ]¬¿<½y÷«—l<ïpŠ"ótÙýÍÑK¾{Ú<å›?ïà¼Ý>Š\çs՜Ój·â£ó¡©ÿr½ðºûû鷁ъ¦´ÜÍÞ?¥4\O\'kv{ÿèäEfÏ ×·iW6õ4¥é NÍkŠå²óœâYA}^6ضE•vEŽ“,ªÜØSäšôþ¨ +E%Ä·´=N¶#fni]•!4ï-‹Åì{á! cðÿÇ.ñ¦=—Lϋœ¯;?qŠÖ€_/”Òê™i¥üóbߺ[lÊ7ç”Bç ޔý¹ì˜1ntƒuF>Ù:LJ*ˆ¶¢ Z³æþ í&ñE:ˀéÒ:+ÌaMÀ÷[Ǐ†È·¼=N C´¬m.¬j©çîÆo wäÍâ[§ô.XÍC¬^d%ÓÌ,öশ¼zQ÷œÃÒ¹’…s 9×qôS~ú;û‚KÎõ?œóS +`HØ@Þ` :_ÚôΝNŽ œžfYÓæe}Åç®Q0Ž÷Ôt¢Rmïöêö°ÛǑï¼™Þtm‘ށwOÙÁ^pèM$Ò M»fÃ{*:|Â‡—FƒûÞ!ŽUè'ö¢0 +G<=RXÒÓ¥¹ÄbóJ|äر„aƒeóÛ)ՙ@FÝð Ü !Šl.ú.¿ÚW])1Êõ cÊsU¬Ê[t7}ž9 ç¹$_” o4ŠØ½È2âà –gCý>6 œb™¼ÀNl:M_J‘ûrª_E dæc:Ù탢µn>'RqƒÑu/qҖSTRl®LÆó˜SBy‚Õ2mMù¯îJ½mÓÚUøìæþêž0íÄA¬ÏÀ9èûÔ9M”Øߙ´j¢©sÅ@¬EÏßóS´_ùv8gPjW,]óÀ¦*€YáøªJ928ÜU_jZ%Vé5Mg‚¼Ì@xÝB;åCÛºÆ{ªjµ!ÛÜõ8çŽAkåó;¨®>, 3à÷žô¡ 3Þ+f°•2*,÷ôñà°_‘UBuîíQ">‚è4ܖà +>7LîÂó8¾ýùVugIêuO»¨àä TĐBÙA€Ë¢0hf©`±½„T"!ÅÕ÷º÷À:À&΍2‚¶ƒ ø R×­ oý±òœŒå9Ðò×/¡Û* Tep©nV«R[\¸je…6}âsÌÊ·Ž“x[§Õ÷z9ó³^¹©/áa CÉÒFŽí¤TjKrð½ãZóh9‰%SÒGõï¥dŸ—­í.Ù#˜•-à’&âö?.ƒïè_Ý'ŒO*<ˆNUgfHà@$iM¡¨p¤˜§’H›V‘á|1)ڔy_Š8…k¬fáî&ÝwŒBû£øû(´ *F•ÓþÒ× dp#5S¥búP!ï† ¦U‰>Qö/Û"³9‰é9Œ>C7_XlEˆEìí¹ í0DV÷4*‡Zû NYZç<–;—mC†Éq`×”¦®^ça<™{è“Ö?w•ô“†OZ®%0ôաʯ΍çž_N(µTF¦Ôb'S_&à"è£I‚‰÷´ÉäiqߟÎ1|ÅZþÕu å$Q‘éó£mcÁ"ÀÂÌ?¹éŠ|ƒ]Â(&LœV«!À j…T¾Ðµd–·Ý4í ÏÖàÎضµì=Œ0gš![r×ê\°W³œõ/–—׳‰±éɦBùgá§u\ÓËø Ђ`þ‡¹/°ÃCøCC¼ò6ÓB" â0> Kâ§mŽSÄäð†•Í]Ow`ÕDš)@ž†§Ožãyä¨-;ÏVºÖÔډ0oÉJ*¶Å:§Fv!þœ HLxΧñH¸ BÓ´vhÓ J¦¯æÓ×äÖ—¾šO`ó©T¦¹±èZµŸ¸Q/£w¤Ö·í@r­Ì¯’7O‘›¼ƒÎU«7m§+q|†:U'© ;oÒðºŒÝÇaì +ä_+®:¦9ÒFrÞq3Ô`˹ïE·¼„"+-O„Ø.ƒ<ÔzËXC8ÐáU³ùŸ?M…ÄW¹¹QͼÞpßêÿ!–üª=Ø=ö6Aă¸ÐN‚››n˜»ƒqdgÉ,5óUÌ5’‡ô»‘Òö‚ð™z`NŸaà:_,ù[©ØØBIú·dvEwr틭…ªF^‰µS‰'ýO‰¢¤!ˆÜé ÇRc³´“,MGmîÕÑ¥ð"þk͹h-0î²è<žq@ôŠÙU©l—5íÝäÿJ‚M÷…S3kɦ&õã…Iٞó1®ߏÑ1Üì#ïpô0r\Åýôôæ?Ký +endstream +endobj +541 0 obj << +/Type /Page +/Contents 542 0 R +/Resources 540 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 544 0 R +>> endobj +543 0 obj << +/D [541 0 R /XYZ 72 751.833 null] +>> endobj +42 0 obj << +/D [541 0 R /XYZ 72 730.164 null] +>> endobj +46 0 obj << +/D [541 0 R /XYZ 72 640.874 null] +>> endobj +50 0 obj << +/D [541 0 R /XYZ 72 414.182 null] +>> endobj +540 0 obj << +/Font << /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +547 0 obj << +/Length 2208 +/Filter /FlateDecode +>> +stream +xڍXK“Û6¾ûWèfªj$óMê»âÄ[»›ìf*•ªM I¬áC@'¿>ýEjè-_¢Ñh øºpsބ›ބwíûÇ7ï>Få&Šö‡,‹7§MoŠ¨ÜÇáaóXoþDûxŸnwYÛa»KÂ`ØÂÇlÿxüÇ$¤ds)áfö‰Èøu[ÆÁ`ŽÝîÒ2 t_¤¸j-ō½¹ tåŒÚFAËÔ·¿‡Q6ÐÈ`Þ2íó–ùÃý“ÿѪڂä ÷~þð/þ©ÿ¢ú^·ûíîfÁãÅoç3N˜Éj–›­aüy‡ +£bQºOӜ53Úí蚡Çí …}U÷8É©ÛÐp¶ ÜE3Au3ð/éM{0cÇl¤ŽMü熕y¬&iÄ3šþnB5ƒû€5™p2ªÓkzœu¯jÛT9 +F«kþSO(ÿÜ nž/Ó}ӟ¹ .J[§ ·<‚OŽÉlÊ(èaáz1ÿµS£à(VP°¾,z‘Ÿßšëeÿ“9¯;á¤AÑ +X“8ŸG—A +ZÉò¸¼ÜT¬)RXSdjS<¯bòØ7nwÄhzh ˦×4`ÂÐïý¾ãhŸç%ïû;P-Êoˆ" Œæ°}Ô)t÷ wÄNÜÁ¸ÂÖQ”âg˜eð"'ʂcŠ0å3<[*äÌ`ùOqsåcôDW3퟿üÌ?å¯Bœ¶Ò{+^ªßƒ]8UݵmÜXkîZp†üª¾æŸ÷Ê<ñßÉè?G0ÇËČö× Lšå ep8âæ¶=ˆ|Ë4 +$üCÁç]֔qÅ͵ѕ~n üV4@¿+<•‡*¯ ;~h•C3Ňx¹¼ sK»hêÞìd±ô"q¾ðÌ";š#NÑV·½Œ¤(‚ùɳLRíQ”ÕbÕ¦SR”“¶ˆmwÎZ[=S»Üwµžõ`Ù! ~Ð,´Í~00÷Ý”v `v¢5¯†úsÃé$ ƒª„ëx£ø?¹mGXˆ+è8ÁÞ/ +×ûÜ ¸£4*Ùþ$aÙ"žQ ~®=† äà!yhªÛjԂ!ù§Â}×V×Ël’±"6¦ÑI©8?ICÀ¬ó…IÇÐÅiîtSEï8 (\ÜÊS#fÅm“È֊ðjè-Xˀa^˜µÕV¸ô±8°L'%eüÇöæU?Á°æ–;‡J†K”ê` I!C’¤èöƒãJ@Њ»¸ã5aŒ +aSà“ +#:1£2½qK¹Œ› yÓ5ÎOŸ¬jzæ`ûæeü[–ê¹XÕy^é$dÄe.B`µŽÇ0¥Ëöƒ9¿v/™8åânÊ,bL–”)qÕA·Zý‘1O¡úÉ2‘$BÚp=;Àá0x¤#ÉÿŠ›»óDÀ„¸‰ì.^riÅQÈåT²uÊ9/šè¤!‡YA “‚@ÐýêÙqf¸JŠL²$X$P$Pøfi`ù”û›BdC„‚äõq[F¬ +΢"ÿŒVvè«òTÏ^©NËöX G#ÀÄYqŒ3,Kà]Î¸Ÿ±]­1]s%œ-ó›oø ÈÚO–G …¡å\!»`/&v?ØIîê§"é-ÔHòQ|ÏhI–e·Ï„²eqYËàfà¥7ò6’𢒝®†:Z¸ + ÷€kd’óxVÕcoiw¤4= Ým–ëÐ݆"®¾¹ð¹K¡jÈI5<Ò×-lÇ#…¯Å†ÑIqôIª0Û@½¥ƒ± ·³l½'¥å±9öa¿ ¼gø| vЪãîhéH ˆJA]6Mü=ÌB9à®ÙA°@Y­dæ7Ñ8?Ž¾ûË’ OU †Ï2¹É9§à̆­»Ð]T¨“tdÅD_æcD.6­Óž©ŽjÜ¥³L¢ÝŒ¤Œø3ïŠ&!t܂Fª_Tcª I=åbuæ€a¹-ÖSjÈMk™ŸKÝ`–¬™xôðœS$cǃ-_߉´gÐko©º‹_]Ìâü3Á1¬¿A^⇩ÄgzßAcÕMÅõ„Òúí 1‘,†S&­ìê³ ÃW˜Ül‚§Ú3¼¯=Ä ³ Y\ ÿi9íuµò›$¶³».jÆ7Ø»-€g¶V¦æޏ#º¯ÄJöqlzedŠÃ±jÆû7|AŠþÝ4Ny*üeÁDÁ»*N ‡D ܞ‘ +~FŠSŸ'q¥,¤Ñe V³S Ã[tÚ ÆÔµ)Æ¿¿ zäLñmeE¨ÃÀýæZø)Ä"µº?»‹Ü¦8ÁàmÊȝ’;þ)gE”ó$dÌ"Êr±I"õ? *ƒ—È9âøv•Í>+ÒÍ®Hp"Þv¹Êûý㛿Üõ@! +endstream +endobj +546 0 obj << +/Type /Page +/Contents 547 0 R +/Resources 545 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 544 0 R +>> endobj +548 0 obj << +/D [546 0 R /XYZ 72 751.833 null] +>> endobj +54 0 obj << +/D [546 0 R /XYZ 72 730.164 null] +>> endobj +58 0 obj << +/D [546 0 R /XYZ 72 401.853 null] +>> endobj +62 0 obj << +/D [546 0 R /XYZ 72 262.501 null] +>> endobj +545 0 obj << +/Font << /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +553 0 obj << +/Length 1533 +/Filter /FlateDecode +>> +stream +xڕˎÛ6ð¾_!ä$±"Roô–G“(Ò6F.I\‰k ‘)W¢6Ù|}g8#YZkçDr8œ÷‹¡·÷BïíMÈëËÝ͋ßEâ I"½Ý—I/y ÃÂÛUÞgwЛme~Ùn¶2ó+}ëV:µ_éò~]Ú¶£sm*½þw>õ´öõ±nT×<Ðñ¤J|öu#s_WSeÙvUmöt´í™ž#–úîÍAuª´º«{[—Áf›¥™ÿgÛÛÍ¿»?@³­ˆƒ8NIƒ²=[Lsé?ßl#)}‹JáæÞñ&¹#)F>x…B#H›IóŠ Šo-=HÛhÚ7 =oïr¿I_5ƒæG—þ‰ì×÷õíøPcDÃ6 +ª,3ëôšr ‰A„” êîˆö, ›‚FxF;F°*Žb¦,Næ›mUµéë¸Õ´kññ·žp¿„IØ( ×ø„·X(ÛVS¹RFqêb +dŽEç É,‚h³M’ÐWïÛFßkd|­ÑÔQ¦&À_KÝ÷ KNçèN²¢¼˜8‚x1mÁ´Sÿ£¶Ãé±ØÉ +1¦õRßµàƒ­Ìs 1Ƅ‹T•Êà&ó1= ¦öµ`“E‚6_¾ÑAÈSè <£ þl­šú³ú‰¼‹XÜÜÖ¶·VG:´ª0^ºži*K ‚/×ãÔÇ\d"g®”ÙŒ0“·‚ ‹ÁŸ0…ÚîÖ¥F„²kÞÙC§ùJ„âþ¢MI”mÿ\Ä¢¼! k·éôCÝé +34*À[¨ºÃc‚dðüa]!'Mú=g@Y E\*[·O!P?²ˆ¤-m†ŽÃdÔ3§ÀÈ 0!1shlð&?Wf†¤†ªniëjZ>ª» Ñ´fïü‰0Ëø菭––£·Ð Qâ¿7cúå⌔úïŸÓJƕÙ#a˜”º³Î=€Èe0ÜçꅋAÂ%_2yrnXÝKÁ¨‹Ašæ³‰ü°¿ €ÀUè~‚L1 C–€u5ۙ£ç˜Æ„ @SìWð”©ú„/zW(œæôn­Ø-ªF”CÕ`í߃°KAe&ýwdŠŸU!“ ˸;[QBêöÙ#íñ怅€L|‰ˆ™ŠP;ҙÌH¾?G–¯¤˜Gg;ʵ°õÿڇ«z@ÂYUf‚fØ'§†÷B¸½ìç=]`kZÅÅý@ï˜?éÕÈBúÖˇI8ƒ«¼œ–ݚϩ-NÆ1ºé¯s{F^¹˜ƒ@‰¹ÆÛ" dœ-¼ÇŌ:÷ˆݏȘËÌp©!O%³ñ!ý§%õǙçn0•S^?xZ Ø?²•ûs„Ùrüxô7dŒ‹pnï5Q8܌wš¦b÷‰Ú/)Žó[O^Çð¸<:c^6¦'¹D×qù?ZúıÑj¦OFº¿ìßÙW(†¿g×'~&P|@h@Nˆ'd¿%×Ñë üªA_~vWÙ짿þ“ô¤L!x2h{ Q¬â¾ÙÝüß6s¹ +endstream +endobj +552 0 obj << +/Type /Page +/Contents 553 0 R +/Resources 551 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 544 0 R +/Annots [ 549 0 R 550 0 R 557 0 R ] +>> endobj +549 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.999 371.301 383.545 383.921] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +550 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [395.471 371.301 531.996 383.921] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +557 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 356.855 135.818 369.475] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +554 0 obj << +/D [552 0 R /XYZ 72 751.833 null] +>> endobj +66 0 obj << +/D [552 0 R /XYZ 72 669.599 null] +>> endobj +70 0 obj << +/D [552 0 R /XYZ 72 636.922 null] +>> endobj +555 0 obj << +/D [552 0 R /XYZ 72 490.147 null] +>> endobj +556 0 obj << +/D [552 0 R /XYZ 72 425.182 null] +>> endobj +558 0 obj << +/D [552 0 R /XYZ 72 341.123 null] +>> endobj +74 0 obj << +/D [552 0 R /XYZ 72 288.279 null] +>> endobj +559 0 obj << +/D [552 0 R /XYZ 72 237.221 null] +>> endobj +560 0 obj << +/D [552 0 R /XYZ 72 215.552 null] +>> endobj +561 0 obj << +/D [552 0 R /XYZ 72 196.208 null] +>> endobj +562 0 obj << +/D [552 0 R /XYZ 72 171.55 null] +>> endobj +563 0 obj << +/D [552 0 R /XYZ 72 152.87 null] +>> endobj +551 0 obj << +/Font << /F15 437 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +567 0 obj << +/Length 2391 +/Filter /FlateDecode +>> +stream +xڍɒã¶õ>_¡KÊTU‹Ã”}²ŒkR5)º’ƒš„Z¬á"àôÈ_Ÿ·"՜Ž/$ð°½}‹vÏ»h÷Ë»èîÿÓã»÷â|Çá1ϓÝãiWa•»2®Â$:î›ÝoAîÿûøÏùÔî·CvŒ‚vØ'UðeŸ”6VïiR5NÏjt'€qºtíðŒ³2O 5Ú¶Í$gøŠÚÆ®ß‰v‡$‹BÐ(7ÑxÖÃ> ”ÓüÆïQœû¾f‡Éð<=™±ç­®yg£^»? KÊ©7Ѫ6Ѫá8¸L«ftüÂÅȓSíÖLy¸Þ"üzxu…p¶NM;òf{¡Uਙú{¿IÊñ¯ :9ƒ~Æ®uç¶æ¹3j°§Ñô £ü?òo²Z§q2ÿ7-¦WÙ}Öß~c%Ã6Ý{š†yRxo¢8«Æáàs>˜^ȳןI%aþ‚1›ý»_)Ã\ÃDLüõWºƒ<íè×Ȏ¡‘Èá´0ä1oV=o£-£1Ӆã/Â(7¿â"ÍÛÀk·jp ^ßFƱDñ­†Q¢c„•–KûéNÎB(÷(Bø‹Dma°b)xç‘ ¢Ðéþ"“W³!À¨•öð˜÷,÷‘ )‹°Èîÿ„&¿›c“ÔvŸH¤‚iZüåTåa~Ì·BUŸÞ¶ïªQ=,³*‚}©‹i+9G|= +¦‹͔¥t®•œÊ]ŠÅ-ˆÓ1ºáݯ,`ßõþIû/˜­T&LÄJº÷„ÐV¦k5—Û;ªØ%¯‡á VõÂk®Åy2{Fœ@Tn–õxź{ ž[6m®«ôJ<¥¤…è.µnþ¯”Í 67[žJYß,wÍ‹~ÖR¦2–´Åo•ž äµµ¯ý0Õ·ZfRHCEbw±ÄwY§†Ú‡‰¡Ñ_‰oëm´VØÿÀ©“§ÌSÀwŸÕ…4Vã<ñÌ*€ß£<êF´-œ½ðñˆtãÐ]aKü¦º'y¦ÙqKß³(åzÆ ɾDÙãDJž`1Ƀ#çü‚¼ðëϟX3ý{+Õ´T™r¾nÛ?µ”ë\XKÁÐL†ý Œgm¨å„vӅҼcðq`Ø:‹„ÈøÀª&xèëç9^¦¹¯®‘œé|IMsâ¿'7møUî° ŠLø#l©âcÂ#f¦¨d#?ږ„Lð‡}ûôm%y%*,˜;-“EïU Jþ¨šÂWI…¶ô²»l@R­bõ­!#à—øŽÍ×˜8éXŠæ@ª+-–®ë¤ªÚÐÉ4‘üGhæY/3`ã›O´A +l|«àÂqŒ±¾£e4f`Wàï"Ñè +¸†‡¬Þ°&ä"ìæèÐYoñënl +`27·ǖã!¶ +úˏ¤ÌoMÀuî;ü©c÷O§$ퟆF™«ôŒkOªvTãĒÖá‚ô;à&ê5r¢é‰7q8¸5¶îÓäv|ã Í¡ª®GÃá”8ûö,Ž ¶ Ì\jbv›eÉ}õ2Ç%> endobj +568 0 obj << +/D [566 0 R /XYZ 72 751.833 null] +>> endobj +569 0 obj << +/D [566 0 R /XYZ 72 730.164 null] +>> endobj +570 0 obj << +/D [566 0 R /XYZ 72 715.884 null] +>> endobj +571 0 obj << +/D [566 0 R /XYZ 72 694.215 null] +>> endobj +572 0 obj << +/D [566 0 R /XYZ 72 672.547 null] +>> endobj +573 0 obj << +/D [566 0 R /XYZ 72 650.878 null] +>> endobj +574 0 obj << +/D [566 0 R /XYZ 72 628.545 null] +>> endobj +575 0 obj << +/D [566 0 R /XYZ 72 607.54 null] +>> endobj +576 0 obj << +/D [566 0 R /XYZ 72 475.245 null] +>> endobj +577 0 obj << +/D [566 0 R /XYZ 72 328.503 null] +>> endobj +578 0 obj << +/D [566 0 R /XYZ 72 261.214 null] +>> endobj +565 0 obj << +/Font << /F15 437 0 R /F32 532 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +583 0 obj << +/Length 1532 +/Filter /FlateDecode +>> +stream +xڝˎÜ6ì¾_á[|kCk6Û$ÎÂøÅæÃÍï#ëà=@ó°ÙÄ:¼ßÀÊ´Uy!Òæ°qÈ៑¢!€ù4”Õ¶³ÿ˜=Q~¶õ¾qT݂û(e+¥rzmceYAz½ªù|WÙã Ï÷ÕAÎ )œ‡»æ|©Ìۚ¾ýÉcËÎ̵ÍB§ÇdÊÅÖGB µÓ›%zås¯¼å_¬jÿæfí¼ÇñÿŽvòCўI[¶ŒR!ƒ¢žÈôëh'?풶UãýVÖû¦;5mÿ8îO…]NÁEØßAゃ¹ŒÏ(ÄÍ8»=Æù9ñtl +í»ڂVÑ´á|ÀÛäŽnd¸‡gä4t=íîæŒÎÛíí­)h¶‚}[™Fiš‘M‡¦E—$agÊ30¯L×`–ƒ ¸P† /IÄ,]£Í6MÒðsnZ&$›š®³w•!PßÉ®i[³ã¢IÀ¢ð7¬É܅H¥:i™+cO='…{XEYœÂBGI¡=s©°ÿü°lb¢àãæ—Ç<—zê(M¼ø7Ô±±7äÊ3Ƌ¤%ˆ»õà;ëlûëåuäÈjú³²®±•" i÷nîÁNqjÆ¥Ÿˆ˜ù7”à„Óݬ[²áë9UÐs>Ϻáî\^žñäq*ñNz6{¸©ž'“Ï'ëUðãˤM<5Òëä{j6Ï@[rSGSGõ5?>Ñô¥ßæb|vðõ»2»¶¦³ûÛÛòRŒÇÃG[wÑú{,Ž“(Ksü'v)ÇSʧ½ÿžÎ;” +endstream +endobj +582 0 obj << +/Type /Page +/Contents 583 0 R +/Resources 581 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 544 0 R +/Annots [ 580 0 R ] +>> endobj +564 0 obj << +/Type /XObject +/Subtype /Image +/Width 561 +/Height 160 +/BitsPerComponent 4 +/ColorSpace [/Indexed /DeviceRGB 10 591 0 R] +/Length 1601 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 561 /BitsPerComponent 4 /Predictor 10 >> +>> +stream +x^í1Ž$7 E¿˜(•ö4Oà#Nœ> L©³I}„=ª*ì”gª»ImhzJ?ØÞàïôðÉꅀj|M-----¥ +Ô¤íãjÁæ*¸ˆ +JÚ°`û¸«Í„‚t52))d€´»¿<™”ê<™„ AEIµ;’¢î™T°;¯0Fûçѵ3å +döÎ$ldj-&2µÖKtæØ3ZgŽN• |©PkA-@-ú÷™´ÿ»“– +.£¥¥¥TC«¼Ì‹Vë_0é‚dZP2‹Ì"³ÈÄׯ‹Ì5Ÿz‘i_‘Ì"#ô§|Ð<™<þ«·ñQÿ+*§Ÿ v2cŒ~¶ ñ¹˜N,l$3†Å–óó‰IØàߍðĔ¨¾1‡LnVyìËC‹SüQD…ŒÖ±¦t@‹CL4Ę&ỾÑçã0zp0ö£Ð=_þ©8äè£d?ŠðMß趸øÅøI2 [¾ÜmqñÑt2:ÔÃ×mqñÞÄO!>ù²1.þªadc\üybøEv_øK˜àD¼ù†1.~ičŒ ¹Ûâ◆؍ mdŒqñK#ð;Š ¡Ûâ◆àH†¸ c\üÒ°'Ðïݾ4äLæ;4ߣü퇼2öÅð›3™»2v2£±3™W•†}ÉäÞÈ|œ¾dؼ4ìK& äK#neìdÆF†Mq±KÃSd4õÍg$yÓЙT,+¡šXæȌÐĆj:B3T±Î‘É¡‡ ÍV4ñTÐyœhŠŒ­2h–àŠ†È¥L‘ñTi\b¸NS>:äÛ䈕±oàq»îäoÿڟڹd@ú³)î8&É *ƒfÀ^¦Éä¸Ã„¦¾µ´TQ㖆ؙ jABj©3™µ2:™dJkqQKCìK&&CÎdFÐý«“Á2?ÞÆJ\Ôqg2ý ³•5.æWö%“ñN&µV€|É`&4}?{Eƒß´4ìK&÷÷…µZ RÕ¶!fiÎdnùˆ•¸ˆ;˜Éô›>Qâ~¥!g2ù¶Ø—̈6L:™~ǧ 8NâK&ß##J\¸q"v&sÏGÎdr¬Êèdú]+qÁJCìK&ß'CÎdF¤ý«“|¬ÄÅ'ö%“û)w”¡Æ‰œÉŒGw ÄÊÝA¤Ò|Éô‡÷R¬Ü7* ±/™üÙW ã”JC¸Ò|ɌϾéÛÛ(wrìL¦?î H™¦0ãDð%“ÕûoV6p”qg2]½ÿå©¥4ìK&ë>Rₔ†àK¦k¾T+ï׺'[¬Ò°/™¬“d¿Öu#3TF%3` C¬‰0NìK&w ˆB&À8‘3™¡ûR-  œl‘J#ð%Ó-¾´QI'[¤Òû’É0’ùÆ('[¤Ò0|Étƒ¯lÏ=ã_r&“;l{¦Öo¿ÔêIf8“™ù—¸²b{íí?û’É}‚ mqJ#ð%Ó1A|¶EÙ4ľd2¦Èû’ÉQf hxîÅ¿r²™'‚/™I2à“-Æ_2¹O“‘“-DiˆÉ`š 9“É^•ñ%ÓçÉ@N¶'‚/™¡øôÞ6Ä( û’Éýé÷•7 À¦!™ç_£-ìJ&QÞ/n-l/m Á—Ìðx_ùn{í—a_2CñÙ»áåh>j +cˆ]É ;4ƇÌèºOmÍ<ÿßÀ“LŸŽæ°½ê %W2cX|ªD<É OֆDŽz:kHäÀ“ÍX¿ºè àd¾ãËèŸÐ¿{›à¥ø¿•¼È,2‹Ì÷ˑ©±…«jiéÇ{¶ (í ($$ìï6Ú>¾¼RÅ^3™r2H;™r›LJ(×%“p ê¡Ö‚KºÔžÙëpSåpPgµÙ[Sk½™Z«Ò™÷=s¥ÎìKøÞ£«¾ÿµ"U ÕKì™ý¼;‚%Ëÿ¡ýµ´´´´´´´´´ô/>:ú€ +endstream +endobj +591 0 obj << +/Length 38 +/Filter /FlateDecode +>> +stream +xÚûÿÿ?ïÙ³g/00¬\¹ÄßËpôèÑK—.$¡ +endstream +endobj +579 0 obj << +/Type /XObject +/Subtype /Image +/Width 561 +/Height 160 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 16 592 0 R] +/Length 1481 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 561 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^íÝk“Ó8Fá~[özùÿ¿vk`"•"Û؀ýF“sj©U˜ùòT§SCL©ÿb#"I=ÅfDí1„ÅQ1„ÅN1„Õ_»#Ä|-¶"Ò°ÿ®GtŸ*jϯù–ͪ&DJºðë«Ùdw¢ýb"Ä© ’IŐ.©áP„˜ú +²lÓ_—ì+ÇJúÙ{›Z}‰NC¿]"æv½Õ‰9 ý>¿˜ñTçí1ôϼb$Eh #©ßjû’#BŒ?ÄüqX̗xåsû‰Töôgù…}ª߁‘÷>g-Üåú«ë[4¬b2lf°b¼º¾un×Ädà3ƒ–çÚcJY±9| ¡Å/¦‘r0v-Z×bÚcZKbr{%6ˆ‹}i•á c—’Á˓SÊáÏcÒG†ñâbrã2Œÿ#u¬Cj0rÁ˜uÈàÅ¿ÇHCFÚã2xñï1RÄHfk9 mzñ‹«bÒ)†ó¤{ŒÆ¨88c dðbÛcF2uóÍE1Þ!ƒÿÕµ]ú12,0.1cåý ·þ„È0`À™TL”Ãbüd0~1ˆaÀîô?éGÒbc½K ;ÝÊÖ½k3Àø÷˜e19VÄ0`æÙc"Ô֙²ñ®ä#ÿÓÄô£¦ÜÒ †w¤™ö˜PØÄ0`¦ßc">­‹q’ŒéÒO½Øþ1€™b3ˆŒaA `œbne·?ÀøÅäbƒn œ'F§‹‰‘Œª˜9È0`š¾Ç,‰ M%0MŒâd1¹,&4‘À412f˜IfL”]3ÆO0þ=&cYŒÂ 0®k%IÝ߂9.Fa×]U8ïOtXLÄÆ%Fõq³ +£ìã'¿˜ô‹Œ_ŒôÎÄ)0sÍ…Â)0ŠùÚÞ=&Ê⁁ `\bbόI¿Àøń¤úXŸ¹ÄÆ/æxn1€™_ÌxP–N ‡Õi×ßh§¡îb{å5¡3ÅÆ/¦iÿµÛŒÞŽ–^“!ƒÀÄôh5(z1õ±{A `bÔOšFEè­îFv¦þŸwe¿˜ãdãsç¡*£J½Õl §¾Æ 01M?4F$Ã`é ÄƵùJ®•: ÷¤özI£*ƒÀ6ßÃG·ñ5½˜²!ÆO0þOðòáÀ-0ˆÌüb´SŒ bó„b´|°BæN2€ñ‹éÁ䦘[ `übt,ƒÀ0có‘÷˜(+{ŒŸ `ü×J¹)Fa¿˜®m1a˜g#õ÷°¥“€y1í~÷­>rXL$`^CL>ˆQÄðC4Àù¸bº¿hSÊ ÆM0~1 Ìý@ïx b3‘…A `fs7"ƒÀLzuýV]`âý¡ büdã“‹n1€A à 2/~19´ŠA `ó:ïHˆ‰²*2/~1^1€AÌK¿#!¦“ ˜,&‡ƒ¾ãb"ã1¼#ùÅì=(¥øÉàÅ/&¿K 17Ĕãb’óQÅäâA_c2xA ^¦“»VâR dð‚˜y½ &cŸ˜R^“L9æ1ñ#bòãÄäÊÁX©/6dJi^“«”ÆJ=0‘ñkALÆ1帘œÓI­;@Ìç\¥´BæS9Xf–µâ‚èßKîD~Yÿ“EºDŒ^\Œâ CŒƒÄ\bƒÄ 1ˆù1Ëé)£˜5""’TÞªÏNø&íëǬ‘¾ýÒðoŸë“d|£ö»hvßd’H!É&F1Ò7 í:TœSö˜ sDãQ÷fqîŒi8' 1mƨ1 +}íl1_‹¹BÌòsÒ¿æD`HR[+Ú¨‘TOû> +stream +xÚ Æ¡0Áì? *E86À²GʽyI8ºðÎýCw“4³ˆ ™»ëî3SU±¾ï +endstream +endobj +580 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [517.647 227.413 525.493 237.11] +/Subtype /Link +/A << /S /GoTo /D (cite.Sporer/Brandenburg/Edler) >> +>> endobj +584 0 obj << +/D [582 0 R /XYZ 72 751.833 null] +>> endobj +585 0 obj << +/D [582 0 R /XYZ 236.97 589.291 null] +>> endobj +586 0 obj << +/D [582 0 R /XYZ 231.312 401.76 null] +>> endobj +590 0 obj << +/D [582 0 R /XYZ 72 167.845 null] +>> endobj +581 0 obj << +/Font << /F15 437 0 R /F21 587 0 R /F23 588 0 R /F25 589 0 R /F18 434 0 R >> +/XObject << /Im2 564 0 R /Im3 579 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +597 0 obj << +/Length 2479 +/Filter /FlateDecode +>> +stream +xڕYɒã6½÷WèHE”Ø\E2|r÷ØãåЇ©˜™{(%‘‚¬rÿ½s·buØH$€D"ñò +×Cpøç‡`óýôøáãa~C¿HÓèðx9dÑ! s? +ŠÃcuøÍëµ5Õ¨§8K¼J—-”B(ÿ÷øË4 ’.)"?ËÏÐDC|êv¼ÖÐ3Ž½¡Ö\hŽQæ÷c”{OÇüêžÚ ç©¡ò‚zºÚÞ²@ÿT7ûޘ™½³Ä¦Z5¾Ù\Ãá$ƞÂÄO’3›¼Pƒ~iî•íØÝLsåÚ]aûW©hÕpi¨ÕàJš =i¾JeZT^°aZôC¯ÊAW\­Æ~šýú•t®Zþ6í@‹ÖæßUw<%)蛦¸}åÚÐâ7÷lǾ)ÍïA˜”ܸôŒ<åàîÿÔºY7C\’¬\‚ÆÊWzŒV?@©<ÛÞ5÷Xí! +^Íí¶gÙöà+¶²m*ŒŽ”¬Ç/Í«ExW×Æ #ú«mÏ_Õ\oV‘D¡÷XëEG2k½¾©Á´­Mg¥W/š•¶eo$‚d&\™Që}“eƒÀqtö¬Æ‹S±l¨Tèü˜âj—¾½³ö¥Wè/⊹DÜÌñ³htãhŠýAfZ„ |7G 챬" +ýó9çUüû˜GàÄ'ÚÍ0›WEõóÁظÞÎPö´®=xZz<ɒ±ÝŽO™ßAåòA 7‡R(¡ UÛèõÀ<—Û¾çíì»2*ÂIË~˜µg(BYs +)FbˆœeΝRqʖ¶®ñµ6%ú@†ãðÂ䵊ë£å¨C§ÑàÑ»Ây{ +ý•t}‹Þ{14îëÓ"€Üê°¼ƒ{Òc$ +{ œ¥uØ` àzôÔeÒ_;)÷Dr¼(\ Ž•üÖPVðdãXƧ†òkÿbô«H/Î-]u£{8Á»h>;ÐT»c`ì}›Å[܌³]€šê Bvgœ„QØ)Ӌ6Y–-ùA–møŽ2ÈWÆ1wP0-Ãù0;˔ÎÆP’4§î¦ÊÝäC&9›Ä%œ+É3׀sq‰8‚ƒ†aVÆ<‡2Á»•/,tù"ßò]½3E9öý(Øë6Þn« ªÏdäÑñCç)rSœ@¤„^'ä“a˜ÔÈ{q2óJË9D—V%`%Kh#mc¤Í"ö™úYíe¡57Õ^w‚bRd~ÒàµÖ8V95KÉ ”º”pY¸¸pB¥s§-¡§4…@ˆV"’ƒ…‰ä`Å­±be%§ZŒƒ8M«¹]xý*èÒêœü¤ÂÉ/tæF›3±‹*.'&Å|…eàjRD\a½h_PëГB¬OŒCǁ’lrñXŠ„H¦B(€¬t›Ñ4$šX ïä#¾üâÉ}=ÒV?O¬ÂÂîè]ˆüÔôXl‚$Žéƒ lÂB#À ù3)vS,„-Òª?õ€öt¡„Uí]ü‚Ö8P^欓[âe°€¶áó´—ÒÜþ¦{:,=ϙg{ř`tkw”±óÄlú>ÆJý­; Dx€RC2¡e€hxýÇÅ;N,”b^G(•÷1 ¦o!i~Ÿg$%ʦ.ÊBaã$镁++Æ$°Š#Õãí;T(„’„’'é:Šµi¡ì҆ ¢›}ªRðv*ÏiQ~Þâ:¾·¸Fë^D¨°ŽEzrYÀ =ËTîñE<ˆ•UBE¾éé¦Dhrȹ,N–¡tÚ;†Ó¡“ˆÊ81[»ÈTceZw0§åQ†˜4­ó6o_S¾t£|f¢ß9±MpNlí(]‡©¾å +ÇN²8NAA§>À׆ûÇeOP`¤AtÑ/SÞÚ½çØ{7oƸLƒË·¸$_ E␂ØڑÐ1™žN¾×Á'Žøûdd4 V ¶˜±“YÓ HÂðbißÚÂç#Ù +šL.òï%L¹´˜)û`ùìÑ[šœƒRæ"páö)ͯƒ{‘ÛíæœK3:¦wæŽxS*u78öqÞBóƒㆆÝåä|IÁPU–. óQ©F+èjkœµ“ûPc×ïŒ÷ÖîuèõHgüYjf¨7xí®l!þ¯éjÿK彾Ѓ%¬QŽ£nf¤Ù͉?µÌkPW¸žýž‘ŠÏ‹‡IW¢ n#V|–g¸®A +&·}ü1ŠW<7/ü"ˆ:ÿÄ«mþæð£b"ÃaTŸxXÌr{ÃƅŸ…Å_uzîŠ6™øÍ ö5×FW˜4Å ¤±ã˜#ˆ1 kkLã$ä~æë\½J÷\\ëv¼U\ÞÞs@D ‘ÀioÌ]ž INx ß0"§ Î{N‰âÌââoù: +yø'r Ž.1ˆƒkÄ11\]5¯¨áFæád¡ËŽdZñ כÉÀU‘.ÂÃ) ü"Nd¿£]å?ü mB‚ +endstream +endobj +596 0 obj << +/Type /Page +/Contents 597 0 R +/Resources 595 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 544 0 R +/Annots [ 594 0 R ] +>> endobj +594 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [158.731 553.701 405.819 566.32] +/Subtype/Link/A<> +>> endobj +598 0 obj << +/D [596 0 R /XYZ 72 751.833 null] +>> endobj +599 0 obj << +/D [596 0 R /XYZ 72 730.164 null] +>> endobj +600 0 obj << +/D [596 0 R /XYZ 72 590.811 null] +>> endobj +601 0 obj << +/D [596 0 R /XYZ 72 393.51 null] +>> endobj +602 0 obj << +/D [596 0 R /XYZ 72 260.55 null] +>> endobj +595 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +606 0 obj << +/Length 2459 +/Filter /FlateDecode +>> +stream +xڕY[¯Ü4~ï¯Ø·fEONîNà©´T„Ð +(B>Iö¬E6Y%Ùs(¿ž¹9±—´ÀÓÚã‰=×oÆÞh÷¸‹vß¾ˆä÷ëËûwq¾‹ã°Êódw8îT²Sq&Qµ;4»_½¿K“*ˆ þ}03ÊàÇ7ï™Ò´O¦nÃý]–¥Á»}™ÃÈ+ó©åÁØN¦¹¶üáÓ>QA[Ï ×`™.À×ö{à™™t¼v¦Zw²™9z»—Á‡(Îañ–e`&féµéÚf9æ·Ã÷÷ï’ÔÕ6ÚÝÅY˜e+û!Š"fóR…IU31ÅYÔ|ý +vU@րß3J}döҀŽ<ѝŒHSø.ºçQä.Á´uÈD0eÌÁ ++ ÔՔ0ñLéì3¶ºÆ¥“ÅŒx²˜%?¢¢»;Vͳ–TÙbYEr -‹¿Ö²I•zf[…¸„rF!È*È÷@>jå#² +2¡Ðø»úÙòU¢ ++ë†Ïùªò|åŸóÅ>ØÊ8;œXFôg¦gò06í¸|G†JÊ"LòÂ7ÕI÷ Y4ʬ™a4‚ãàQèÍÇ^ŸMÍGT”PQê8Xò„ÂeËeF*þ/ö(oìÛR°À/HkÉâ3¶œÿlæ“é­ª0-*ßӅã½›æðÁkø.«6…!„¬CÊÍ< +ôå2¨åŸæ¬g> –³’—g&¦àñ<šÌcÿ ‹B”Ž™9;2h`âæk4âÌæ(ªeQ ÈãØ,9¡’²¼Å&$iæ@yñ—p‘XYU¤AlÈ6”P°Ø 3SPw<¿¹ÖBqr¥TN®”jC +;pšl‹p‚Ë-$l +V}‘ÐÕQ|Æ8ž%àésK–Nƒ$cÒ²Æ2u³¹t¦Ö³z„ù2…¬!7Ëâل‚VQÐâVœ™ö Hˆ Ç]'Ó?2C§G»Ë‡(ŠŒ9A؅Â7K¼¥“áÐm…’-)¤"9_ºölc›Ž*Õ60=ÅáÓ>Ï,XÃڃéõø‘8¾³Ö&uWq æ±–ê +™XÞ›´ SÈF÷ %(@†~è0ÑjœÃ–`Øé8ìÓ8ÏLB˼ûæ`ÕwÏñ2>‰UXæ™ÍùEŸ̽6†Â.á”-1;Æ+fBwø­R‹£hœ[„^y`Wþ!ü¬½ì‰‘$(!xÞi†³&x…O¨yH@+žf4(š±Š[!@N²ßKÞõŒ*Ìޚ©ÛYXÞ X-¯°ˆ²)Gѓ:†Õ’!3¾æ•¦¹²mÀBÓÂ)æ‚~–à:r(H'R¸§ÄÛÄKz,Ó­Áez^þUüˆ >¢3qðÓ·/©=á·Ð +•ÄaQH{öÃ@jØQ!.¤3› 7 ØàZ“ÙTFѵõŒà‹„ã8œo¶`•pDÁ¿ý Ç|¤ð º£7Ӊö†99ö+†'#<ÄÛ,¡ÒAqàUÐLjŽ¦ë8×¾¡FÂqÔ`I™[DA2CbÆeæ2Mf¢­úf@AžyŽ±0]m»DŸLü+¨?s'ö¶2r’ìRϟ#QâN|.Q¢œ(©µDҊ–Hz¨bíȝ+bØ|‡^wÿ ^@0ä½nÈ%à|=ëÏâFüÉÒ`ý²ZJP;I—€€Ñp/WtfÊ7ÑÜ𽘖R D²Û‰ga•Í ¤Ñ<žU‰ŽµŽaÅÊçg%jú唎ø re„1`ô“®Ï<ßL‹ßé;N ÜF¤÷°U&[­E€eóŽ\σ/>yd.Y”º3Ø"öœ/9Ûa#Œ8j þâûŒ·r ¨ŒWîÒ¤u9\9pŽaŽcÓu•#¤H#„þf»Û¯™ÁÍLlŒ~„dP- ›~ÍõrS-#M"[[±lg¥m薒•f™8šÚŽªYb†mÏ+Ëwµ(ߎü1ÈeX— DäľñX3Þ«ÜÞkC5ßô¿vs§,ôŒ-‘7ðïZwa–¶ªÓªÜg–X½‰q„9pªÜ†ì ˜€Wø‰ß¦¬Êµ!ðÀ +}ôJ¬6¡W> endobj +603 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [281.673 548.802 289.518 558.499] +/Subtype /Link +/A << /S /GoTo /D (cite.Sporer/Brandenburg/Edler) >> +>> endobj +607 0 obj << +/D [605 0 R /XYZ 72 751.833 null] +>> endobj +608 0 obj << +/D [605 0 R /XYZ 72 598.034 null] +>> endobj +609 0 obj << +/D [605 0 R /XYZ 72 480.185 null] +>> endobj +610 0 obj << +/D [605 0 R /XYZ 72 384.004 null] +>> endobj +611 0 obj << +/D [605 0 R /XYZ 72 331.16 null] +>> endobj +604 0 obj << +/Font << /F15 437 0 R /F23 588 0 R /F18 434 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +617 0 obj << +/Length 2126 +/Filter /FlateDecode +>> +stream +xڕXK“㶾ï¯ÐMPe¤%Àw¹|°]ÙTRv|ðT|pr $Œ„²H* ¸³ã_ï~e®'¢îЏ¯LV§U²úÇ»äáûõó»÷tµÒåÎè<[=¿¬J³*uµ3I½z>®~Rf³ÍóD}íµ9üìºÓf›¥ú¦ï>Ú.¸¾Ûüïù_¿QÌZ³]šµ&+ÚÕu.JwšÕ~ÿÑúÎ¾Î”€p¾ÒzWçy6õ.•=Ÿ-!ÏÕ6•V½ßo´rNêÐo¶¦TG{`–q°¼½4Á}ÜÀª½¼Éj7?ÂèíQ¸dxeî‹ÔÏS)¦:¤Cã:¶06~ï‚oüÛöÕÙ'÷n‹—Âò¬àÓwÀ†g¬•ëP{°'ëq¢RÿMtf/Ça·Ùf&Qßö'wh.pØʨ'`©`Û³,‹ßNWòép²ñ²ÚðÎցE­pàmÓN›Ó÷õìHÍyâÔ4™ôÈtßÙíMð6¿Ÿx–áþY¡˜‡Ç\–åÊv¤®ux^mºãÄÖ1TæT;áµ…šV6hû®}'†î¨Ø[ÀÒû#X|Á5{4„„FˆA¡ àÁ1¹Ñê»~¼x½·ìÆètö/Ž‡Ð{¸ds²1J|ӝl+—'ߏ×('%4zäOÇñ ±Èô+òÀe–®2¸_+w½ð׺Ó94ŽN³¢.Oø†‡q¤~ÂJ>KšOÁ6βÕ6àyø zéò"q±ÃÀ뇾‘kðp`fÏC þO”† ûŠjçjœ"9C©K„ƒP€8€ôžÐ +µ0báen©Ø„l`D/Z®d{p”„¢RY+¥ÁՇÀDÛ\aå:©F#³qê¹˳ñ$œ©‹‘V œœ©)îÝo0=ð[ª€ +U✷WHÀ| ßC$é+֜ð¦b¸€í°¶zÀÚ´¬-' ŽPÇI8Hž¸ì7©Vo HÎãñæû pÃvÙÿI±¦!‰)Á`$> ¶eõžÓ –ÏÀå‚%§C¥†²–לÍÁ®™¦ +ßá­com?ÊÜ«##¡R9Áú–kÑÎMˆªh*•œTþœO!L‹Â@˜âîYbÔ¹¡V€R<Ó\È1TwބkÏÁˆ©‡$EÍ`¿€!¤Ë`¹”uO˜ €î2J ºÅ%Ù½‚ƒ)i 'û¯\Á‰ëxDÉP±Œ’Óá$ Â1!ÿ>pòüuôâ2.Á0EP”™ÛfÊÒR²疳ôI*…ȉk™ríõââ1eqÜM_ćª‚Ý5«ÆY’!|c‰"øFz)åp¾‡\K-uY’NE—þ\¡óxé}KÑPªïE°êJ7çȓ„³¯ÄïÉv‹E×z)wu¥ša[Òº¢¢ßóPüÆÄ}5À5Fíº¢j@±  :{àn¼‹ºEÇ¡QD>­+ñ) ®^R$)Pl…{ªý7yBÎg°6ÃU<ö6¼omÛSö›z–ýpGŒÂ,ƒê|gÖGO9‰1ªÊ®Ù_D«ø’‰e"ÓÈw:ÛËØ-vxÇ&–xBë"UMèًŒÍ3Ø@da±Å¦"+ÕW¼°Ž0½fš`  ˜àë¸ûä0Å ©ôEªÈD(¥tRZ ôܑZÜd¼w½ØùÁ(斪nLª%¸é.²½+ŠYo_ FãÞýtÁè9nSSJ+<ô\3uŽ)ÂÁàŽtٌ/Ÿ¶cCÒó÷âÈÛñ—ûMDr¦1ÂoÀÍrŽûž(¸ØwàÞUvkMˆ¢«46‰fÇ.)20JÜ:¦'Ύ—~ô,Hù<÷ÙY¥³@„U¼èՅȧFv-EÆt¼ÂNRª÷A ÖÎ=¿sÐ\ µ²5ÑÂf×Ó£‹b,«çГ(‰Ï¤X‰¦f Eø±–@¸Ë…§ø$‘:ZÌَ»AH4®)5ºT:t nè.¹+ +5EèÒzÖâ¶ô&ü,èèzÞhkºâÔHié¨uEnòä¦r‹¤d6³0è 0A·À]ò"G +C] r d³®yŸêþ~Zl¨é5¶t—[û Ë&„©Ç² kt¼Á§¦E<ÐêÏuˆÕ­C”ÔT`ØcŸYÔüU‚„€FÅ~„)j˜pа3c lïc–×xâæÜ©£>þÀÖ¢Ù fз?ìãS§Ô÷Ï`dp²)‡ äÉK¢Ú)+ƒW~µÂ²ö]‰7Êrõ¾(Ôõ Á-¦¼ì×ÂO&pK;½3Iɬ[ ¨eØohuISªþ†‰_iƒvEŽ 3Eíš!YÑ`øåÁf$å»%´àwlA4 Äc I˜fËáï‚kŒ7dÊÒ;¡”æáž9úkbâ?'QKïþ­!|1pO/âtò‘Š›”þ±ã6ˆNyX~ÿÁèûè…ÈSá¿:Ì1oì ¶“›Å–Ôd;üš4©"˗ü¯¨œ¿÷âñ–÷âšûܗΥPà¹ßOñm‘íLõÛ> endobj +618 0 obj << +/D [616 0 R /XYZ 72 751.833 null] +>> endobj +78 0 obj << +/D [616 0 R /XYZ 72 730.164 null] +>> endobj +82 0 obj << +/D [616 0 R /XYZ 72 703.022 null] +>> endobj +86 0 obj << +/D [616 0 R /XYZ 72 546.096 null] +>> endobj +90 0 obj << +/D [616 0 R /XYZ 72 297.735 null] +>> endobj +94 0 obj << +/D [616 0 R /XYZ 72 185.946 null] +>> endobj +615 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F21 587 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +621 0 obj << +/Length 2081 +/Filter /FlateDecode +>> +stream +xڕ˒Û6òî¯ÐMT•Å|3»§ì&©Jå¶SكãDb$–)R! ±Úß~¤hŽ_D »Ñèw7íλh÷ó›H¾?<½ùî'•í” +«,‹wOÏ»"Þª ã¨Ú=5»w»˜Ã1I«àҞ/ƺãË!KÝÝMÃðÓ!.‚ÏN¨êáj,,³(ø=RéhÝïQ¦Þ"$ ¢£:ÆDŽ)í»Ö¹NŽš¾iu¿çÃÃÈÀ}g´u ³í¹o‘ëAµîñ^Á€ ¥È0_¼?¼úÔ<ª4LӜÕi{ ‰Êà㥭‘Á…·¬%,º¡‘Ÿ¡{6iÌۅ°ó +Ãr¡0tßWcíD~úî3ï2H´¢Ž¦ÈLÄÌtm?¹7ԛᕡÇÇ*ÌsñÞêg*øíP*0ê L×ZÅÁ©u7]£¦ÚþÌ°z²ì þ6r;ôÌÅÞà àšÜ`¬@Ý0ê³\DZ{¼ÊY7}eÈ|°Û½Óžeh9^:/¬·ðÛ-•ûÈÓ¨B' RÁ•ÆؘEîdï.¸½[&¾ öáÜ:6 f$ கÃ35ꡯÍØ㦠؁nîóÉáæÚkû§èFW]À€K2VáãØ:6yYP^᪠ĸãó0‚©jÃPp ‚Ãäî¢#O¯ydT@iþP¨'Ñ?3Ñì.¤t‹èê« €ëŌӝ˜mË-Þg!¨ž¨à×áÜÖº;•q€é¯æÄÁTPY GL!•StäM‚'ÅKP¼ú^™lÒ0ÊjÀ+yù<WF.Šìþ4ãÀî2w´=n¦¤Õ¾û)V˒¸@¦y,›yX•%P¥âTd´\’™ö˜”aR•|"U˜ŽT/Ô-‰‚†$É ÌSË«¶wˆÌQ' a`gÍwc×÷f+5â*LÊeiHÔ\ZËûɸ5ï/šqж7$ì°"et$ðq£?36ǏmãqaHË%ŜdFûöÑ[jò¿$ Œ'v"$0Ý.ŸŒ˜TàŠàÕsg18aª[ÃBŽÂœ)t¢4cºÆ2€#¨©öàBwЋÈ°ñ—IIÀ;h•áÞ7zl¹;$”~+ª¹$Áhn#HÕ£¤N·TÃÂò Žsaç{óÉ1ˆ*r×ð†|‰ * ܀5öÚ­Îs•æ5דÁ¶\ÁN ŠÛeIND{ññ<™_Úán¿{Gc_ïIÜð§ø¹swSÕ ï=ËÛ)t n–³¯§¢ŠŒ¦©å×ÿœxA挖“mÏAúȗäÐ%‘k³îÍ=.”Ÿ°©*xºå@Ñ0—×ØɅ¸‘Y—Ó¬CƒNnÖÆÕÔè¢àÎmÇ$$4.F¬ +Öñ­wõûõ@NçÆÁt`™Wôå«òž"ç IUÌU üÊÓ,øï…QùäAvLåyÿ‚Ì_²Í«bªÖ–ôLýšEÔÜÆIÎmo=@"/ïtot`áª$>ª˜ã£R{±$*À*'9ÁzÆ,jϒ“a«µ[y~ðc©¢TTç±Nɕ ~kÀåÛBŸªÉ XiÁ7_†¤I"y¹aµåx˜ÂA[ò§JäM —F3;ÜÇZÖ«<“YÉí Çû-•î7,‘™ÔYXD8nÉaëG—ÞŒbNZ€„(÷®›±KúÅEF²åL»U†ÀÉ…©ñw ÅºÎ4o·gxŸ@œ%EŠÓ&ÞÔBŠtö¬±ONô¬C:à8myCj^ XH³(ä‡ömr¬ç2ºu2Wá"m‹ìµh$ê¸Ê(K»A8“ߐ¨ÓЀŠ5§L§„æ¹2Nƒ›c!Å"¢‰{ìË ò´šZ¬# ¹|ÔôC´–¯ø D¶@vÆd‰ ï"¾·<®¡Ø7¯” !h…2Ð,{å¢ßÃÎ7 ê²½ôLYk®hØSÇ^`B¸(0óŽúá×GÎèËi3ãiÓÒÓ£AþÆì¸ìài®–§iO&øâ£)WÏŚqS*—}¨aü¹w{HÇÄÕbÞg@+ס!ð+Ù&H©Û#Ì&ÜüòEËÍ¿R8¦‘"Îí ÕȞ·b  >PÅ"|r Y™€m´OnKÿçBQ9ãÕ1lDxÓÐKF¹nR +.P{¹L |n?˜vúƒ¼Ó·æŁ;ÿ.ÜÓ î)àKå¹àëD9°ž'1ºw bþ(ÆE[âÏ¥8ÙÆÕbJ¹úDm YGüy-¶q= ÕJ +ÆA ¨Êþ?_sÝÂ"ù7ˆ%W¾;‹*¯‚÷ÿZÄqæ)¸&+Â<“¬RÙæÙŸÞüc úE +endstream +endobj +620 0 obj << +/Type /Page +/Contents 621 0 R +/Resources 619 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 614 0 R +>> endobj +622 0 obj << +/D [620 0 R /XYZ 72 751.833 null] +>> endobj +98 0 obj << +/D [620 0 R /XYZ 72 593.136 null] +>> endobj +102 0 obj << +/D [620 0 R /XYZ 72 356.897 null] +>> endobj +106 0 obj << +/D [620 0 R /XYZ 72 231.326 null] +>> endobj +619 0 obj << +/Font << /F15 437 0 R /F21 587 0 R /F18 434 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +625 0 obj << +/Length 783 +/Filter /FlateDecode +>> +stream +xÚí˜KOÛ@Çï| +ßX¼ÌìÓFåÒªT걊rA²„HàTÁ "õÃw×»qlpâ8! +U{É>2óßÙÇü2Ñ4‚èÛ „öóàä쒩HÒLk n#©(ÏX¤1¥ ²h0‰®ˆŽ¯ßÏ.9´µtv(©‚ÔŠ”ã—ÂĉäH˜o®âDg*#×Þµ±D|“Œ +%½@Úc Þs á²–%4P%Ùr Ji›–”ƒl„‹ÐoF™Â·ñæ¯ãMw1óX,ÌèÁ›Ü›|ZÜùþŅkA?,åÚ6ê­oÑ¢Œi&íWÑ% ©Ráb¿Ìó˜iRÌl“’'/·Ã±›{q}EnæqbG“Y>õÅ]°â~<ž¾3óRfj~â9–‚Œî½ª"§ žzÏ«1"^Ÿoº6TT¥iØNËQ »Ý´:êßmRÁ¤~0¬SiØ¥îŸ;;ëTWêÚ_¥òô÷+:¤úï`Ëpdìð¡±ÖF͆-=À?\F>%[fœêîƍC¢IMòÑ$Ž¦&qàý`£ûÂu°Ûm˜£×3Gڮ܈oQ¿XÖ¥3ìÐ-¼‘ÇãØ7¸o¶Ëž]0µàV+6l`Oúý¯šŽX5±š{–MÍèXFy•­%œîÍÓâq¾¨/‰ËgØd`‚ÒìýPˆ½ /eϯVzÅåÓ.¥,m)Þn_>¦ÜžÔf@“.B6•†[*õªÉ؎ŒÄ Œd{×d`¤Ø›‘؇‘‡«Ú°;šæ¹Á! ¼M¿°&šm?þî¢Pô ¯¬“·ú§„ehÚö—+O)Ï€EêRW™Kn;6P2³1–ÌTš˜_£‡Ÿ÷æµø›"Õ">€ù‡­{»˜?xPøZè–T6ÓYžWfóÛ7FŽãEuRnÎäK¢›I…í¦Ûȋϝ÷³ûóa{±!¥Öe›ƒI››JÃ.¥»~í™ñÒâCAZÒãZú¶ƒ»A·éŠÖ!‰q > endobj +626 0 obj << +/D [624 0 R /XYZ 72 751.833 null] +>> endobj +110 0 obj << +/D [624 0 R /XYZ 72 274.082 null] +>> endobj +623 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F15 437 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +629 0 obj << +/Length 1872 +/Filter /FlateDecode +>> +stream +xڝɎÛ6ôž¯ðÍ40v´/í)’½hÝöÐôÀ±h[ˆ, (*“É×÷m”%½˜äããÛ79Ø\6Áæç7¬?ß¼ý¦›0<”imŽçMmò°8DA¹9V›¿ÔŸ»"Rf·òHY£+Þ¹]T¨ç]”«î EŒ!…êöµc´ºE¨3cªOA˜˜¦êå‘5ýиº½Œè„å®#C7ØÖT &bà ¢Œíoû[FÒmåaa¸=ìöI˜«#‹ºûûø 轓C’d¬Ÿ»{ G™ÒÖàÆëaݕmÇ2"ÎÕXóøöCO-æ‡$N6û(ö U3¡ÌŽÃ›‰ã’’ïÑ+&ì» ƒ¨$_¡N»Puì+ÇÕ]+(g¾Vûçºrמág Ø´#ïãUtÀ÷Æ/jÁ$_š¦áSe0¦ FÐÕe¡ŽW1ENî\·í¼·]oOµnØϺ©/ v{3¬>C9Öº¡­´­„ÊM‹‰`ÅøD†/®¬@4*$õíðݘًÿ9hŠÿ4Gb[fª7§³÷_viz rE6,ÑÆ ”‘ý}ÞÅàC#ãПuß ˜€ÈÇE9˜(áxyªOœ ‰z¹¡t…X"Úgð" Á)[ t¼>YQ{8 ›n}8À©nv,8ˀa9³'M8¥€žð¤”wÂìùZŸðåuÍòTÓ$Qæ†8U…,1Ýá)ÆBˆÀF[Šq½¡Þ˜î–Aj'‡1i „]’ǪHÜ+#`ü“–Ï/8«ÛžÍMfM‹±ôa`F¡zÿ²†«z*ìže¬ŒöÜ¢3 Ô¹}ÉDا L;†"vÆ"½‡ë©P½6څú1ÜrO… Û £žzäM6[UeR>_p˜ • +õñ m Ó5ði€ÓfÂ"dÚàH+´dÞ qébV«í1Ÿø‚B:Hï!HKDè;^´f»¢ÚÀIïš{˜hÀöśYšÂ¢Kd|ýØiČçÔ˨YœR¡ð©pðòLÆï3y’;×T¸&žk:rMf\Ó1á5å»Åè†1ïÑÿ¡j¨!sÑð7#uÀKR V&¨Ô‹(o¨ñÆWTßÚÁWVðA¬ +CRSys²L¹÷ +Hìr¡ªøf´Ç´/Á‚³¤Öçºiü%Πò +FûÂû»ŽýÜR\ßQ<:s{òÃc$e2–A!Oâ†È›%æ$C»‚ëžÉ7ó˜ð´q¦îù »ýNb{oRWatt[F©¡Þ¯É0¾AÚ¦eªÞ¯€÷EÀA+çf^²º¸À¥‡ ÒyÉ¢ÜXÛÙ¡6â… ÅƟ54ÓÂQóÒ;MQ D ¯@óCÕ»j·>ísJç9ÓÎa¬lû&­ìTßûzŽnǏ ±ÒN3>)óÐàôHa‚à«Ð­L_‹r…w4€ûú›A¥ú«`gYJX‘:J j,F£”eŸõB0ˆ“GZȈ|mgo”–|¼Mæ\Æow҅-æüe I IßÏä~2ÕXa~oˆ +ñÔÕh> +óuBJÐÆLÙÇpœ #éî(óáS•GŠáBeôEP¨wãtçÁÊô™bS×R9^½íEè`‚¬W§Àïd[ÎÙ&ßETË4W(ø u ©=8_´|œÑÓ~ûý2x=J–r¹)ð£õY{Ïâ)]i^+iulßY‡"OîÊà4GC"®H7¤IΕyv³,‡Ãiàq ɘ½{ÀØ+§Ó"ÑҎ©Ó¼×áCî^‹´i0±Â¯;ʒ ö“Nõå‚uWƒÀ›4 Eä)…LøMȸHxÀþ@‹‰+âvK¬)’š‡OÆPo |'åXËàau~§3‘ /‚M‘›¡h®f_ÝmÒ¬ Y>ºï5SZÄ(ÞøïSá–ú 'Æ /×/u7¬Žƒ¾«ã¸ë—) ÒÌÝ8Oû|LûLuÝø1Äÿõï„æéï×MŇ,ÉAÄ,8¤YÂ2.þQðëû㛊\Iæ +endstream +endobj +628 0 obj << +/Type /Page +/Contents 629 0 R +/Resources 627 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 614 0 R +>> endobj +630 0 obj << +/D [628 0 R /XYZ 72 751.833 null] +>> endobj +114 0 obj << +/D [628 0 R /XYZ 72 585.913 null] +>> endobj +118 0 obj << +/D [628 0 R /XYZ 72 328.005 null] +>> endobj +627 0 obj << +/Font << /F15 437 0 R /F23 588 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +637 0 obj << +/Length 1624 +/Filter /FlateDecode +>> +stream +xÚ½XmoÛ6þž_!ìKe VE½«û´ë†{ϊi0ÈmÑÛH)Nþýîx¤,;j¬k?QäÏÝ=w¤í;;Çw~¸ðÏÆ7—¯Þ±Ìa©°8r.·N8)˼ÀϝËʹrÃÕ:Ž}÷7ÙmŠ¨Å° +™{¿Z‡IêþÜÁÈ܊×8OÜ¢­Hð>6ZÔºµº¾üéBya”ˆÀwÀ†—ç±à1‚ðë-—·‚NŒÀæØaÌËãØnr/4àÿjkq³ +R—¯`Ùw{Y”ƒ(‹º¾Çæò[-•÷$ï†=—$i +ѪAò¢!Q1V¢#Q‰c +ޕ/q!s߯²ÀíäF(RØŠ6µf‡ŠÙ±>Xh?ú,ڍ’Wè†DQB¸ûc´á Œvœ¹=¶~IQF€¼¨HÚ%êވvG p~ä.oQ0È®_˼17m8‚°]ky›7&[s؏#h†MJsô&c‚û‹\)~ÄîF 6 8…¯·¤;ôÚ¤;셬H¶¹4Q˜Ž9 ¹âÃØÏ7x«uêûîå“‚6@:áÆ6¸¼^Šÿ<èqŠšJ¨A‘ÿݖV46փèkN’°iԡ㻜`짘cR Û1qd[õz+/¢)Ï¿æÿŒâvǐg“à%G$ï%WFÁº(¶¤’=ç,•]ƒ›¯ìÜxt@¨¬”©v3tD5ÛÀ²]-Z»O-L‡¨m<0Y¨>:ÔÜ.yЍC?Ø@2—Šµ4x=×þ\Ñ|èh<ìÅdF…áèªöŒÍ¢9™‹´9š +cµèûZØ-…]4{:´äÃì¾»ã-GÚ@,|Ñì ƒDó‹bBžãñäs€Ñ— âBך,™òByAÃNPpZ»k–à =ÉaŠ9\1×;o¤ÙY# 3h¤éԅm~CwÀA(N-¢ëuç¦^žÞž/1A4ë¨X4ÙT4$l8%³h…jhI7Z7£¨úDfQqéÍ–ÆÁrK®o¦Íb8é Ø2"?ußÀ-p¶u¡¨3}ŸYµf±@ƒ£¬ i¢ÜôÏ(3D€•y1š pO_3v#:i¾ÇVvu­“ ³­ì«£‡ugFªN´—ô,HÝÛP +‘d!ï];ˆ +£„\›ÊFÑ\ҝ_P™ooMÝÈ}Âh¤ƒ£|Gîúø㇠çJ«ÿ •O &Á ÍÐK2ò‘…Ñ'Í0äîéE ¦Þvº=ÚúA$ç4ûß,•ËÉ£%b^–E¶\ónÂR)ʛ<‡æ U?›Ž¯#_³‹iÛáÙÃ3 +é=@€¿Ièö£4íBaJ Î)Šèú„~W4pg)Z&VshÎ@ë^µyjÚ:©J ·6€,€îÔ ‚¦\쌊º‡‡IóÂÞB[¸Ûè7ÍÀ£UæSûMáù"v{ºßô2¾" Pã<6wû\·íŒÖؚ#¥¢WJ9òo©Æ珐 tdk‹dËÃÇÉök`ö‰\[ + ]ÙÀ×J¨rTʔB +õVӍ£¥ö^hái3…n Q£e|õ´îŸMt¶Ý¿\~ÚÏ_šÛOaofèû½´t_=:Yàš£;xô’Ûa¹ƒˆ“¯ê¾-é«/†ËÖôÿ.N€ÃQ¯æ«wAâÄ^ž¦ ‚[³ØKü ÆÄK2FŠa褠è3T4z>ilÒëœ÷_Óxe¦8.›ÍN‡ÀÎNU®iøèǾ0²ÇÐæ^”˜î<,ûL°l lø°ö÷Ý3ÀO˖dD6NŽ`²”yIb)&ŠÁ@ŽæÚaèe,µ˜¯ÊxÜu7W¢á-V«º^:„Á>?í>z"œ±yá´8ñâ4xo)ø'Ž‚v’„D|„òºR‹5Æ¡—‘‹Ãò¹ž¦ï¥èÃlv:|Bvý˜ý_ÐÈÊbö'Ò!“ð[w*üAe×òê5ÍsaŽŸápü•raà&π–|]š¤Ï€–~!šLe;qëÿs9’-v£§[›¹€áwæÎêø`_h;‰ïÅQ0µx¾sÉ«Ånç^Ljº”¡ëÄÅîõâ?󡉆‰³NSÏüðdÙ¢ê÷—ÿ:I(A +endstream +endobj +636 0 obj << +/Type /Page +/Contents 637 0 R +/Resources 635 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 614 0 R +/Annots [ 631 0 R 632 0 R 633 0 R 634 0 R ] +>> endobj +631 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.26 465.149 367.076 477.769] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +632 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [378.091 465.149 496.978 477.769] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +633 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.352 379.429 394.806 392.048] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +634 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [406.618 379.429 526.143 392.048] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +638 0 obj << +/D [636 0 R /XYZ 72 751.833 null] +>> endobj +122 0 obj << +/D [636 0 R /XYZ 72 730.164 null] +>> endobj +126 0 obj << +/D [636 0 R /XYZ 72 703.022 null] +>> endobj +130 0 obj << +/D [636 0 R /XYZ 72 546.096 null] +>> endobj +134 0 obj << +/D [636 0 R /XYZ 72 449.417 null] +>> endobj +138 0 obj << +/D [636 0 R /XYZ 72 349.251 null] +>> endobj +635 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +643 0 obj << +/Length 1996 +/Filter /FlateDecode +>> +stream +xڝYKÛ6¾çWø(#kV¤¨WŠ^Ú¦Ezh€Å-°]²E{…x¥…$gáþúÎpHI´iËéÅâ›3ß¼ép±[„‹ß߅æûóû~É"fyš&‹‡í"NX”‹EÊ3&Â|ñP.¾|zøÖ¯r&“˜ÆŽýð[-RØrÜËc–„,Ô+ÖÇ^-Wqăì}—«4Oòàoê>áGÀ(š¶T­*ŸhâŸ09M®+˜ía€Ó}­+s¡¦KÒ­­ãñ‚s–DZ˜¶œ%‰aêc±YŠ4x^®¤ÈU/Eôíq™ñàÆbÔ8xÁßõr¿ª­ê­/èÓ7}±§f³5ˆHçæ4gI>`ò¸iJµnš¯_TÝ·•êž¼äò¥Ql7irâ êÌÕ]WíjUb/³„l 0 Jõ†|œ4¼Wõ®fZ~+‘‡L‚ÀV\2):ü¯e&“Èó n×7ê´ª(©Õ?›ù}ÕõÔfõW_›Òµ)]«êk;êµíú¦Uѝ×¢Œíòª>¹µhÛO?úðò”ÉŒŸãK,Ûi‡e\ó´~1dúeJg‘=˜žQüªŽ—«HÄüÂQÀ1ýÊ|‹ÍnÒjƒÝ¾¡ïÛ³þZ3œzX2a9ÐlYlÄCmœ3(üò¸Ø¹„tª'H$*Wæ"ÒhJ’àPÃ2­-ƒ‡“‹\…’Æ”²á¾ôdÓ©B³,Èû„Ê#/ó³|ô"×Ù'Îê„m<ÙRG`@"áF£`Ò§µ°Ö¨÷dwݘÒjk‚@ت¤>é·áGo+G-i ô u!¯•*;B”"5‡#jðMØó‹Ã–&ÜÚ=µZ­µ¬šZ1벧.ï ”±p „‘±“-²ÓHHGM8Še©]qÕÔÚãÁк2ë xtS™¼(Õ4a2¤Ú½m§üB•,‘+T0¿ŒGÀ@ÕM¯$:Jµ2Öqæ'®WíKU+í<åhxØiÌW‹YKÔ#<äø©×|¥U›†‚EQՍ~-:òËR”4Ð>žúçÂÜR´Ê¹Wj À¯ 3VvS6ªz³?”Êȝ$Ê]|EGJ×_!A¨¹êõhÊ–dé$ô˜Oò0µažO¢=%¯{Û= +щùõj ø®nøú„Ï–ÅX–a,ÃΫ ßÛ¦}1F·mÌBmkY` iklò‚cZóï ç ÑÑ ûuKS3ªWF‘̘̏nÈτda:®AֈW[„ß Z~ÁNÒ¯|rÄÖ(ØÚzU +¤%“èä:±¥֘9þè£Êœ<%*ž% :ƒkBÆ– '‘L2ËКzhM%ËFYÈ X&.ÁUX[ëۀ\O“<1ӄ©’fªºW˜¬©Ö‹«!bJ6Kk<Òj3êÙø¦ýZ+6úg 5ZÜÑEßòúžÏ’g ÌMà`IìâÎC Óìg0þ‡50NðMfÚwÊs +˜ÄŒ"ä9(žC'÷™8÷Ùxš±XÚӓÛ«Àj \dy˜DÁKÑ~5óF +«Þ‡ gÐê[Š}fÎå­¨žOKœócßù‰ç|‰U˜“ZæHÍ@fäO#'Lü›žÚ&Ë>¡€G18myÝø3 …÷ †©ÇÌïªx4\~¿ùSCìul߬ӆÁêÍÝáù,ÙT5ÕwÛ?Ö¬sM'.¦.z)¹6V†/+ø­ºäžo–8狫%VTn^ó? +* +}³·LF—ßTS%!ãIzZSɐ¯¡ŠJŠÐäË0äI?qUT¸`‹Jkɤ“øøjq–fO®Sõpº9³_œ):“øçËDbfúFÕ¦îæéX+ñ„ê7]ϋà¾0e8Ç\º¨©…öa¶&h"î ©É¡¡¾-u¾¬iä ˆ;7¯zK}Ržäù¦ö²9(岘 ºQn¶zv«9áÕYmƒôKƃ.Gt-ÑÝQc­…¡vU]Wú5ƒ¶Ùu65=R÷_Õ6óeDv¹Œ¸˜>nm QJ'ÕG×u…^›6G9æ;{£ðÜxƒ·äçÞR€·¼<Óì«Mþ ¹Ÿå$v^4¯p2IMëÃËZµН ÇínAûßß-‰Ü}³sŽ6}ÈqÏ ½~u&)L¶AX–›gm´°‹ÑåFÉÊY<&é/d7ÈF®¨ZÿÜ6‡Ý³gpt|zo1^ñ;K?ÔæhÅݍ"õU‘€jxóEËvÈ%1<_.mŒ´RÁ—R“Ùዂ~\ßàۄ«Ü¾²’.ŸÂœÌÂ{`öÚø”ó½Çm¦³ÔMr_O«^à|¯µ/‡"ÖGûbq›&f³D¤Ó¢ñ +B6}ف©öjÈu¬¹\2Ï÷÷Ÿï©ùËç?ýôðé3pó筞%ŸUÃAýð¥´„½Uû=µêÆ`º6ëŠõÞT‘Vè£ûK®‡Ño%%Œçî_:¶sqNY*rO6yÎ{Õuó ßY^Uaø|m›Í°·ë‹¶×‰‚fÝ,‰.ý[eHv’y>ËZ>²VڇÝÁM_Ì3¸—K]9噓•Ÿíýøðî?Ú» +endstream +endobj +642 0 obj << +/Type /Page +/Contents 643 0 R +/Resources 641 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 646 0 R +/Annots [ 640 0 R ] +>> endobj +640 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.187 204.856 208.116 214.154] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +644 0 obj << +/D [642 0 R /XYZ 72 751.833 null] +>> endobj +641 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F15 437 0 R /F34 639 0 R /F23 588 0 R /F29 645 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +652 0 obj << +/Length 2113 +/Filter /FlateDecode +>> +stream +xÚ­Û®ÛFî=_á·ÈE¬jftÝ¢iÑÛ¢Xì.ò’²4¶…È’«K²§_¿ä#KòœK6ûbI‡wrè`sÜ›_^üüáîÕ·?‹h#„ŸE‘ÜÜ6‰Ü$"õemîÊÍ{ïíaÐÝv§dæåuM/E»ÝÉÄ+õç­L½¶+ \ëæ8œzú8å[@ù„?!©·‡M©§õVx á”z¢T¾ +¼á¤oÖ:Úßé¼dâÑ/†–Y¬iOûq¼Ð¦!ß×Úß~¸û;¼¡†1 ön›Jà}_š‰÷>b¯/¢Ñ ¼2œ:­iuE?ödàvèþoxÐ¤Ý §‚d³“cÖ§ð—8ïwaxÿhoé/Ђ%é¤òÛùRWè·êâe¹Œu>è’ù´B0æÈ2óË¥jŽôñG€:T…&ïÐÄÿ°p3”CÊÉÐOÿ†€ŸâëtßëzÚہfG¯¯m~~M¸ïЯÆÜ7ú¿;¹M™«8¬J ë&è…É{~Ò¡;쫁^Ʀ¯ŽeºjP•ƒ>êÎøÉ·?ËxùY’Äx;ùqÂ3öã”Õ*Q©Mˆ@Dúl È»‹”ðÞm©÷mûñ¾nQ¬ûÔôpÑpYzß €oÄ1¾Ç=½åöÙÐó*~UaŸ˜Zæ]ê‡à §øÑFðžTÍ +'uÌœ´uét¡KmµZXØ À8-k"œ*ƒÄOÃI· +0Ò;¸*òU¨ìÆe܂aÔB4%#?‰¢¥#ýˆdµmu†ðS%ì¿?™9HÈ¿tÇy jʪge4-!ܦÆçÜJha» Uäý³£…¶^xÙ¢‘‡Gè͌â?­–îÿ¦ Ü.“)Âb¯m4-æM9Ãú¼e‡Â•Nn_«:ÈHyeü(ÝB¼¶Á$„ˆŠDêÄÄ$7žñ—|‹Ž9þ@õš×)gõLªu™½5¯ÌÂÉ.2\‰k憫7 ˆ$ϔ-|ËéQWhA\3ü؉&vÞ)g Ò€˜xg¤M.Åu£ KZy½ª€î‚®¤‹Xº±ª‘JªÌîtb,eÆày­Ð=Ú%“žÎ „Öëó}!v6Ѭbò£Ê1_Vg ÙªmúGB^úQ’Ù}}‘ƒ«ôÆbaS:T˜B–Ö¼ YIv³Îˆ£¶Â¶)Òëó³&вa‘Faoì΁^¦FGÌteÈžiå`)ÌQÖôV`*¿©ðÞ¸|´ËÏõ Ðmz3r€oïH€™! pèÚ3½åôèÏÐ!ZJä !0ˆEÈÅ䨶ï+SgÙ@DßØ$‘эMVl;êGkN0¹Nx\¯m•>´5Ä0fŽþùê›|Uõ=WMuÏ÷ÀÄ'è!|oR#f¿`Ó7ôòoÓ+ay>ÔmŽ[Éû±¹äÅÇUCe:¡u W’jû»,ªáòe5ÜvIk=°|» Ê9‡¹|V Ò¥†R×C~ÿ)άäÓJ¤Jxÿ“¾¨‹y‰BînŸÕ€riÀXÿžmóX>݂I`½Ùх1VÉVG§ç÷—Z6|V®Ð%W¯ÿuSàMîþò˜\b’k%«më-&8–òPç&×¼Ì ‘Í3aâg…©ÄÂՉéIÍýB™»d³ +‘%öˆƒ3·$җ‰ZH8$H¨ØO®U+z¼ÛGc‡ë_–opì/‚·¹BízˆF/º +È¿¹‰ôYå]ëj¡f®‡Œë­Gj¡ 8´-?‘“6Ž}á5dBÐu¯]T„/ñ¤É¢ÄWñ’S!&®ä~¨¤¥‘ÍŒmƒƒ5Oj'ŒožR¾Cæe!ˆr ¾TÝ«à$”}Wt +gx.è'WE]Ó§ ¬Œí×ôÕæZÀ¥k/ôéLü×K"œ¯1"0e–´W§ï^*xò¬3ôÐ?i¢ ]W¯-c̒iz ÓCšüÞuxu{pxÈy¬‡ +û<(äOÜe•ò«îmo]m¹~z©/¹‰ƒÕäh¸˜{Gð<†’»R/Ûm˜±Lˆ=s¯;jQKZ1…—æwéÐ4«…/a¼ +:ó¸(’>^i-¿¹GÍ@M;¬ïÊ×ÁÑÞÜìØ Dï=_ +¼“†À Ä«½é[ìŠ;Ւ¯ì#Ä5’h| w'_Æ«!Äۆé×¥½vÛ®oæZðѨdxMÀr¤Û0¾ç óò•ƒ÷Ûk"󈰊ŸÆÍ^;ЙxM??èKÏ{øY@bªÀ«u9kžºëÚÎÕ×Ʋºê§Éøo'«ÑÁŽçlK[¬G"{œ§R¸Br“ÿëˆc‚³ñ°4B«V=·Ð&¿ïôe«ãgÍ@ºy*b$ˆ”]玮»lèË(¼ |ù ÉàžGêîÈI‚yçù!·ÞJãþŽ¡d¾JÕRçó2ÏÅÆu ܑ²lŠñÙÔŒPAWˆ–0 @èè ¯‘ãx¦l„_•‹¤l|{ã.€a®¹âXÀ€5rRÐ2SÜ Áq¦éÿF»§Ýó?#˜+šT!oŽÌü™„þ˜‘q<ñ†¥‹@ Pã™K¤0zH2š†aÔÀRž”ÅfdhS°6³ž8¹Ÿø¼“æ{_5¹QàÎ<—n9žGÕԍJ b˜@_ý]jÿ œÈ?ݽú/{Ïík +endstream +endobj +651 0 obj << +/Type /Page +/Contents 652 0 R +/Resources 650 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 646 0 R +/Annots [ 647 0 R 648 0 R 649 0 R ] +>> endobj +647 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [235.763 443.71 297.034 453.009] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.2) >> +>> endobj +648 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [227.294 434.246 288.565 443.544] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.2) >> +>> endobj +649 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.465 377.459 309.736 386.757] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.3) >> +>> endobj +653 0 obj << +/D [651 0 R /XYZ 72 751.833 null] +>> endobj +654 0 obj << +/D [651 0 R /XYZ 72 701.438 null] +>> endobj +655 0 obj << +/D [651 0 R /XYZ 72 679.769 null] +>> endobj +656 0 obj << +/D [651 0 R /XYZ 72 657.437 null] +>> endobj +657 0 obj << +/D [651 0 R /XYZ 72 203.763 null] +>> endobj +650 0 obj << +/Font << /F15 437 0 R /F26 612 0 R /F33 613 0 R /F34 639 0 R /F23 588 0 R /F29 645 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +661 0 obj << +/Length 1119 +/Filter /FlateDecode +>> +stream +xÚ­WQoã6 ~ϯð[ v%[–ì¾mغ݀ –aw{p%æØ9[¾âöëG‰´›äÜ]Ò +TMê#)ñ“‚mÀ‚ŸfŒÆﳇ'žœÇE–%Áb¨$P<V‹uð><Ì£D…Mיe¥ãy$Ò,ü®ëú½žG)|±;/ÈpÓTU3ͳ©·¨Z5Þy­Ÿ¾iר®t½µ;’Mgç/~yxJdÅ…R҅ñ,–,‡QÆ2Ï1Ž†i(0dÜ’C ]Ûöó<ÊR²G4''ÿ‡TÄB +\&¹ˆO‰¯e¸Lz Pò ÊH\”~CFÙ5@â2’×eo9 ”‘ºHN¥f”_¤^:mhD ¥¤~†Þ5Û[TØ¢9¶hîZ´}ÆBSãwÐèUXÆ\‡ç¡ogÝYԟ0z}šg",«ž¦Í-‘+@QmshMiI1R‚³jP·3Û€¬ï{—±iu×W¶Cñᾑ.b u3òê0|ސ]xoÀKSðü눛ñÕtü +܀Ç&à—Vàü6À¥¸ïMpqþ7`Ã)x~i ܀$'ñ}ùLJh~F¢i§=D~k¬~n…~ˆdGè´ïÔwŒñ;͑ËÄEƒÁ0v¶õ—‰“ïþÕm〓,E6µ¾ƒG²T"ük[ám×ÚêvÛi꺝ƛÔ)ÏnR§·þç†ÖÄô@(ý}î·J1ÿZ`\Ôƚ¦Æ+ïeÃmø=~ ëSùj»ˆñœ& +‹àoÚîì¦ýõe<À?4ÞyA°•.[a§xXÚa¢É`ê~G¿„¿«”™:À€²&„‡Ÿ{È7ݗ5N×ÀV¦£ì°Õ„øl†…Ç ¨} '*IÝéþÓoéý¡?ö†=Ž6 ՜ÔÖýü)_ +Oþ+ëñ×ÒÆF¶‰Æã~J<ÃøãbÆA`:,b%¿Š<Γ> endobj +658 0 obj << +/Type /XObject +/Subtype /Image +/Width 300 +/Height 200 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 18 665 0 R] +/Length 1102 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 300 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^íÝénÛ0„QÍå¦ÅKÒ÷ØƈAëdXäÄù€"•#—}¯‘iÏ)¥”RJx-€°”°„%,a KXJX–°„%,%,a KX–Öü±]>…UÔuû5|¼ër:,Ö¯íöïú*¬ëéc;.Öé kÞæWa}ÎsKXìàXga•5oçé²MÂ*<´¶mVa×ùsj„¥Å|=.€èºæÞ––±±„%,a KX–°„%,a KX–°.'aq†XmxYY¬Ë©í* €Ì"B“Ë"V³ÈU˜ü©@¬—E¬V7Û]añ²rgVßXÂ:÷‰uî ‹«0]añ²ºÂâ*Lk¾6¸¬¾°¸ +C¬Ž7t4»XäëlžÞâJ„…öXÂz¡{'—#¬Ÿ´{,a KX–°„%,a KXÂâ6;€Ç°™l;,ÞÏæXÃf°-±òÓþËéXœ,>7o…•ŸöóÅ/¬Ü›/þ·bw‰ÅރÅ1lïXçæXÃö‹ÅûÙ‹cØ̶!ïgKO𼟭°PºX”¿ø…ÅFÆÂõr¬·ÝRaÕ׋«Öy'X–°ì»(¬òg¿,a3ëËàz>³ ·¬,ß1Vœw@ìËóÐ)VÂM,õ‚•`í ðßd}`9 yjõ…åË`bXÞ1ôˆe€ñG[,¶&¬’ +/GXÑûøýʊûÃâöÇ#Öåôz,üí̂ÛáÏíb•ï1PšXê$ïÛ㣷?ˆU¼Ç@ibe¨Cg?”–-4€ªy,J+KÍl¿owê±(M¬–Ξ+-%àÇ?³hž=ýùßPXðvëÄÿõl/¬Èã9ó®1Ûñ±ŒXùhÊSJ)¥”RJ)¥”RJ)¥”RJ)¥”ú A.)H +endstream +endobj +665 0 obj << +/Length 68 +/Filter /FlateDecode +>> +stream +xÚ9ÆÿÿÿÿªªªUUUãããÇÇÇ999ÿÁÁŽŽŽrrrÿDDÿ‚‚ÿ¬¬ÿnnÿÖÖÿYYÿêêÿ˜˜•v"– +endstream +endobj +662 0 obj << +/D [660 0 R /XYZ 72 751.833 null] +>> endobj +663 0 obj << +/D [660 0 R /XYZ 72 497.716 null] +>> endobj +664 0 obj << +/D [660 0 R /XYZ 263.991 188.865 null] +>> endobj +659 0 obj << +/Font << /F15 437 0 R /F26 612 0 R /F33 613 0 R /F18 434 0 R >> +/XObject << /Im4 658 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +669 0 obj << +/Length 1531 +/Filter /FlateDecode +>> +stream +xڝWKoã6¾çW訵õt{Ûn·Ý +u÷² F¢cÂ¥%¥dÝ_ßiˎÓMŠÑr¾yãà!ˆƒ_¯b÷}¿¾z÷1Ƀ$‰Vy΂õ&(YP&UÄâU°n‚/áý(K¶JÂqËG¢äxmˆàS†½1ò¾µl,IØ9©FhX³gµÜìén¯Ýwû V…B䪐 ®# 9ñý6ý'iǕƒ£…ö(¹GèvZ¡Æ­£¥£Å2ciøI-n׿ƒæË$‹²¬ éV™…üž´qx,í‹o†wC+~@ty(7tP÷öB#ž»× mAÚ(ZÚC¡ýc­ì¤â£hìc™7&>× +®‰t¶¶”»èôJ:þI.°I¦¤ÙŠæGTîàZÿýe}•Iä«¨,ª ³ˆ±,¨»«¯Wq´Ê²UeYæ´=Lc»0÷…ÍwŸº<øÐ_ÝÀß¹,ÿõ—^âr&òBÌ%eUYdå*ª疏òaB£¥¬óS݂/°[¾^hÑн-šþ6¸EfDJ¶ídFÍGÙ«‹¦üqj-Y…ˈ?Á-×í~Q±œ˜«PâëELÞB¢×òÜÜÒê(>Âìÿ½\¹°|ôFÀɛ:PÒño¦`X’§&0H‹áEÛ\y‚> +‚lHŽ ™p!žÓ˜‘´8 ew’î6©Êð}™†|Öæ¹#à*ÁžËÉ~deVKC$·þ·×iChUɺWô®;WD „"Õ*ͼYî¼#Ñz…9©“gi¸^Tì;‹Óð¨¹d0û2y‰‘}Ó°vÕ¯zælb{’ÖZÇ P¶îµÉ€.¨#Ègzïʏ¡ï¬Ú¢ÙXU„ƒîNˆÌŸ°ôATŽÄ¶2P qöXZ‰ätî1àÖ< žôÎ]Úë?B÷DÝKÿ u.n]ƒux뚖œŽ9Ðí$NTËIµ~)Q&µ™j¼¥§Ã ùS‘Iᐷ6\9^Ûº§Å8ie\Êo]ÆlUÁø"ø2ÂGÏ©æÀ½sϑָ‰ZG^‘yUøùrŠ£#ªƒ¥°}³ ;†Eg5´¾ž,‚º¦+6ÄðÈ@Úµ{Ú4;98/»‹Rщk}`HÎeC÷MHjaŒMØ<\o…{nˏÙx)îޅêv©ÏAÝ"¿ÃyãøT?Á=JÛÏ\}Ä/Á,0;ji0{irÞ¶C¬vdwš#RÝù¬››Þ½½O‹{é` |…~¡Bpçæî;òò1N|™ÀàééÏR{~Vø*€ +[6SqiWS‡Ý»äŒNZ tÂjÞ eZEéª$”ŸiހÛâ> endobj +666 0 obj << +/Type /XObject +/Subtype /Image +/Width 300 +/Height 200 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 18 673 0 R] +/Length 1080 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 300 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^íÝÛnKFaªOsàdçývc›­_1qªÃ ºgXKŠriòáé T¡ìÖ‘™=, ,°À , ,°À , ,°À ,kx;ßÁªêpþ5¼½=ë¸ß,Ö¯óǯã°û·óv±ö¬á<< +ë}\,°ÔƱN`Õ5œO»ãyVå}x>`UvÞw°X ‡í0°°®kî X,¯X`X`X`X`u܃¥Uaµ]DÐe¹XÇ}ƒUK‹Í.KXÍ^@­Âø·¡°Z\–°Z½€Úîè +K—å݆}cuêëÔ–VaºÂÒeu…¥Uk84¸¬ž°´ +ãcµ½,a5{Xøu6Ooq%`Y{,°èÞÉ倥üVX`X`X`¥1¬;€KcXgÛK¯gs,aïÀÚgK±–Oûûg`i²xÇ0ÃþoÖ¢i¿~ø»Ç2µkÁ[?üOÅ:ý3–LÛa©ç`i {7Öî9X§æXÃö‹¥×³-–Æ° °OÀÒëÙk¹ùþ5ÔëÙËä4X ‡Î±$ÐKõŽ%€ÇcÙ¢ú9>ÀjP3,µ¬'üі·!X`•¿*œYõÏ&iýX`…œs7XÙbϏÙ>ÊÝ`¥Ž±ŠYLѬô•,…œC§X£Yø{ÁíÒÜ'–Yú"ë+šIZ}a³éb0›•.°Rº0…hÖ#V6Ëú­-–šÌ2X5U^X%¥òõ“Uև¥í[¬ãþñXÙ,}žYq…¼¶?„U¿Ç ia9ԣ٘¢Y^㣃¶?„U½Ç ia9Ôa´K1¯à¡Ô_h0©úX’–K]rÎë{»³KÒÂò©»#³·ý–>¢ñ·?îÇ:m«~ûÃÁò¥·¥í[¬áP-íc17”´°D½),«n±3Xíæú`mâxzXÿ¯À ,í8¢v"Àr­bÍf°üf³P9+V߁`³yW·AV6›bõ–Å+x°bЉX“6HÀZ¼v–„§Ú °Æë™9³ê'éXå¨M]°Ü2Oð  ,°ÔëbQ©~;2¾ÊSFø‰$U÷:Û°fç¯*’ùVcåw¯£ÅÕcMæcÍW’[­Ï/¸”šéËlsZ7֔¢ùXÁl¼~ÿçϟ‘W ö‚Å°f,ÿÄÉ$™oGY¸ÎF›v+Ç*9Ï>VI©ë{%G‹ÁõwkǁŸnÃÛÃ?û§{x)¬ôÃÍ6%s +³9çÑ,‡WÀ +É,ýe;/xÐ×ò `•h6ß>¥¢Y*ƒFÌ?+M5àÛ?³d~zûý6+š¥üÑ IúölVÑñì¼ktÛ>V–ÿM}DDDDDDDDDDDDDDDDÿV+*Ô +endstream +endobj +673 0 obj << +/Length 68 +/Filter /FlateDecode +>> +stream +xÚ9ÆÿÿÿÿãããUUUªªªÇÇÇÿÁÁ999ŽŽŽrrrÿ‚‚ÿÖÖÿnnÿ¬¬ÿDDÿYYÿêêÿ˜˜«?"– +endstream +endobj +670 0 obj << +/D [668 0 R /XYZ 72 751.833 null] +>> endobj +671 0 obj << +/D [668 0 R /XYZ 225.752 494.262 null] +>> endobj +672 0 obj << +/D [668 0 R /XYZ 72 330.75 null] +>> endobj +667 0 obj << +/Font << /F15 437 0 R /F18 434 0 R /F26 612 0 R /F33 613 0 R /F34 639 0 R >> +/XObject << /Im5 666 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +676 0 obj << +/Length 1943 +/Filter /FlateDecode +>> +stream +xÚíYKsä4¾ï¯˜ãÌÂɒ_lí +¨¢¸P¸„TÊck×zìÁödÉ¿§[-ÙòDa²å@qÉèÑê·Zý9|u·â«Þð³ßo®Þ|õ½ÈVB°<Ž£ÕÕ~•F«Td,âùêªZ]¯ÝH±ÖåØm$_÷›­’Ùú¡hNš†•.»ÍH*ýõf›Àà'šwNG"‘ÃãѬÚSbssõ㤨û*D"aIšÂžÑF©e(s aŠ áGÓR×ÚÁ`—Ëú7.”hµ Ÿ¦Çz#Ö¥%þýl÷<) Üjë´Ø +ŔJH—±Ø5x8JÖ»S݌4,š»®¯Ç{`}¨Ë¢ii}ßwKA?M=Ø#ݞ~ /z?lâx®º)^[4å ”¶ã1?µÇ¢ÜDÙúÌ­÷PmÑLÜq3öð¥!(_¥Æ3*É×%Y_éyþfà ÚÔ-úiìiú°1»žX•¸cÁ%w1ÀµºE=¾ú^ªE¬ã˜‰(r±¾.;Сë>ÜNÍXpg[ 7tt™&"–,J„;ZX9û®X‚úÉð­â“™\ڏ¾ 飜6&ÑoŒ±Ar΢YûÓMɵÉMãî4Ot-<‡{½>a¯믺½s tèDDisªÐ|ï¼XáÔÌNüK‘Õ}Èêm®Xšª¥‹®›oÃm·ßz ›Ÿ0‘M€Û|4Ži´Â+†©û5ñ‹’UÌò4MŒx§Y¸{YJl…ÕX®R ä¤bÎXÁ‚îB æº)ÐՌßÓe9ls¦’˜ØDEž º­ô·UýP˜¾DqQ¢"~ò¢D9K¬GݛZ@â­ÈîBjF&ibA•뢽³3N»Œ1{rºbÐÕÝu×7[+oFזVŽI,袼§‘+YÈüE™Çg˜ž&Â=fh²ØXC¾É=›U"XMFïCîSYÌ-"¦\ió||ªb©éAQ^ý2ƒ™ö˜d7ö¼Ÿ=â²Ë»@ê1 6øV4ß=.’·yrÌU7QmG}çnå™Å¤µop0.†aìl3r ž“æb)ÆL]uÂ÷n™Æ6PõxkÂæŠîR'æû;õc`ÕÌ.Æ žU{°õÍh³¬¸”y†$Ïòþý%Yõò€*IÂt=Ü{ +Î|áÒ›z€ AÑ÷Å#…X7XãbXi!¬‡¶ã{³Ür‰åÇåmȌ”C   +°ÃÒ=y;+£ÜXP ­Ì/¬b%lMfÖm}8žÒ¹Búî’zÖËB²@„ +ªÊXî4N¼üÜ/ï*ڙ+eôï' EéöhµÄÆ#=ž»ªOK,¦ÍÀ«ðLÖ¡súb¼ãsˆ1÷‚… ,Z8C†œ¡.8#}ÙÛ²Üý¬²oÏS¶lµú‹ëüT÷8¤{ªÙœ)9µ>wAîD²à*"T/¢”¥Ñä,\/JÛ!O¯ìÇFºbçcr¶HÏV[ ­až>ƒtÒé¤çH'çH'}Št`)º€tr«,ˆtvRØǤ“†QLàçㆺ)\xŠxÜt—š%÷؂ vH‘EˆÏ¹Ñúã}]"Ÿ{šêŸ¹n@ 9XR,ðÌñêª?°6Ö#¢%Ãi³E·Á&n;óh;Š@ß*a,cõô°ug&cwb¹ ƒxd¼ S@™Û±Û°‰óCq<ÂCU’p­á浅jéúà q!xÄŌÓpâá4²_È|¦…&š¹Û@¼và¹C£‚[xÁgdW!žiBJÆ¥zH/Ï^X9>H3 Ïá±8ayòr<–å,›‹F=Ìö”‚ |ºPØ"´(ÏÏ|Æ¡Yx–9xÆ'ÿq$Ï|rŒ±™cŠë¦‹Æ žÁºá{žIÉY6y 0‹Y–,™Ñ»v˜8JX*Ý}·eø“Ñ6ä™kÙ¿ÖÔkÀړV ›·³6ß¹[¿Y{;õ#˜l‡5㦂Ëÿ¡Þ+¡ž +@½øPïóŒäsÁ lã>Ì°úùM/šñ¯¡ _;åÁʳÈ?jþ§PuÒâ W[ö~Ê/òÈ+‚/R& +)#ÿ>lX §³/="¾Ò6(è`’lP‚e™+ìL˜¯°+HRúH›¸ïò }LQ™wgÆ:e±ƾ(>…Àþ(g2³ÿ›¹2rFäB_í+mû½Ó ‡³~oñÂg^3‰›¾æØÁt'®•ÇÓ¾i=Z¹Äቜ]=nçö×öM(Þ´?Ôdٞªk߅šWè~á +&Xœ’6žý‡nöº¨>ÙLNÈ©¯h—Zb$0ªã¨nÐÅáK˜'ÒÂ>œÐäÒ5r2HüÝ՛?;\± +endstream +endobj +675 0 obj << +/Type /Page +/Contents 676 0 R +/Resources 674 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 646 0 R +>> endobj +677 0 obj << +/D [675 0 R /XYZ 72 751.833 null] +>> endobj +678 0 obj << +/D [675 0 R /XYZ 72 730.164 null] +>> endobj +679 0 obj << +/D [675 0 R /XYZ 72 464.341 null] +>> endobj +142 0 obj << +/D [675 0 R /XYZ 72 204.524 null] +>> endobj +674 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R /F29 645 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +682 0 obj << +/Length 1420 +/Filter /FlateDecode +>> +stream +xÚ}WK“Û6 ¾çWøyfíêAËÖä֙>I»MM\‰ÞÕ¬,¹zt“þúø@=¼J/" ‚ (ܳÍ}±ù+țzƒÞ}î?…‡èn»3& š–Æè ë0ëŸl™Ãö –².ü}Øîèëô¬•“§ÀÖX7ŸÂ(éœJ)!¥ñÒ&˜úóªyÍóp…¤Þ>TÛ(pªdëú¡­ËúQïÙþ}ÿ+™½‹ÌޘæýËò\Þ³AI͙DŽè‡C`«Íã5Ù¾<‘iÂEf —5F‹™·@(\W¶¢ÂŒË±¸ˆ½»ßîÒÄ䶲^¡|әW·ݚm¶za6˟/ä6% ÷ùZ•yÙ¿ãeÆîO´/{tq…{>Î2x^¶àíÂ!Š¼:‘ïÁuq9ßòdë²»€¿uÿ÷ú ®$A-v,†N­”í 3¼%*Ý`fÅ@ñMœŠÀøLŸ‚»÷ÇãhŸ¦ +íߚžm£«^žn¦yåm„h:qµ9ÇñYÜӃ6kN^( +FãêÓùSÁâñ…éÿ€69™$![o PÎmsÑ=$˜ôµ>D{(û®§SÊ+ªQÀ$­0J†i;e–À†©Ü¢êj½q +ï­¸5&4A-XæÙh”$Ò¦-@æ‡`Âd:1ªÉ <=÷~c ¦°rÝt +³o¨¬°T¹T/òYp¨(³³c+ àb{Ÿ8‹8.±ÔŠW&0™MàQ®bö\C~?}lÈ ò|Ùá̵Ånî:¥äVÅ=ø´ÙÍðø„9ÇF´ÒUóXr±ù‚% +Uõ,ac>Ök%F?Ü$\p]¶|^R­Z'³i"UO¨# xAò#Xm‚UåE9Ò± +ŠX黼xCÓïŒy¼!c«×sŸ$#Jä è=s嬒QŽ¹ÅyæG¢ÚŒj…z¸µõ„£dÑʝÕβ¾9eýeôA–Ä1÷Ù^®•ë ™³ioŽF‹ O¸ð$¶%á¼f³ÔT!ΓI‡Ó¨Óç:æ|ܞ¢$IšLBvžqB äIÊ0­µg›3/s2–xfʓ¼LQâ 1ëe‘ðK_P Wó$›8Z× U?¯1fڜ÷A´\ëƒPä Ðr¶]-¨ 4×Êõ»³ôŠ'æ«íúoC¥ÂIîä+γFK3õq^9RvâÕ>úþgVfޒ”]sÞi‚· ßT)Ñ|~nž:—5è5?"´tFÛñøxMŠúSïcor£2Sç+$‡d¬+)ޘbÃW- MÑê{E¨µ!SÑÝÈëÒîfµšª%-µ$Ñ‹¤áëþóYËuçÃíüÖkÕIØVæ[°2#'5¬R¬ª#?iø— Þ‰& +³éwm†çñ¯edËÖ×Ðú2R³õ“‰ó®Ð´a݌ÁmÆ[o^µdF š³h3ȊK»d´¤`ÑÒiø7vÂ#Ò£ŠkÖߍDŽÿ••hÛ~ÜÄq²OÍq³KÉ>‹Í*÷÷o¾Mnß +endstream +endobj +681 0 obj << +/Type /Page +/Contents 682 0 R +/Resources 680 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 646 0 R +>> endobj +683 0 obj << +/D [681 0 R /XYZ 72 751.833 null] +>> endobj +680 0 obj << +/Font << /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +690 0 obj << +/Length 1815 +/Filter /FlateDecode +>> +stream +xÚÍXKsÛ6¾çWpz15c1$Àg:=äÝôÒNãéÅÉxh’8¦H• d»¿¾»ØåK¦*'‡L€‹Å}r­µåZ_¸G㛫/?x±åEŽðߺZY‘°"/v„›XW¹umû‹e¸öÛz±”ž« Æ0´?«v¿Ãid§UN“?À‘fw8¨–hïTÖí\|½úí Rï;Òªw-Øæ$IÀڏôÿ~PÍ¡P÷!°9°<ÏI‚ Û,G2ò«M¡KGvDdgû­ª0i‰¬AäBĶb¶”Çv£xR:àU©Q+µð`¨2õŸÂWus$í¶h—·¨ïq SÞlÜ#p˜væSeÅ×ó—h.šòýìÊÒ¶¨+d÷ìz…£kÿµÀæ–,öìOWÛg‘‰i æIiØ°o½™ZïÙû*Wnáċj=EÀfz }Ô£[96ˆy×00¥õ%†gßoŠ ]µÏÀ7àˆœ@=¹Êy¥2áL×jÖMþüøº6ëŸUFޒ´½Iô€fÖöœþI1ö'rƒÌ÷#ú æÒYSìÌʑŽŸœÓ/š"߅ð DÖ\¤ìÒ ¡ß™Ã’"„,6¶Ð™VèÊYÄÈ ÇA¾6¼&Js–Ö%>Píu˜ØÆe `Uæ¼sÕÔ[šñ6Œ? 3…MºáÌÒ7º[ígýqÉð='Žû’!¨dü +XUCeˆ"Pº&Ï&EëɊ6•íùeæ5l‹c {Ñe Œ¶,$£B™½.*M[î‹vC³vÓ(EÓM‡æƒbrÃ2˜Ó§XãÞcDLñã»&M ¥n`Çå\Rþ&‰ ¹Eo*P_l`…ôaDºñKׅ0ÙnÑLÚ¤‰8bõÙ×®;èÐÜ=zN0͇s]–ÄÈi¹QÉXTgâ|REe€¡‹ve‘B™ÙÊ6)Ð|Y¯–Ó£¥¬†ÂÖ%#¦:žv0®ÕL +Ù Å:F¢båGb»)šœH|Tÿ‘£¨CR`ƒÉ)ëàƒÔ@ísˆX‹3Ê 8ø<½-ÑRÿý ¥÷Ʊp<Ⱦ1àJ_’zÒÒ9ªºZ®Ò6-){UÓˆ‘GçRx’Q2†ŒŠûîúþ[eÎ2³Ç÷üĽâD®Æœ¬ïÉ'B× |Rr¸”M2¦œ±¢;y˜èt«hq,­«}Æì—DhNE!BZzº1Œ¡Æl²GŒRZ0º2 +ßqa‹Ë_ܝ6_Ø;ÕÞ´;õ•H¯hˆi05'‡´Ü«9 ,{™8~è“q‚ ¸QxÙMÃU?Ä@M“A¨ÂTt"γMŠ©–f­‰yä¼8\\^Ôðkàw ¿~ú‚SfÒÅMjØ µÇ0 €e ‚³…ç„!GÁ»É­K&Øê<›«žöæ>$¡„fÔLºíc[ù8ZÖâÇ#ßß~†!Œ¹âÁ≪*‡*n¸4«‹¢%<(º’Óc2v&-ÉþS‰-iÅTgünñ®Èk\ q} ”˜¤ÄÄéÛ .@ÓªgÔiVÔðbjª/jZš6`Œ~,± ”z°á8Bɶ&Št§“î·Ù¾¡UӎÎUDP_æéŠaM"µ˜ ¹œ} ¥û’ËàóŠn4]¾9}ÕÓ@Œ;ô°g?ÀLg°^`ž‰9Š)#î21-~êMÝ´O¹Œ‡€VWå#QR"¬à}h¾GWO ïµy-ÈȤ/R {”tŐQ×ã®»Î^0PbŒŸC¨7¡#ŽÃó ï[^ÀWX1/–ȼXx TøVPó*H Ù(|s˜—]+F1…Ê+3惈¢‚ëжó$Š¦~Uïg«Aß±úøŽØbÓAÓá‰ZuÜ0 Ý?¨”òc í.üuYÛïõ«³]0:ݽĉ}1×Æã7耐á/4àC…fRô=Q»Ü °èëb])f-ªV­)ğ %¦_§ûåì¨_^¯ß@£«*UêS`ûw‡hŠ»Z`ë3¸Ï@åÖ.ÏB•O ÂÅfWª›&ÅFM× ñ|ïâßïZÿ,^„tJu³MŠí~û­Ðûò[€²cƒ³@ƒ U½- åPöhxh8çÑ¢úэ΍Æ@Ë:»ÓÅ?êƝ‚ddêaWWÐÌè /)zŸBúßx-§ÖQðbߢ2ÿÕ2ڟçôø¬-ñ¬-ÞÿÉ>—ä¬-ÉȖU“Bì¬oVeº>=`ÌPíNü7<¹]Ðç{ÒZF®ãGÜ2D0»÷ýՋ¢`Û +endstream +endobj +689 0 obj << +/Type /Page +/Contents 690 0 R +/Resources 688 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +/Annots [ 684 0 R 685 0 R 686 0 R 687 0 R 692 0 R ] +>> endobj +684 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [223.79 619.612 272.933 632.231] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +685 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [284.355 619.612 436.148 632.231] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +686 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [449.443 619.612 498.586 632.231] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +687 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [510.008 619.612 531.996 632.231] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +692 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 605.166 173.798 617.785] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +691 0 obj << +/D [689 0 R /XYZ 72 751.833 null] +>> endobj +146 0 obj << +/D [689 0 R /XYZ 72 730.164 null] +>> endobj +150 0 obj << +/D [689 0 R /XYZ 72 703.022 null] +>> endobj +154 0 obj << +/D [689 0 R /XYZ 72 589.433 null] +>> endobj +158 0 obj << +/D [689 0 R /XYZ 72 462.7 null] +>> endobj +162 0 obj << +/D [689 0 R /XYZ 72 301.43 null] +>> endobj +688 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +698 0 obj << +/Length 1683 +/Filter /FlateDecode +>> +stream +xÚµÙnÜ6ðÝ_!ôÅ\ ’IêÎ[ÒÖ© ´E#/I`ÐwWˆŽ¤uŽ¯ï ‡ÔJÙH Vä\œ›CsoçqïÕ·ß—·W×aä äq,½Û­—J/Y yîݖÞ;öî¡ëï«áîA÷CÕµ6n¿ºñœGð0>NÕ°ñ£H²±ÃoÈz­J‚\òKZT-¡º¾ÔýœZ²û/3¦iStÍAÕ}m÷Ÿ«qOœãF°=²xeʊc£Û ,Æ`ã§YÈ^v@nô]Úè[…}Q”XCÕ±¬º»b¯ÚV×Ã#†Š g©jË5ñR"‹‘•;¨æPë»^z]´ä“´ã8ŒhXf]ˆ«,GônFЕVßt߁ёÈًºîù3þhËöž‹¨U5ìù2Š‡KóïkëDdû8TßÀå2ÙÃ&Ž™ªz ½ê "bIôlã‡\0!3»’qbW±Ë¥#”4‚3‘Kav äí&“Ìdío‚5o‡¹B™OîC +£ÿYëð kùz â@&ÉJ¢ÌäeŠy)£”ÕzlC«®§¯þtG2Èé…E”iº¢¯XU*̓<² ƒÌsv»×tÚ¶WMÕîè¼ûÊ*û„êm׺d9כL0UÕGˆªÍ p!–ÞÂÚ e­G\¥µ TéWÚt[B{=hZ][V#ô‹HzÝB¥„TôFÈå†ðGÈÁtљê/T¼ 6˜íK$IFš»ÃD ©XJ¸‘&»5ð×å@E&›:xؐñÈe’Ç+I»¶þj‘}÷5‘|Gütfہ«1¶È7S@uI=ÈáE¥j.Y£ÈaÖ¦Eå¹ð 8n¨ÀUàà =„‡„ÄÂÀïÂå¿}ùšè¬;#½C§wè´s¾éíQV-¤ÎöX/=mv¯[buífEmÊ| $åL÷ÊÕµ )Ÿ…Ò^, UzÆtV"ÈBáÚœýmÜ÷˜*šv3ÛDÆà(@–¶s<Ú¨Æ2N}¶tç +9Ú«“ø/&U€ãýKrSìFpµÛc`Gã:Øă|Ö¥¥mµêëÕÈ[é¾M$p%d•ãSîô­k¥ñ/ýùEÎ<¥5h>P…'Ö!óŠMm®ÁޘßHgµŒm@Žmª¿^íœ0 +ÆùÁ®ž~Üîÿ–G¨/µGPWƙ½€âœ8@©9EN>AÌä„*úŸ ò:'/ ¢³þupM 2“™öuՀŒÿÝv­ ÀàÚyݺïŸGH·MfLCJ;j9ʶ³ +Փ!¸q÷Åԏ5?o"[X&s¸|c¸¯³ ÌmNG  ÷Å1g?w LwxZ’°½©sURgzÔnn¤†™õ‰0½ôJR¶'f]êÉTP^$xŠ@§ÆŽ• ƒ Ž0fDo1»rz3|!²5Zb¸×ï]ð  v¾6Șsb‹¤^Ý4Âû¥»øþΏq_w–/”Ùiæ±vVØyD< "÷`»®vÇÞZ•ŒÙo³~ZNϙÓÍxèí+ÒÓ¶ªÊ¶£éÒÝvîOç›y ¤®7'OÊ0H¢Ôóã0à0ddòX'ûçŽ•Ó +endstream +endobj +697 0 obj << +/Type /Page +/Contents 698 0 R +/Resources 696 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +/Annots [ 694 0 R 695 0 R 700 0 R ] +>> endobj +694 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [378.235 437.636 426.345 450.255] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +695 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [436.794 437.636 531.996 450.255] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +700 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [71.004 423.19 173.538 435.809] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +699 0 obj << +/D [697 0 R /XYZ 72 751.833 null] +>> endobj +166 0 obj << +/D [697 0 R /XYZ 72 489.691 null] +>> endobj +170 0 obj << +/D [697 0 R /XYZ 72 407.457 null] +>> endobj +701 0 obj << +/D [697 0 R /XYZ 249.391 207.855 null] +>> endobj +696 0 obj << +/Font << /F34 639 0 R /F15 437 0 R /F23 588 0 R /F18 434 0 R >> +/XObject << /Im1 533 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +712 0 obj << +/Length 1669 +/Filter /FlateDecode +>> +stream +xÚíYKÛ6¾çW=É@̐_JÑK“l±š£—$(d‹^ ñJ†$§Øþú’%ZÖn7)réeEñ1âÌ|óñ£G·Ž~y†ƒçÏ«g/®ˆŠA)ç4Zm#I#I¢8Vyô!~U-– ‰s½†'ŽÝ[õ¹Y|ZýzfŒñ¡1ÂP‚e´¤ á 4Zúâ*aÁ’”+²“?|©êuÑü¹©`UõDzýd,œ‹£$Ýʟ`£TĵÎrӒ±.nw ªâÖ½®‹¶qS²Æõ$.›â¶Ô~EQ.ào ÝúV×®/+s¿*÷ªÔ#‡¢%%œÝ¦c·£K–âøµÞ@DÁn®Oã`p†¤JŸ †ð)ýGÖöéÞLa‹ÊøiŸU½0‰®Ý[æGsýNÂX?߸BÀ:ŽêÛÈ5n¬Sfü½Þ´Ee¢éæ'çñsèOÒø#IØEKñïuµ^ša¨JPJGƄó)[û¢5º_,˜û͸eö _ÞCÃ.[¦ñêR‚ý€K)yü>3†¿˜?ÚY×ÙƼ휽MUš¨Üë \-Á!&\ Íܪ†(ûìVÜXV×Y·i讶ÖEì}ã³ùr ¾ÝL‡P‰x2œr[œ xD©@JÐÎJX·cÞX&ãO©¦ƒ(T+ 0ZV¥1÷ÜÃjW4ý"l÷Ôu]Õ=½äPTE‡éÁ™gÊÁ6†ìL˼?̲õ^?@4ETð1[\í½¼XÀŸzžà€“¸Gß°®Ì¡À´oÙ⯅¥ +Û5Ë=¡Öƒ)÷—›;BãàÆB³8œÒvE÷™„Æ&µÞ¾ 4‚UÀkˆ[¶ñ…žü—Þ—QæúXg‡C]ê"k}Çh»ÿUño÷UUÏV‚@)#ߧúA*MSýWä]9NЁ ÇSŠI§)]'»I.{á$B<-œÝª¢ð´õ´g‡çŠºy„…b‚¨Tãäg1'Ó¼En³E¤á—I€¶—†–°×E›æLET«’r:íýA7C H_Ñp ßi/À§è;A„²‡óE>Ä(é1 +-KàăÔb’À™–†B³'¸ðr L#_¬Fß0<íÔi|åì)s>‚'{ÉßfR[‚/4ûj™¸zч¡‰OÇP‰óqç=¡ÀA(ÁäôtØ*N AØ%~^ ¦«T*Ä°œ¾˜S#AðofÁ/”‡*4ð‹üýƒE°ŸgñO8 üeÀ_¤—mª‰¨ ¡Fðów]3îîºÞ†¼€}ˆ VãÌ}5öÉÿØÿ>Ø—±GY’Ïb_Óa#¬²êÿTÐe+ž·pœµº›·Ë\®Ì‹¯”w²úzÝ>°êv@Ã*~sscùî朾}^½{ûúzuýîí¼Ðçaè ýݹ¹Ï)|®Rɤ·WèîFÝîj­;ýiíº£¨¹+™8Ézh9ÃÄ{Ås½íekwÊ½D1µ³Éö!$@Øs)¾÷ŽÍ)È.TŒ}AŠbútAî~HÔÓR –$_2Dl}|@M“Ô4eUÓæGbjÜgX>Š·—Læ ø¢)| 3R|ÇD<^J›}³ ý؃û¬ E„gjž I’1QüÌMýW¡œªPaÖý .''¿Y=ûr< +endstream +endobj +711 0 obj << +/Type /Page +/Contents 712 0 R +/Resources 710 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +/Annots [ 702 0 R 703 0 R 717 0 R 704 0 R 705 0 R 706 0 R 707 0 R ] +>> endobj +702 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [445.608 671.55 493.124 684.17] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +703 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.097 671.55 531.996 684.17] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +717 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [100.269 657.104 257.263 669.724] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +704 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [479.654 377.403 528.745 391.351] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +705 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.875 363.622 288.428 376.241] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +706 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [479.426 326.843 528.745 340.791] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +707 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.875 313.061 288.428 325.681] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +713 0 obj << +/D [711 0 R /XYZ 72 751.833 null] +>> endobj +714 0 obj << +/D [711 0 R /XYZ 72 730.164 null] +>> endobj +715 0 obj << +/D [711 0 R /XYZ 72 718.209 null] +>> endobj +716 0 obj << +/D [711 0 R /XYZ 72 694.215 null] +>> endobj +718 0 obj << +/D [711 0 R /XYZ 72 626.594 null] +>> endobj +719 0 obj << +/D [711 0 R /XYZ 72 590.811 null] +>> endobj +720 0 obj << +/D [711 0 R /XYZ 72 569.143 null] +>> endobj +721 0 obj << +/D [711 0 R /XYZ 72 516.299 null] +>> endobj +722 0 obj << +/D [711 0 R /XYZ 72 480.185 null] +>> endobj +723 0 obj << +/D [711 0 R /XYZ 72 458.516 null] +>> endobj +724 0 obj << +/D [711 0 R /XYZ 72 438.062 null] +>> endobj +725 0 obj << +/D [711 0 R /XYZ 72 400.733 null] +>> endobj +726 0 obj << +/D [711 0 R /XYZ 72 349.84 null] +>> endobj +727 0 obj << +/D [711 0 R /XYZ 72 299.28 null] +>> endobj +728 0 obj << +/D [711 0 R /XYZ 72 249.093 null] +>> endobj +729 0 obj << +/D [711 0 R /XYZ 72 225.099 null] +>> endobj +730 0 obj << +/D [711 0 R /XYZ 72 203.431 null] +>> endobj +731 0 obj << +/D [711 0 R /XYZ 72 182.977 null] +>> endobj +710 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +736 0 obj << +/Length 1815 +/Filter /FlateDecode +>> +stream +xÚ½XÝoÛ6ï_aìe2³â‡HªÃÚ®2 í{I‹B¶Gƒ#¥’Ü"Û?¿;e‹Œœdí¶‹>’ÇãÝï>xél3Kg??I£ï‹ó'O_ólÆ9˳LÌÎ/a˜2žæ3Ã-ð=_Ï.’åû4ãóç¿ìwÎ.*O“ÓËùBH™ôW%TҖ]µÞ•ž:&¹½?&ñóUGS–msÃL$Míçšv´í þ KÖåªq\Ö~©?OŽÏSɪ©ß§\mvmÑW͜'5ыŽ¾ë§ërW™qÍr¸à‚+¦”¦‹Vµ»%‡;¦³v3£Á™»¯ä:ù­\g`+y–ØH#É ÒmòžKu”Mr6HŒüº²ßÝа¨×Äv|Ùè€ï~€%"Mºb.lòyNzÅÝýjG#%€i5^ŽÜ6=ò}úZª±á¥L +”Ôiâ¢ú@«BxÁ„Ü/j.&2W ºt6’Bl$AÞA<ÌT½h[w©Û)Ù¸æ,;ˆö¹i—U÷Ñóý,/+oôº››ç)3{,ÔëBjì°³…àLkùÕ½˜ÏµÇ`nƒq:?Ì;ðÃwӖE_¶›¢ö|ÜËTx«â\×ÞëÍ®%z´Ød],·%"©I^!§wg„õŒéԆöyùîíO§ç§ïÞ—ÍÙ±æYÆR -¤e27´õMqsS՛.Þè\ÃYÚ:ßoY‚µQ%0Ё7:Rß\‚èøínÜýÊU…ÀYñ¦òšÝVuÙÑÎK¸½‹!0.ëÁ‰àPÚrúØmûj…Ðz]n½4»5„ ‡d/t ¨/U… åàqD8¦½ul‘pCÂ5ݔþÀx[­™l¾P²~Ÿ[”s lœÏ +‘œÒbPFç·Ñ§>ÛòÀ· œ#|! ›¦ÛbëÇk¥Q”»F¡ªžÜóחo¼k¢ÿnbè&F7]ä2À @: g"V0´±{eïê~Úue΄RÃƇ˜R¬IHM„eÕw4*:šØÕ]µÁ`ï¨þ€Ö—ô;·¬ö3ÅÚsÂDž)H‚ÂßӒ‚ME…×s+úeY*¦b™†ªÍÃaV”EavB¡\ëoVè®:qJÚ9OY²ÚîY¤Á%ˬ_‹–-à‡l¥,Ä3üGãkô£áheBuǀÈ+ûŸa0™M¡¾•ŽT¼ÀckÁì¨òXûçü!ûcˆÿö×)ËE> ‘gÌpí=:ÿ¿`¾ûΞ;0zŠ =?̐Ù]vµ!?,)%Ûc¾¥h}k…. ù=­_ö`fê5D3myÓú\½­;,j;äöÐ +ÙãLã¿Ø¢5®S™ããÈÇ3úëֈ™ ßêw™MæŠB£€öÞ¶%”GÌv¾_õ©l{‹oYxHYx‚a5¯ŒtùËï§6û3dZƒJ%º“I50ÜZº?ö&5G…Œ´Sjlj<)?a×°Øvô—2ÐÒÃ>& „–S,&$ K­ô˜„iNe|÷>\í:|“]Mˆ4yâïuãÂΡýºpîû預ÚÇ^7njx{BM¬s—訩a'W¿:ò72éÊ +endstream +endobj +735 0 obj << +/Type /Page +/Contents 736 0 R +/Resources 734 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +/Annots [ 708 0 R 709 0 R 732 0 R 733 0 R ] +>> endobj +708 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.552 700.442 188.241 713.061] +/Subtype /Link +/A << /S /GoTo /D (section.8) >> +>> endobj +709 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [199.154 700.442 333.399 713.061] +/Subtype /Link +/A << /S /GoTo /D (section.8) >> +>> endobj +732 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [484.414 256.897 504.616 270.845] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +733 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [464.179 220.782 484.38 234.73] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +737 0 obj << +/D [735 0 R /XYZ 72 751.833 null] +>> endobj +738 0 obj << +/D [735 0 R /XYZ 72 730.164 null] +>> endobj +739 0 obj << +/D [735 0 R /XYZ 72 686.66 null] +>> endobj +740 0 obj << +/D [735 0 R /XYZ 72 636.473 null] +>> endobj +741 0 obj << +/D [735 0 R /XYZ 72 583.589 null] +>> endobj +742 0 obj << +/D [735 0 R /XYZ 72 561.588 null] +>> endobj +743 0 obj << +/D [735 0 R /XYZ 72 539.919 null] +>> endobj +744 0 obj << +/D [735 0 R /XYZ 72 504.136 null] +>> endobj +745 0 obj << +/D [735 0 R /XYZ 72 481.804 null] +>> endobj +746 0 obj << +/D [735 0 R /XYZ 72 460.135 null] +>> endobj +747 0 obj << +/D [735 0 R /XYZ 72 439.13 null] +>> endobj +748 0 obj << +/D [735 0 R /XYZ 72 405.34 null] +>> endobj +749 0 obj << +/D [735 0 R /XYZ 72 381.015 null] +>> endobj +750 0 obj << +/D [735 0 R /XYZ 72 359.678 null] +>> endobj +734 0 obj << +/Font << /F15 437 0 R /F34 639 0 R /F18 434 0 R /F23 588 0 R /F35 751 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +754 0 obj << +/Length 1655 +/Filter /FlateDecode +>> +stream +xÚÍXˎÛ6Ýç+¼”˜á[dŠ.š6)Z »ÙM‚@cюZ[Hò¤é×÷^’’-™š™&-ЍIQyç^š®ö+ºúùí››¯Þ1µbŒX¥øêf·b–ÎW93„S»º)W·ÙvÍóìSQ×î°Þe²ªÃ6Ïö­+z׆Áf¬?ÜüúꝐ“9'FYØÐ/v[œÊªù¸ ëuÂ'S#¬!R°á‹ { ;h ;¸°U×ÃÆk–/Í1Ù©.Ý×[m8g„ÛՆI"¥Žn4ë 8RwGpÚ‡ÕFRb¨†ïÑ:ºýf6év#-ͪlÆ5lÖ¹þeÊa͉VùèïCÓÞUÝÇcq_ÕûÛætÀN×»û´ûÌJ¢Vø>lHg&óÜ ;Ol®ªêÚjc3ˆW ދ<ãؘ쮂øõ]xxOm]çڇ57™‹3ßS&Ý¡„—ì;ѹ÷ßøD`ça­dVNñ±êB[7õ_®m m\©ólŸ¶ãt*æì21Sã)\EMôð!pg—ʷеKÙèNwÐ]HƒbDŽ(ô cêóLÌûá¦vˆR–gŸ‘-.Œ¶ÌÂÈãÔF0pÄhŸ}AË9F¨)jïîÏÀ[6wd½‘BeïֆeMÞ¹"¬ž$ ÃŒpºý=é-°84Lj’±»˜Vÿ„Ɍ²B Ÿ\„ {=dzÒ$7fŠç’É0Ýöà}ÂJ%ˆ\Ê÷ñôgÚNž!G;ÝÁ]Æö©¤ Zš§šëKkiˆ=š» +9ˆ½"¶ +Õ¾F³„çl +‰*Xæö®ÅV>WÆ$£œØ¹ 2>"Ü%cg¸‡Éwî×áKh«ý'×õaŠ7ítÄß;Ïj×¢žà«Àµð *N*²B寴3ÄB0N,„4ÄB…)Ï"2eÄðqÕ ØedÆPØP¢¬Ç¼Á(ÄÖ·El]Û"Ç°»mê²ê«&¾i]]B\ ۇ‘ tЁµBˆ¼ÞnG&‰|\üàL#̈i6Óê·C¥bg€'>D<Ådš„õSpr?¥ +ŒË¿N_¡r”æ82"ˆLA'0ª F+f!„CJ…)Ì3, ê2ôáP«J„4jdš]x³dôÔ¹ð!ÂÎùñYÆW@‚> +²·x¦cœPþ ‹RËuì”U·-Úø`ÂnQ `)* tôþt.úÚWÇè(Ïîý©-\qðþPlݧæPº??g¥ÑÓsö͒հ3fF{± &b¯ˆ­×0´Ðř—Šå`u,pdšHIä êG_WààC¿Ä¼ê#YQ4p ÒCŸ¿& 5û£z w*å”?-Ð`¨ë C¦šñ(‡”›‹£Ü"ÌÀ¾šxãÈY® ]€¿¤ù þ8×Ë,0ÂϞ$¢‹Ï`@4æ97”™ +tžÏ +Á·Or€ËI쌑ć$Hñ…?ôqÂ;#üÃb¾À^¬v°?Âÿѕ‡ý#ò©þ#_à…{¦:雤¯m +Œû@«c%l 2paž¯#«^¡íM1œk¸ùåømµTž/ʓhŠ‹– G=¤ç–à oL¨+ æ´Xg]֕EÛz–}IV©”äÜ,ßðë]5ø»tÇÆ«%™óÁLù` ÜM´Ï’°Q—~kð õI7ùx‰Tàš ù4Ál¾ïÕeϪk'›Òáu¿pnjýu1Ô:y¦Ï(ÅO š³VòY½0©‘Š2®î¹|C½œË™“<©pwæ×wgÿ”®rs ߌcäß#åèë«û^"íôH*®ê·«ÔiÂRwwh¶ìÅ>m±T1½˜>6¦on¨Æ¢HMc÷C-µIC?WuÙ|î¿Ü»Å?gÔù~méW mîRN˜šý'¸}Ú%¸Ñtìû¶¨;Ðùã²W9%”ÊÿÒ+!g³Keù-‰Š²—öGÀϊEÌ·¹3ºÌWR¥-±ÃËmrîۛt!Ôf +endstream +endobj +753 0 obj << +/Type /Page +/Contents 754 0 R +/Resources 752 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +>> endobj +755 0 obj << +/D [753 0 R /XYZ 72 751.833 null] +>> endobj +756 0 obj << +/D [753 0 R /XYZ 72 703.763 null] +>> endobj +757 0 obj << +/D [753 0 R /XYZ 72 679.437 null] +>> endobj +758 0 obj << +/D [753 0 R /XYZ 72 657.437 null] +>> endobj +759 0 obj << +/D [753 0 R /XYZ 72 621.654 null] +>> endobj +760 0 obj << +/D [753 0 R /XYZ 72 585.872 null] +>> endobj +761 0 obj << +/D [753 0 R /XYZ 72 537.636 null] +>> endobj +762 0 obj << +/D [753 0 R /XYZ 72 499.197 null] +>> endobj +763 0 obj << +/D [753 0 R /XYZ 72 476.864 null] +>> endobj +764 0 obj << +/D [753 0 R /XYZ 72 441.081 null] +>> endobj +765 0 obj << +/D [753 0 R /XYZ 72 405.299 null] +>> endobj +766 0 obj << +/D [753 0 R /XYZ 72 368.852 null] +>> endobj +767 0 obj << +/D [753 0 R /XYZ 72 333.07 null] +>> endobj +768 0 obj << +/D [753 0 R /XYZ 72 279.894 null] +>> endobj +769 0 obj << +/D [753 0 R /XYZ 72 260.882 null] +>> endobj +770 0 obj << +/D [753 0 R /XYZ 72 236.889 null] +>> endobj +771 0 obj << +/D [753 0 R /XYZ 72 216.435 null] +>> endobj +772 0 obj << +/D [753 0 R /XYZ 72 192.887 null] +>> endobj +773 0 obj << +/D [753 0 R /XYZ 72 171.218 null] +>> endobj +774 0 obj << +/D [753 0 R /XYZ 72 149.549 null] +>> endobj +752 0 obj << +/Font << /F15 437 0 R /F34 639 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +782 0 obj << +/Length 2146 +/Filter /FlateDecode +>> +stream +xÚåXKã6¾÷¯ö$m…Ô[;§Éc³À²iì:†Ú¦m!²äHrw&¿~¿ª¢lK¦;ì-‘,V‘Åz—”·õ”÷;5¿~¸ûê“N<­ƒ"IBïaƒ©bíe:BUxkïÑ7?ªD/žþy"ô—q¡ü×E˜û¦«6_ËPç~W6[ÓÀ"‰ý_M×8ó«^¶‡@ÛԖ¢6Û²àëDe}´8U#ÿYä¡ßv/ã!Ÿe{ÓvÄÑWŸ¢ø’ý0σL§`’9|eÊç}»6ÏoU³n߆/ó$¤Ó—/Ã, +´Ê½¥Žƒ8N儲Y;ïJ”9¯ …ìíoÞ¤Ó…#uàº@GAœÎ öåáP5[÷ÑQdi>Òíaæûa±ŒÓÔoZždþ d˜ù†ð–Q‘åéôÙÛΔƒéØ ¡·²¡™ hWmw†Î¥E÷ìÉèd2 A·œ +VÕÈxìM6ídÂ/v»¶¶@ ØB¶Ð˺3Íú̍0®¦÷XÞ%Lý#°W-?r]¾Ô&˜/Ñå0R¦ÖÈ7‹e¦|§¥ç…ß—Äêë‚ÅÆ8ìF‹ÜۛŒ,Wmó£Òñöؕ H¬j­!Ý×PƒKãE—;YÅcåT0XVÉÉðÚÍ̳nó22’ùeו"x© +tœÌ ϚJRI>zHbmŒlmªñšÞmša¨¨˜Xý¥NÒ(Ȓ©N¢Àu ç5ô¬_Ӑú/Õ “²·£loºr/æ䐔[²<è獏Mo†{̵¢ô’(!wm'pìjuì:³¶×4v"n !´¾—eeùiDãÄV$³ã°T¡Ât&ŒqHØ7I@x '*§½µéW]u`=Ü o<yG²Óâ L´šR3ÇôÎv¨Í`€;Õ´šÓ;¢8e­Â c™&±±X&‰ò?׎Žmåꧢd-—FJ.@äˆIÿ¥({01»rbHŠåY±|âüP×-™ô›H%‹­JxÒžFüx~9À`Š~bXR9…œÚ¹-@Ž`K9™I™‰ÀŸ| +D„ÙY.JŒ/Érÿagù!×ìúÁÍ 4GðÆ PɔVgþr–+Á&Ê$RPK$ŽC–8M$¢Ù N¨;K;€Ýä¨qä1f­ðR5úA’ÒïG 1Ì¿Y–b´<,`° >뷝iÆT$äÓ ‰ávÐËQZd3ÿ‹nþøô“ûš_†?ÀZ¡‚,œ¥ÕÊÅŠBw‹Ì$ùmñ\ÿáâT6 )qn˸ðmC›X"Pm6ƒ`íÊz#³ÖŽ'$ëª9\¼æ^(Χ‹t¢„ÌY‰Neú+và—®ZËúÒûi½á^ZÇpúñ¿cÁ yVÊn¿k»A ÓÜÅÕ¶ö0æ:Tà0ç… +wù(–tߤöÿ;ã¸ß•‡‹×«[­»‘>€Â‚XŸO>üÛÓ’ü¿ >‹‡&ô·FhmÃøë† h´A‘~µ„Iëªï«}U—‹á ŽX–‰ÿ’ÛýX‰Úò²¦®cÇZ ö'ÚäumsEÑÉÿ1ÚF_³“œÈ„Eœz•¥rGK ö«BŸ‘'bã5‹ ³—SM_üĽŒÿ‚]öˆ·Ê²©§f™u+LÎnÅXìV˜•2Œn…é•[%yönª›n•ü·bVþên%&”ùÃû¾•Âÿn;Vzr¬ì¦cäAÕE†Vx™¨ ±ŒGʉ‹êûb“x +endstream +endobj +781 0 obj << +/Type /Page +/Contents 782 0 R +/Resources 780 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 693 0 R +/Annots [ 775 0 R 776 0 R 777 0 R 795 0 R 778 0 R 779 0 R 797 0 R ] +>> endobj +775 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.282 374.747 146.484 388.694] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +776 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [418.04 202.061 444.095 214.68] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +777 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.985 202.061 531.996 214.68] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +795 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [147.912 186.951 295.781 200.899] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +778 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [416.398 137.055 442.453 149.674] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +779 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.224 137.055 531.996 149.674] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +797 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [147.912 121.945 295.781 135.892] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +783 0 obj << +/D [781 0 R /XYZ 72 751.833 null] +>> endobj +784 0 obj << +/D [781 0 R /XYZ 72 730.164 null] +>> endobj +785 0 obj << +/D [781 0 R /XYZ 72 674.871 null] +>> endobj +786 0 obj << +/D [781 0 R /XYZ 72 636.1 null] +>> endobj +174 0 obj << +/D [781 0 R /XYZ 72 562.833 null] +>> endobj +178 0 obj << +/D [781 0 R /XYZ 72 449.134 null] +>> endobj +787 0 obj << +/D [781 0 R /XYZ 72 419.745 null] +>> endobj +788 0 obj << +/D [781 0 R /XYZ 72 397.412 null] +>> endobj +789 0 obj << +/D [781 0 R /XYZ 72 375.743 null] +>> endobj +790 0 obj << +/D [781 0 R /XYZ 72 340.293 null] +>> endobj +791 0 obj << +/D [781 0 R /XYZ 72 318.624 null] +>> endobj +792 0 obj << +/D [781 0 R /XYZ 72 281.845 null] +>> endobj +793 0 obj << +/D [781 0 R /XYZ 72 260.508 null] +>> endobj +794 0 obj << +/D [781 0 R /XYZ 72 238.84 null] +>> endobj +796 0 obj << +/D [781 0 R /XYZ 72 174.166 null] +>> endobj +780 0 obj << +/Font << /F15 437 0 R /F34 639 0 R /F18 434 0 R /F32 532 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +800 0 obj << +/Length 1790 +/Filter /FlateDecode +>> +stream +xÚÍYKoÛF¾ûWð(Õåzߏ¹h +äVÔhJ`Èe•(‡’£¤¿¾³»|-µz;Ž¶Hq9»óÍã›áä!ÁÉW¸÷ùÛíÕÍ"B‚&·3¸Äˆ`“(¢…ÏÛi2Ü‚ ?ß~lÞLF)7xÏ†)£r°~ÌWþʪÁØß®—åÚ_nòbº£ͯõK™_[=у¿¯eç›¡ÿ¾¯‚—@òxQ½îöH­!øêã§a +²‡OR¦n)%HÊJ·¿‡š–å½ÛÔté¾pŠ¹ò¼Êü…?—þ~>~z‚ –þ¾Ì¾<çe¶È +‹ÑºÒc2.üÅø&,›¬=bǯö_VڌåP' +c:D½›SÎÄàŸŽlf}È +áò˜K£O¥Ë«)$èI–Mëä\}Ζóy•/߅aÃ2“϶UL¬¹ùÀx€‡ËÆyFÎA6w“¬Xgåçh”JD4iS¦[ғɆcÔ2‹¨JÍ¢¯ õ%˜…üAÑNb$bÐæŸðP Ü´uÑWG@w‹å4»»Ÿ/'ÿÎæã‡èA ˆJՉ/ØB'[û ›È ÷6_7q1z*³¯ùòyuW!¼{;¹„ˆþv…õˆu³µËhîfýO²¢ã°½èïx«¨Ø²œ„¼ÙzÃ<›­ë¯Öãr?1ÅÀæ°KÈ.y‹fÑ ÷>‘ÆäQè6é`ä,h“ÙŽJV¨Mt$‡hQE‘à*Dëþ´ 6Q´²bWƒŽZü(¬®£Xi$[‡º+ %a’™ÆJ ‰{ž×L0ðuJ‚9Q#Z§j‚4,ŒžÍWY¨°A܈ŸGΤ¸Ÿ™Bj7é«ÛôÑ9P(Ý)‚yKŽtT¨mq~0$4Cûš·=Eù¹­K@´æ(ÛÐíä(ÝU?û¶>ÌOÄVbª¿U±¬¶jÉÉ÷Ž[ÌpJª/Œ¨2x<*¤Àí99-ÝþíšÀ6ê§p“!p>va¼xí øд/ŽÖk°“¦ȅIÅ£µ#«¨ÍkГ)ü5èéÇÓI| $ð±|³Ž~àô܎ޖãGgŒ@çÚË7ØÝ$ .aÜ3„`5Šž›¤ÚÙϱõ˜^ëF“´âœ¼˜ÌŸW¹ïÌÃéY¹ì' ù§ß(‰¨º³e%m†„jI;w»`™ö¨¹íóµª0ŠÈ„¶×´MöÑõ#A¢!ÇZAùÎO,9šµ@ۙf`s;;©ì¿«¦‘@_R€'ôɪ~€ÞW³,b}Rõ¦*;Ç´PGzxJkñbPßRÎ]{Á”ÖŠÒœ‚™bŠï™Òjh4¹›ÒÒýSZpKƏ˜Ò²c¦´´?¥Ý_‡öòÈ›5´­„¤fzVT7›_c$Úzò&,AïBðΠ3Ëízću¿÷@‰‡ Ó/á=ð¶Õ{Ì{zà  ¼§†fû£”18¢’!'ÉcR9g¦Jåö +Ò<Œg*ëùXŸÚX¤éÁD¥!ÊӋð]fº¤`UhIA[Rp_Uƒr&Àš‡ÉeYd[£H7( xBÈŠÊÃ<Ñé-OpŒ÷ð„‚ÖótˆÀ/óÄver°®‚²Ÿ‰(ˆéüܸ‡%è$áÙpô°šžìý-€8‚%dYCH3°ý%,¢4¬ R¸Ú+²Äy¿åÁ§í–8/Ώ¥ ²£Ôîñ”Ú/ELCD›—p+Jà1÷é{EÏ}®# +XþG—QXò€()ùœHtÚÎz½²>·g‰¹:±¿Ý^Ø0ïJ´ÜÙᔦ­iuvõ5-4R# %Eª%’ªBœ‘èb°úÿ-ï4B +endstream +endobj +799 0 obj << +/Type /Page +/Contents 800 0 R +/Resources 798 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 824 0 R +>> endobj +801 0 obj << +/D [799 0 R /XYZ 72 751.833 null] +>> endobj +802 0 obj << +/D [799 0 R /XYZ 72 730.164 null] +>> endobj +804 0 obj << +/D [799 0 R /XYZ 72 665.324 null] +>> endobj +805 0 obj << +/D [799 0 R /XYZ 72 642.991 null] +>> endobj +806 0 obj << +/D [799 0 R /XYZ 72 621.322 null] +>> endobj +807 0 obj << +/D [799 0 R /XYZ 72 599.653 null] +>> endobj +808 0 obj << +/D [799 0 R /XYZ 72 577.985 null] +>> endobj +809 0 obj << +/D [799 0 R /XYZ 72 537.636 null] +>> endobj +810 0 obj << +/D [799 0 R /XYZ 72 512.978 null] +>> endobj +811 0 obj << +/D [799 0 R /XYZ 72 491.31 null] +>> endobj +812 0 obj << +/D [799 0 R /XYZ 72 469.641 null] +>> endobj +813 0 obj << +/D [799 0 R /XYZ 72 447.972 null] +>> endobj +814 0 obj << +/D [799 0 R /XYZ 72 426.303 null] +>> endobj +815 0 obj << +/D [799 0 R /XYZ 72 404.635 null] +>> endobj +816 0 obj << +/D [799 0 R /XYZ 72 364.286 null] +>> endobj +817 0 obj << +/D [799 0 R /XYZ 72 339.628 null] +>> endobj +818 0 obj << +/D [799 0 R /XYZ 72 317.96 null] +>> endobj +819 0 obj << +/D [799 0 R /XYZ 72 296.291 null] +>> endobj +820 0 obj << +/D [799 0 R /XYZ 72 275.286 null] +>> endobj +821 0 obj << +/D [799 0 R /XYZ 72 237.374 null] +>> endobj +822 0 obj << +/D [799 0 R /XYZ 72 205.382 null] +>> endobj +823 0 obj << +/D [799 0 R /XYZ 72 165.145 null] +>> endobj +798 0 obj << +/Font << /F15 437 0 R /F21 587 0 R /F27 803 0 R /F25 589 0 R /F23 588 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +831 0 obj << +/Length 2159 +/Filter /FlateDecode +>> +stream +xÚ­YKoãF¾ûW{ X=ìÙ<ä° dÉ-»¾9ƒ)‹ˆDjù˜ç×o=š”HQ¶œ0Äfu³ºª¾êªêr¼Qðï»È?ÿõp÷é³´”"µVÛ QA"PQ<äÁcøÏjµÖiU¾®·ëc¶Y©$üŠŽ§6u•—]Yû•ýŸ2ìj~ïveË#˜P.¬ËjŽWµ»ºßç<ÿ óÀ–'€k[æÅJ†M‘3)dišºñ›Àü.ó¼ò²ÝdMÞ®¾<üú­¥ÆĬK¡œ O*8RiÛ¦>ð¨ÛdG¦ß7ˆŒ›¹<äÅk¥"q3åITØæP,Êè¬0j`ø[d£–=¤Ø”h+ŒÆZ +h¯8ŽY|$²ï{GBÂ30’Lê2o»mÀ #/ ç:C‰”c1§ç”€K–Ó‘H”»Ž÷¹ »8ŒÐ –B))Œv0"Ž‡“¶g­)ŠbH áø’ÖþÐe?+|˜ÉDùpöŠ5w C¦•ÕÀ ür—UU±÷簁¨%† EB¸³ã>HPdü%¿ùÃ.˜*1B¥'S•‹æPJh;.‚€½äFÈ8e}^ÖO–Ÿ|5x­S8g@šVÎcêÅvéI¤Ç¶xß +°‡t#¤?²­‹}q|xA' uvàÞ0NrfâÌ°é•œpE€#’^?=Üýïʼnh ‘+U•b¸ 6‡»Ç/QÃ$`M™ã-=,…'vü÷î×¥ªCÇJđ!^Ò À±‹ Ä«Ò¿eg㋍)´}Ÿâ¡Z‘h=E\}ñí¾®›7 ¤ ðz՟ß@–Ib˜TB̉ÿùTb‰—• KÅZ,lœ`û›6Æ8¢ÌtãóØsá’,œx€žz@ð¸6P£–X ÊÄ'Né¦1§(†Ç2ÕãWT .|æ(ã}¥z“°ZŠj¨»H%ì|Ý뱸’?”ñèGï8¡Inwl>§’³¬-} àkc¦y’Ê1gÃ?Š¦æ˜±âÑY>§x05R¶Ã€ŠtŸ–”QҊèÝ|¢EdÇ£™m6Ú¸ZD!Nr’7°»6/þC~ À¯ñ°ã àøBi=õ¡ðÞ§o¨Á¥N½y¬·žÔæê.W.‚OF›mô™ûˆ5qqsÕŵ4LIõ¸†0•(ÁϘ‹ ‰F\I*¿ðeŠ÷ùvsNÞ0õÞZ§@’÷s¤‚H³8JQŸ¤¹ÅZ’nV&ËhSȽX÷žVgX»lK·‹¯ãÍ*áköp*Š±¼,P\8䑲Xþú‚„í0sŽ±Þb¥í+Â}Ö~]ûÊqhW´>ÏjÊøz,¦NDÁƒ©Ø*•ó0 kš¢ë›j˜ÿ¡ç `[ä?Ü#Ʌ-Ý÷aåYâ\Š-±¡„5øZU?5 GÞ‹N—€¤öÖ ¬„“ïÆ-ž|º h‹¦/|ŒÑ˜JÓÙ- ê__Ú·Cy;éÀÅÑÆîj&*¾UM-”I>TîÓñD_ËP¥B)ä·ÉÀƎ‰ÜµöNµsð5ï¾÷EéÌkhö¤e𩵇@¢·X$õÔ Ž6Ê*à˜ó»ÏÁ—Ù<"3,ó°ƒ +ø=ðqè£Â$a{áԛŠë> endobj +825 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [427.656 452.082 528.745 464.701] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.6.2.2) >> +>> endobj +826 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [106.122 437.636 179.651 450.255] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.6.2.2) >> +>> endobj +827 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [100.269 401.521 126.323 414.141] +/Subtype /Link +/A << /S /GoTo /D (section*.31) >> +>> endobj +828 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.338 401.521 210.867 414.141] +/Subtype /Link +/A << /S /GoTo /D (section*.31) >> +>> endobj +832 0 obj << +/D [830 0 R /XYZ 72 751.833 null] +>> endobj +182 0 obj << +/D [830 0 R /XYZ 72 670.263 null] +>> endobj +833 0 obj << +/D [830 0 R /XYZ 72 533.745 null] +>> endobj +834 0 obj << +/D [830 0 R /XYZ 72 510.197 null] +>> endobj +835 0 obj << +/D [830 0 R /XYZ 72 488.528 null] +>> endobj +836 0 obj << +/D [830 0 R /XYZ 72 438.632 null] +>> endobj +837 0 obj << +/D [830 0 R /XYZ 72 402.518 null] +>> endobj +838 0 obj << +/D [830 0 R /XYZ 72 380.849 null] +>> endobj +186 0 obj << +/D [830 0 R /XYZ 72 291.227 null] +>> endobj +839 0 obj << +/D [830 0 R /XYZ 72 161.048 null] +>> endobj +829 0 obj << +/Font << /F15 437 0 R /F18 434 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +843 0 obj << +/Length 1405 +/Filter /FlateDecode +>> +stream +xÚÝXI£F¾÷¯ðm°W×^”¢9$Q&R9uN=# C¹MbC‡¥“þ÷yEh°qKI”9aë·|o/¼zZáÕOwØ?¿¸»ÿDĊ¤… «‡ýŠ`‚¨+EBD±^=$«Çà´¦*¨Ëj½aB»õ††qJcßJT¹{î£ciÐz#˜~É+OV"Oeîù¡ÎÖÀ¦.MòÁ½ùŒ‰& */ܛCTºã™gž˜ØQ$&™;”fû¼8EUš¯I}»þòð3»!q.=©Õ…Ê µìáhzzö,*P~øï^ëæWG[º7…9™—]sԍFð¡=Òj:ÍàM\/ö„qËW'ë`ʖi•ž;иsø'ìûgCu㟠Ó¡³‡#†8@.0¨U¦Im%Håáb·1ӁÓqÖyoÿšÓß½ž<$ˆËo@ %ÁŸ‡4¶î;XD…§:È~J3÷%¶Q–™£û`ÝS$¦ðGØY`‰^¬W y‰¤¾¯…³¦¬w§èÙÁ›[y¨¥¢IémÞ·>2‘SԻȆ÷ŸïC*JàҜ~L¿8š!¬”"&–ÈÑ)ábi_ä'÷»BhJ˜–H(ÞI{ɋ]ZnA³ç4{Ú:%ËIWHòNÑ ÄDLj02ƒŒCp¨  «Ïf=ƇiãC$HKô±µr(CØÊp(œ…¯7\ã9ÿôƒj7[̔Rª¿ý«nŠê$Í·±SoÆ=d3ֹDZ;‰jÀ2Ô'ŸóÑg,ÈTé¸hu u^_…†!Jø^È +¡ÆWÓbÀÌÀ®*Ú,Ÿb +!*¨œ‹þSý×4´T!u6С^ûÚ>%ƒ#‚Ùmh”M!D$"„ ;Œù£ŽŽ¾¦ç“":¼‚ô`.d©qdP›ó'E³AÊ\FZ؞/:¥²|ë‹ñ¤v +¦b)À€¿1Û¦XÔfd7òK„Zþݤåç2i1Eºç†$ßfyµµ½%1Ûý1zš‰-‰4'ï3}I½lM·ÓUdT0¤ˆ–¨*#`(Âô«¥Î<,ý)a~¡|” +3¹Åvô¸¨°Ó„ŒÕ› 6„€ñx$ŸÝÔG}ªm³ú´3ŒvñqINóJĕÙábš͑„*ó.¿¦WpãèÆ5nÕëó´CVèÛAcÐú’fú9ƒéœó÷a5óÀ1&„Ž581ï½Iy2ÛaãlA&v4gìlFb KĒývÓûä4¦Wô–€‡Á‡³. aS`V€8†áÌKÔnñ´O«Õ«[ä&åkäÛ°ñM\ÁeGÑ~Ÿ(†‘’}­$hu,­"BÏQéñ€?—ãŒ`€µ70-.µ +Ñ°óGå§Y’Æ‘[¹…_Ñܨì9oRŽÚ=íâåzŒ”ˆq=Ä`Wgɱ]Xy}LÜLœÙõ­r¿ýìˆ|´…A&A°›1ü°¸Áèx7›>ýãM°6/Ž&{ªÝî="ã0€áse f©ûñš aÌmBò?ل|T_ó&t¡•Âa*äЗ·L®Ù/íbB¯›¥ŒØ]`ØçüÖ#¡[èëwXÊåK4¦Âۗ ë¾^Ú¨ý¹ù¿\zšE§¹Ƶ¦K¥kÉc/Qô»vw=j¿©o¾’^ÐrJ €c¾|2e Ö4<š°þÑÉxx_I­™¼½°îÂ2Í^LQú Ë8¯Ÿ¶w.¿­|[§×{Jْ뺮D6¥n‚µjsyÙê¿-+Ûíæ.å`"UX÷.å|h”±Éü`Ó ™a¯8ç`CHhÛR*¿r°Iâîþås +endstream +endobj +842 0 obj << +/Type /Page +/Contents 843 0 R +/Resources 841 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 824 0 R +>> endobj +844 0 obj << +/D [842 0 R /XYZ 72 751.833 null] +>> endobj +190 0 obj << +/D [842 0 R /XYZ 72 684.709 null] +>> endobj +845 0 obj << +/D [842 0 R /XYZ 72 597.204 null] +>> endobj +846 0 obj << +/D [842 0 R /XYZ 72 577.196 null] +>> endobj +847 0 obj << +/D [842 0 R /XYZ 72 553.867 null] +>> endobj +848 0 obj << +/D [842 0 R /XYZ 72 517.42 null] +>> endobj +849 0 obj << +/D [842 0 R /XYZ 72 496.083 null] +>> endobj +850 0 obj << +/D [842 0 R /XYZ 72 455.403 null] +>> endobj +851 0 obj << +/D [842 0 R /XYZ 72 431.077 null] +>> endobj +852 0 obj << +/D [842 0 R /XYZ 72 411.069 null] +>> endobj +853 0 obj << +/D [842 0 R /XYZ 72 387.74 null] +>> endobj +854 0 obj << +/D [842 0 R /XYZ 72 366.071 null] +>> endobj +855 0 obj << +/D [842 0 R /XYZ 72 315.178 null] +>> endobj +856 0 obj << +/D [842 0 R /XYZ 72 295.502 null] +>> endobj +857 0 obj << +/D [842 0 R /XYZ 72 272.173 null] +>> endobj +858 0 obj << +/D [842 0 R /XYZ 72 235.726 null] +>> endobj +859 0 obj << +/D [842 0 R /XYZ 72 214.39 null] +>> endobj +194 0 obj << +/D [842 0 R /XYZ 72 177.652 null] +>> endobj +841 0 obj << +/Font << /F15 437 0 R /F18 434 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +862 0 obj << +/Length 1390 +/Filter /FlateDecode +>> +stream +xÚíXKÛ6¾ï¯Ð­2Z3|‹jÑÃh +Hsñm,´6m ±%C–“&¿¾C%‹^yכçeO")røÍ|3Ci²Jhò÷=ù¾œ]½xÅTÂɕâÉl™M͒ŒÂižÌÉMÊÈäÝìŸ~ՋWB—0 M¿üä›m±ªÊö°°·ì¼­›wnñé6Œ)¢ó¼[ôçd*™JÛµÅFc÷åâ:&è¸Q€ÖÄ´äY# +¤õH¯ÇMÀ‰8:¼3àú1’eê A¢ ã½óü~¦™!2N¦Å}ïAÇ(—ˆÐȨΌ(Éã=Vz"W-ZÛ¸Ž‹á"Øâ³mê_æ†08"Ô%ùÈ<#zÈ×ß ²€ÔÎY ùú‘|˜sL‡•ýx;nQˆŠ\ëc I4ëfŸd©,#$F¹âå£`E.#´×ßíà o:ê$§ün§ŒrÂELŒÝìmÌœfü+É»þäå_JÞëHÞ¯crrqõ(y<'¢gϜc. + ü9]<§‹¯÷8š)žóÅÏÌ'ûóJ3ɀ¡<öÙ»sŸ½m1Z»;0ÞÓ¸þå†h¥Ÿvºüþ'Ÿz–¶úK`[ò… ËçÈs '~>ÿ†F7Sê{]¢åå—èœ*.0_6ÀCó™È|‚¹›œKÂ@81DO¦JÑtQ;ƒé,ÝMK›:,]æ탬PÇ ÈCq¯&†§®žT`=g\=çzØöuïon$K÷Ÿ°]CÝüÙº1Že’k¼¥LÕX$qóC3é*6œ³lê-þë—-ìW-ìb\Ò äÜmYWI1‡ªÌ—b®ü¢qÝÕÖÈñËÓ÷@ð­Öu>a1gÉd*…Jÿ­[Û»Ý</vt΁ Âɽ±Õª]£„e7ïD øÎÁõvwh½"8"Æ܏2ÂÌ1;Tä¼øx’L%ˉ–<Î\=Í\Ee;ôÂó€ Ls­Ó­ãÁ·Øï[‹B.s£ø¿weခڀmºÃHu°ú»sñb÷÷± ‰(b˜åÜfàóÃãçxãåppÉ,£ .t"<0ÊÑÉÍ®þ0|ËÓ +endstream +endobj +861 0 obj << +/Type /Page +/Contents 862 0 R +/Resources 860 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 824 0 R +>> endobj +863 0 obj << +/D [861 0 R /XYZ 72 751.833 null] +>> endobj +864 0 obj << +/D [861 0 R /XYZ 72 730.164 null] +>> endobj +865 0 obj << +/D [861 0 R /XYZ 72 700.774 null] +>> endobj +866 0 obj << +/D [861 0 R /XYZ 72 664.659 null] +>> endobj +867 0 obj << +/D [861 0 R /XYZ 72 628.877 null] +>> endobj +868 0 obj << +/D [861 0 R /XYZ 72 606.876 null] +>> endobj +869 0 obj << +/D [861 0 R /XYZ 72 585.207 null] +>> endobj +870 0 obj << +/D [861 0 R /XYZ 72 565.418 null] +>> endobj +871 0 obj << +/D [861 0 R /XYZ 72 523.19 null] +>> endobj +872 0 obj << +/D [861 0 R /XYZ 72 500.412 null] +>> endobj +873 0 obj << +/D [861 0 R /XYZ 72 458.184 null] +>> endobj +874 0 obj << +/D [861 0 R /XYZ 72 433.526 null] +>> endobj +875 0 obj << +/D [861 0 R /XYZ 72 413.737 null] +>> endobj +876 0 obj << +/D [861 0 R /XYZ 72 371.509 null] +>> endobj +877 0 obj << +/D [861 0 R /XYZ 72 348.73 null] +>> endobj +878 0 obj << +/D [861 0 R /XYZ 72 327.062 null] +>> endobj +879 0 obj << +/D [861 0 R /XYZ 72 303.514 null] +>> endobj +198 0 obj << +/D [861 0 R /XYZ 72 265.116 null] +>> endobj +860 0 obj << +/Font << /F15 437 0 R /F34 639 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +885 0 obj << +/Length 2599 +/Filter /FlateDecode +>> +stream +xڕY[Ü¶~ß_1苵HV+R÷ú)±ã´Œ¦í)`WÒìÖH]v³ùõ=7j¨±6užDžsxH~çB*Ú=ì¢ÝW‘|¿¿»º}§ÒRa™¦zw·ßåz—«"ÔQ¹»«w‚¡m=7×7:OÓÕܨíÐT¶³àx­‹`n'{jme&Ûw,Óï™?dôãµÎÖ#¬|Çùc¤²Ê6JLLÜ÷7×*¨ªæ4™û¶aÒxÂ/êL++ƒ¨í®?Ýý6x£’0I2ވiA2ÖYP™±±™÷¢ÆÌcÃL;1瀳žpš"hº‘™SÏßc?Ní3 >áîûá³ô,.‚d¢±š‡aÙþkO‡ðŸÃš}ƒ|ØcÔ¦«zZWÝ ¡Û‰Va–É‘ü­¿æ‰Aö§o†oa@š`Ɣǒñâ,`>ÚÜõS8ÆvF `¿2xZ1œÁɐÙnßéØǃ*Ê°Œ4¬æþÅ‹­aS†º,J¢ú{Vû1J£-µqæªü­…Ò /ùle'Yÿ܍ö¡kj˜G‰¤07/f͵í¹çg>’}otˆWÅ0g¸Â¹Dq0ú¹­¹=4'pŒó±Éà' Ž¶³G$ƒn¢£àWi2 +ʼdça—ÊÖZ±ú{2 j âŠÁ4b˜8*,/f>\«Ÿ§Ó<ñ`;2  .–ÉÂ8¾° nU—Êø{ÏNS?½yϔºy´U^ß$I¼».4á9âå9®àÀ•©QªwBÎÌ{Oìgöã2+ӊ2»_i/G(dâ‚7"±mS/Ólœ‚‹©;…èÿc“fV9‡ør\¥'¡†;É°E;…/¹µ"Ÿ‘ߐꐉ`JÅ;R.¨Ü3%tV¦ôô ©u`²˜g3âÊ÷|輵Ց³/•_„˜’!ƒ_gY]‚3LLc«”PØ7Ɖåî9ÀÊ Žï „‹ÆïÚͶ<&Ï Ÿ=&úúèäÍó ¶2öî¼Fr›Ó ‘ûò2Ž½£ÈBfkS ‘EÁÄÌÐ Æø¡×ϝ9ڊ§(9vÄÞA‚È:ü€á âé™;/Ek]Da”«¯±GqaTK`/‚VëÈróÛçsŒ‘4 F(ÃrÓÊK›¦0à;—”¬”B Bր&ùfætzÜåoöh&ž ØIÁl q@‘- q¯¡™)€(; ³w$~ ÎʨÐ?£{ÎG·ªÆfÁ¥‹â26!É°®¿I”·Š4NN¨† +˜u?1÷Ni®„âùJ‘{¾Räë!ØÁ¡‰ZÊëÀnÀacرå­/+ÜØ#ÇñDÃI©B‚àII ×äW{拼†ŽD–“Õڜ@‹:Ü°#ÑÈJSótóh»hÍà´`¾Ì–XÂG(r¦¹Õž$z[†n"älPqF€Rïxj›£Ã6M«3Îm`zÂ!TK‰ ÖÀ»·¤îc|÷öœ›ò‹p¥1,k©¸Á‹‹da ÞHËMÂ8ÌÁcR ;°fœ9˃÷oßÜ]êI/ôhpC©ßô´)au‰ÄaÃp-”èËZˆ¸¾‹ Ö/H§üQ`þÀŸžéº¦e±{>ÐÏ̳ô23à‰¥êþh0ž"•ª$òz6ùhá4’4#0'i.§É+ÀÀ8<ʼï±øñ„ÞÚ±šIDÞô¯†9wX•RG¸g™0CC#–B–úŽ9u3IrCb݀R{¦ËÒúýú8r~Ô"'¡X±à˶±‚vHßrÚÊ|Šv5ð`Y¤ê‰$»8,á ¢]»ûÏÕ¿ä®»š]%e˜”¬+MÅwL]ÿ¡§Ýä9 òýíç³Á%˜éT¡1"w؉–"ÛT1!ÍC3ìõ´Ø™œ)°Q׎ÆyO»ô†Á>Ü­º‡eXm&#Óì/Æ@”z´=dʍ£\a‡îæKÙHwy¬ìÎ¸R|›0…/Ë^DÌ9xÄî €„ÜÔD–É +ž,cÐᕿ¥K‘dïkQŒHÓx0'wmÀ™ëfy8/µí1u­722¡ïÚg—ýÅü…#ÜÆéKс¤¿/¡‰L±úàbŠök'´ÇÝu+¤sº-” /ÚôÅÈ_¿žZsl˜GßØ¢(Q^U’ÎŽŠÛJä‰C‰ ¾Ë¥ ِ'æ¡cadqáBâ”9¡!PðÓÌMa‘Ëb.ê±:Yé~@¬”T²¼L`Ÿ¬bSlìÆ3L|á1±c! ®ˆÉÀ‹_˜qþ6Á× _Þ s$ÀU®Ä· Ü ´¬O¢ÆMÎszyûmÎW,‚™ðeA‚¬äVSŠ"&ù£ VH8¿dedòþB¼’ë8¯ ûbXïðbn”\mWAî—k3/Ñ?}G¾ÄÓåxћ¯÷o6Kµ“Ÿ]省°ÇFöꞌ2Ú@¯0Œ2ákŒ[Šßù_Œ{ÏÈ}<æKٟK΀ï«Ó³W«9òu‘œ¦{€[ÓËå‚.ËÕ? ®tLU9·Y†èk:X!á82B‡¤Q 2m5·fZXtUDN¯c3¯ùIÛì'ž°t^q6MŠFz9%áIBí"q~à”gììü0Žm™Ùù2S_E¯¸áŠFdvýe\9˜õ'zy׫‡Þ3AmZŠ³¥d[J7­ã0Kr¸ƒa‘+ÞHœn +Ã¥éÄv<Ž +endstream +endobj +884 0 obj << +/Type /Page +/Contents 885 0 R +/Resources 883 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 824 0 R +/Annots [ 880 0 R 881 0 R 882 0 R ] +>> endobj +880 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [212.081 454.406 219.927 464.103] +/Subtype /Link +/A << /S /GoTo /D (cite.Sporer/Brandenburg/Edler) >> +>> endobj +881 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [260.468 340.293 286.523 354.24] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +882 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.202 340.293 518.339 354.24] +/Subtype /Link +/A << /S /GoTo /D (section*.8) >> +>> endobj +886 0 obj << +/D [884 0 R /XYZ 72 751.833 null] +>> endobj +202 0 obj << +/D [884 0 R /XYZ 72 533.028 null] +>> endobj +206 0 obj << +/D [884 0 R /XYZ 72 424.228 null] +>> endobj +883 0 obj << +/Font << /F15 437 0 R /F23 588 0 R /F18 434 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +890 0 obj << +/Length 1410 +/Filter /FlateDecode +>> +stream +xÚµXMÛ6½ï¯Ð-2°fH}Pto[ [¤-ÐË"—¤Å¢×BlÉ¥Ýì¿ï ‡”DÙY¬ƒö$jf4œy|ţLjG¿ÝðÅóׇ›÷÷BEB°Mž'ÑÃ.*’¨Š%|=TÑç8c)Û¬ÖyÎãvèOC¿Z§²ˆ·û²iô_dÜ®Rw•îV?ü>:ÏùÜ3ÖɆ¥Î崙Jâ¶ûZ›Õ:Ixü‘æOëmý…‹l%bmõæqsx!«’ÛURÄ>ËÓ©né¥Gí ú+bM"ÎVëŒÃdÍe{Eöj´¿…g&¦‰0 Ksù,êã1À\EƲLR²§C½­{=`Wi̭ѽ–ø­Tñ®=ZŒáytdaú²©ÊÎÛUݒEy‚€ÐyÙ×mc0;!ã;C†íŽ¬:Œú©6`B! %Èæ ÏyÂçB¤0·—Âï÷ˆG*hu +¿:4+iʪ24šg—ŠÅàÐZ.d’Q¦0L8û¾ð3t];4•]Â4þ ùø¿ü]ŠÞ:O?vºìu·î!œµ®÷ZOºY˜†$>–uã^ÞôÎZÂ-‰,(8¨§ƒ>êÆz³Q¼c>ŽD0)Åñ°×F“´.C¯Þén>³ ásÝïëÆ©÷Î¥n¶D…È£ÄôïáJ‹ø£‹¾¶3¨™\öCW•¨!â·ÆÔ_ú‡8fI‚»/Kp¡ÇcEÍ©sŠa«IãKj1|’†Ûʐ3³³4v?ºï1{H¥€ïïæ +3“…döíp¨.¥£¿O»—±r<üRžÃóÂ/áö•¶Ä¾DÃ'Ȥn;¶,„jY‘®¶kêkE´Œg ¨¦‰AÑZϗXÆǶiOû¶©·¯F³v.®ö+ØqÏXÖÛ 6ózp’%R¾)8Q·–œù9Æá_H‰;ïÖA?îÙ×¢0û}§õ©¨ŒmޔHIQ­}ZîG`J˜'ždáÎ?OuëH¨»ër·q™ïÚ¡»f l¤žl²1uÛÞÿ eՕŽbd5«ÑI¶¨ý “›x×µ~Ÿ¡Êç§óB3fNgÓ:Û0QÈp3Cp®È3áÁƒö$‘yfO×0§ÈY¡²;©š¸“nâ`hhÝchz½Å²6îК`8Z,Sô:š€¢ÊíK@&L¦„¨d¹Ø8Ds‡è„º+{ÿ¦þ~ ¼œ2]ðSÍø©?UœÛÖ•sZÊ%-g(&Eä›PäÙEìpyfTU!h`añ!ˆË6*$í¼²9 çBÅâ?ï?ü¤úI7×T;ÉdZ„œÍ§MŸæ)Õ;Ù ð.â ê±ÍŲ³Ég[^… ͧ-/ù[ɗ¦3T,œyÁR¸©pšºÒg „?&ôY­½swdbCÙ_ƒ9Ü«ËÍ9Œ-äð´-°UN<ÎeºÀôë< •‡D9¬•OW™ža±‚çÿÖ¯ŸÂßqÞu÷´ØâÓÝôÚe¹d\Ž s֚ ÆåXú“~ìÌåØÌî@Ô"RÃ:kØáûÓxq#œýÌAVw“•=1`Ëj=Ó$¸C§þ… +¸àGv~Ÿ†Ž.n­ÑÎôhÛÕzñáÒÇ>elSèœI¦Ë.š—·ѶȀ?ïYÐe»cäCࢁ¾h ðç<RãuÔ¶ôʶô )¦‡p¨‡³R;ü/€ ÎÒ9­162<úùÑ7Ñg;íÝm9l^BFØC?äò¹>Œ~[џ|³4@¸d_¸\œÑfJÓö·À¿£~^&˜Áˆ‡·ˆ1¼$I™Ì,O ;ž¤ò¢ñ‡‡›¦½ +endstream +endobj +889 0 obj << +/Type /Page +/Contents 890 0 R +/Resources 888 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 824 0 R +/Annots [ 887 0 R ] +>> endobj +887 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [377.519 287.574 437.517 301.521] +/Subtype/Link/A<> +>> endobj +891 0 obj << +/D [889 0 R /XYZ 72 751.833 null] +>> endobj +210 0 obj << +/D [889 0 R /XYZ 72 730.164 null] +>> endobj +888 0 obj << +/Font << /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +894 0 obj << +/Length 2149 +/Filter /FlateDecode +>> +stream +xÚµX[Û6~ϯ0úˆU‰ºw±ÛKÚ)ZH§E¦h‰cs#‹SIžd°Xô¯÷ÜhKy>ì‹E’ç|çJG«Ý*Z}û,zòýòöÙç/ãr¡Š³tu{·*ÔªˆËPEÕê¶YýdëM–EAíӍëM’Á›(NMÛà$t×0uotcz÷ðS[ä­õh]·þýöû$àëÓ0Is…×G+ØVU&·‡1ßÿêÁôÖ¼Ÿ›³U‡U–ùͪ +‘üvoÖ•æÁ/ëR®ßځç£ù0òˆµZ«" BvÒOìþœÁÔ•Åñ›(‹ÜgèÍ: Ðb¦L¹×5^ðÌèÏþ½)¶ðµíx®ObÇ"6(ÊNiš³v[;coô!\oÒ( nð0€œ¤†ïÁè“b0½s=†½ë…&8$1àòœ ^0ïœ0jbìuÿèu£G {þ”<¹È0•[,*ʶ®Û¡¤yÚ¹"µa:˜{ÝëÑð¬u;[ë–9Dg¸W˜‚f8GݶÌ¯;þþúãÌÁ 1qDõïY±’Ù0ºï²<Øƈp;Ø=‚),'ëñòlåãv²ùÞv†i Ò`¾µ­e1к¡?WÅažOý6UñÜ;S¥Îq‡«hh$²¡KÏ3:^FœË@N:¦nd=²tLií»µç¸ÜÁ¸N¶ýۍ£ív¼¢™öÇъ?|D˜!ÀYÉ_ u8Ð05DEOUá¹8ýêë×!Г‘žzDe‘&^à šiäØ +Évààt Ê4DC$¯7s@‘å^–)¬a½±Cͤ-ñ(—trµùpßj+g‚ítے,íö¦ &’‚ðBÅÛ ÌŠ)ðm€cÃè¬7-²q,&Y!ˆüGAûɪÜÕ¡ËãèdiœÈ­µ;Þ6°å=^ƒÞ7ƒ²=Êev螏Kaºsdø¤`ñ{¶AÉ‘ßãòcGš?’apˆ‘¼ëõýL›AY ×Æ3 âÙ£¢%Á K[9Šä!‹/²C̼T̹lϲïã¢YŽ}DZéH_¼Î1AtyÁ3³ûb±8­ š¨<›‡çw¹h|é¶8¨$øB^…ƒ—ߺ]ÿ¸»mt‹‰«ßÜtµWýj(—þ2QÓZ¦²",²ä [ßÄIzóC'I‚ŸF 2t‹ó4ø×ZeA¿‚;vÍg|ܼ4VYX¤þ0T;†’(™°CS#~àI˜VÉF*ӏ”?<òŒìé„?×Y\GRÇA5®ª"|Z¯gÅ~ãñMã°,S_ò—ü¯¦-‡éjG-E#Â^è$.5pªo%~:åí¿ÙK$©šçä$M ‹Bå—Ʀ˜•‘OêÅ(µPí Û0û!ÅØݞNÛ@qÛÔ­¡`‚ö ôJ(™$,ÜK×)“ORÚäÐÉޓT—S2¸ eJPüUìB*[aUD1’—a™e+°ž%ñlÉ8ªlzf|EђSÆ +Ìï2æ«¥LE]h.ZÓíÆ=ICøíKrœõåU2|[{°ã\·dQ7•€©ãôÿ®Ü–*ÿḣ©Ï‡°0Ñ@13ÈÅ3{€H ñ3°lH~‚)]—Ë€ó¤ ìÐÀ’·ùN©õa0­¤#¦iÊ﩯88 Ö¡mùdì`M°dã{Ъ n:ÙÛ4VêpJ9w)9³êÅã#˜A +¯ ’—bՂb ŸÚ gÜù/tŸwú`ü&‹t;8>»d"Ä (IŠbâ'¸K„{©lRý*sôøҁ6šPgœ3Ià1ôŠô ìßcÁ¶ÄaÄë½!¡’ã±µäCdWyÒàò`F^?#š€¬<2=uäsLúò«…ýªß-™ î›>Ÿ°†ÞpzWQ¤¢".>»ÜÄ&Q67 ÌM<*ò=3PO)mÞ¥e¬÷쿵—  9¦¶¼ŠrÏ~„Õ¹®¡`݁‹t§sۖL IFÅ9ëó3ƒöo”…Þ²ûÿÎÄò‡Ä¢€ß3 +8³!À ü"¨Y‚obp–„a6U˜æÒ\©«2«eæ¼qQfþü|ûrSòðAVÎ"C?…À¡O^•^²krUúd"=Wg´3ðð?Ÿˆh¶ O +½rZxy² ¢Ÿâ¼ +‘ÙNàÁ£-ÿ~ê*~"È¿üª¼ùYÞqo‡)’¨Ÿ ÁäÑéÍËέþ·s?æ²KO +%yX•Wè¿K' ËšòªkSÞõz·Ý[ÀþJ`û>K,%Q"šo£'˧y[uUÄrâýeبI¹ë鯿¹ÜànFÌÇvQÒölÜÝ +ú;¿:u #¾úÍkà|ýêõ¢ðWsŒãhIæ ªó5ëLxé­:{+(¨/1Ú³ÌÂ(*$—‹{¿¹}öY +endstream +endobj +893 0 obj << +/Type /Page +/Contents 894 0 R +/Resources 892 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 896 0 R +>> endobj +895 0 obj << +/D [893 0 R /XYZ 72 751.833 null] +>> endobj +214 0 obj << +/D [893 0 R /XYZ 72 730.164 null] +>> endobj +218 0 obj << +/D [893 0 R /XYZ 72 703.022 null] +>> endobj +222 0 obj << +/D [893 0 R /XYZ 72 473.867 null] +>> endobj +226 0 obj << +/D [893 0 R /XYZ 72 440.525 null] +>> endobj +892 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F32 532 0 R /F25 589 0 R /F23 588 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +899 0 obj << +/Length 2427 +/Filter /FlateDecode +>> +stream +xÚ­ËrÛFò®¯@ùB¨Ê„€Á;.hYò2+KEgwãø#rÊ   %åë·{ºh†ÊVí 3===ý~ÀµV–k}8q÷¾ï–'g—^byž“†¡°–÷V,¬ØKá¦Ö²°¾Ø¡#q: C×>¯«NVÝéԏbû»Ì»úÔ÷ì†ö÷´ÙdÝé×åÏý @>’w­©HŸ‰/×oûv^o6²:±Ýàû©Hl|¢i 5ŒÚvÍ6ﶍ,x¯6ªÌšò™¶ÀáÓçóõüß´Bò‰ý]5uµÿTy•Ý•ÒIƒøÊøPµ¯QäÛ œ ˆˆñ1¿"²w½@–EK»¼®ZÕê£Ø®ï ˜0é¬Ê6’O«b€‰¦‘íÃé)T…ªVtLܖÛSϖ„Ùß,kÂþFðR}ÓJüidaDd…NÇÚÅó(ŒAÈȉ’˜„ôðâÙ¥ï[1à¹žÆ ÈM€Â@ Ý÷ëÛWÀÐl±œß.ßnä«7tuôĔïNS'ˆB" þö=±œ/¯.Þvè7!ø[[oQz\¢šC_Ø¿Ö àÝ©Ö01v@t?ÏO…çDÑÐßÝ')Áª¥ožµrªªV‚y;õí/ WQ6BŸßønADÝžÏÁP‰=§½û$\ÂèÖM½]­iã>Åï_ ÿýÈ Y{¿»¡;y;‡ÞšÚò)/·…,Ѝ#a^Šñ%ˆI‘½ñ˂&;AjÅu ÕÑ"/eVá2±?//§|,«œÒWah˜L'i‹áƒ_Í4^îM¢‰Öä9ì@ÌzÐ莬Š©Œ,MÛÙ¯eÉ^-óÇ9]^*ҟK™£=ZãÈñüÀ$¹wÒ8 h $ÝÂ7£ÏCSsó¾F¾C̨6YI¥Î1¸ÒbÅÉ ìYYSÐÁNYpZÁ™æPïFõš6üd!Û¼Qª‘ŒÖДYéI׶à ]´¯­‡pEÌB·¯1Œ!º[¨a¥¤Óº!Ø +‚÷A÷ÚEI‘®}@HµôÏoÈÓ3çÈé°(l-3H:tÝäåƒÅœ.eª¢¸¨+ùšsCYroPÁ#ݛÄëÎ>æL1Mô¢72º£.àÒ3.´Ø@KAÁÕhÎN¸‹U¬ìA Ad÷ãùù•®Çža3Ôî~l´{G³ƁN`ãÿ†®îäT×ÉÂùßkãùͧÿ,æþq<;&®ãïþ1œC}DÈZ÷±ÌX×5ên‹™œÛA¬ã¼œ×õh© 2= àâyÂêzNL 剗¦)~õ¡#𢮛œÙ…æÕüüâúöxËƎHû¢p¥rYµèûA¨»ü{GÂbhȕ^xöd†]°"{¡Äó\ZHÈuÔg“»2ÃÜølè¢nŒìjp3FZ\’ž×œB¨$Ž+Ò±—=Ó^LÙzkºa¼D;f´=—ßý«Áƒóz³Ñ=!èa^zõøøèäƒKøJ7°­S7«³»2Ó:ÀïßvH+›ò•ièöãN[ªEԍ‹ËK‚ÜpÒ«>ã'½}® +Y´Kê) P¶ 8¦é'@Ë-Át¾zC‘>~ì»ü4§‰Vr蒘ÝÃOgg¨%‰í¸VÊüÓÙNôÀ‹åÉ'˜þ]˳|/tÜØ·¼¾Â³òÍɗ¯®UÀ!¼ì‡Ö£FÝX¾zV¥u{ò ÿŸ¹°ï%N˜(„v +h ¢=Ó` Ƈÿ?ïÇð¾/Æï×YÙ»iêÞ Œ…„¹²lõߜ×ý²Ë_Hl¾éGF™ífñav=ÿmvšBöDǟƒSÞàâú…vY@󝚨¿î3ó,X2«ÔŸ™™"üõ@Ùl›óèXdæÇÑވ„Nªã6=ÝIAÔð¿¥23cÃäåéÇð>Êtï/nÏóO˗†ÓÔs„‘š ¶Ð™¿‹Ð™ŸÕ_(føw)Áìw菺åù"(†öÁuˆ]ÃO"ƒ{þtk +endstream +endobj +898 0 obj << +/Type /Page +/Contents 899 0 R +/Resources 897 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 896 0 R +>> endobj +900 0 obj << +/D [898 0 R /XYZ 72 751.833 null] +>> endobj +230 0 obj << +/D [898 0 R /XYZ 72 730.164 null] +>> endobj +901 0 obj << +/D [898 0 R /XYZ 72 508.744 null] +>> endobj +897 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +905 0 obj << +/Length 2266 +/Filter /FlateDecode +>> +stream +xڝXK“Û¸¾ûWè6T•ÅåK$•­œñ£œ¸ìªysǾCa$d(RæÃöø×çë(rV5qr‘€FÝèçG‹ý"X¼{<ùÿÛöÅ/oÃ|†þf½ŽÛûE-²0÷£`³Øî¿{ïÞ|¼y³ü×öïã&ìXOw$™Ÿ§–˜ÿÕrG©×š¶§aæõæ{/D[ïlYô¶©eÞÜ ÇqåÞÐÙR¦{S·æ©È™’+•¹ŠB?MUÓ×Ë8„øMèmŸW8ÞøÁfí~]ôFÔéF5n‹’Tzé·%~Šeèu2oMÙ´;³{^E•2Sñçk(yÛ÷Ÿ>>«bøA¶q*~h–+ȝšîÛÁ´ÏiÛ ÛÏ©ªÒfª^ú¸%U_-ãÀ»Þ>«mšúÉ&vÚ^CGR«(ÉíI ·ß7íÑ)Ÿ$¦2‹ƒ¥lMÑ7m'd·¼³]ßÚ;X~˜,ÞÏö&çûûËU’çÞü«Üe3T|{8$ó£(_¬ÂÄO’µèzdžUCb³Ï7^ʨ¨eÁ [)i·kM×½|1'’I·~D•ž^ÐÁ.s ÷é®V»J[ïe±*T§ÊÞiÑƏÒ'ñõþöæúùЏýM8†þ{q”ikvë%Þm_Ô»¢ÝÉì†CHôËÖð®¨ldU\ º\*sîȼ‡_1ßl¼Î¸\!7X<,Üè/¿ËÙ»&ýɓ×2³¢‰¸NÅ~^x÷šU`'>كݛʏMk\é™Æ Õõ-‹ÌX$¨,qàzDnÈ=Óv?é‡8÷ãM®†=ž*­tÝóyžùa:¼µ¦b«G^]M'C”Òa$7½ T;™\‘¥ò©#í³»bg¬ž$ÿ1:¦eS—N1 æ}£íq%Uõf)C7³=Ǻœ/:aÀé²AŽô¨¨¡w<õ2çs±n¾—ÕÀ³qñ‚Õ#X¡Ðzíý»igs¾œY×Rښ–ÁôB%ì$(MW_©.ÝI(Ńp¼©÷•íìK˜{%bv,üò6Ž¦Þk“Ü9§\®DMoê¾æ'm0ôód,‚T ‚Ü;4KW’ÍWþÅm[^Ü ãѽ‚X/$ÞçíÛU.C.i‡É· +ÉÔ¥&Ÿd#HlZœPT•J΢{”…ÖœP¯ŒVd ÿ€«¨x8ôã(žÛ£¨¸Õû™7ZnZoþ¹Ì# +Â(Cù+h××¥„%QøZQx•©÷ýAˆäT¢‹ª›mó=Q…mrÆA˜pvõI¨¸:D)‰&ëç6"­¨"ˤkœ*GnӅˆÃ˜3“FšN HÁn†š-Sl-…LjqŽROðea?j[@.[îC7á1²½¨HS8WÄÌã²Dö83‘sgº8»C©-ÚHÝèæÎuE hí«Ý ÜÒÔ»¡õ­øJHǂö?ÊDƒº©Wݹ‡€rNËZÚ0üfQœjtMíS%H` = -R3¹}"E#ø‰«ÊæxԈ’øUÑÝK¥–‚aÒûS¯¬LѺöÜ6Ãþ Ll©|Ä°ð[︬žyâRÜh fo®½Ww¢(¹ÝV +fhàà¤EjíàՋ鵐¡ùÙNþëFþϾX¹RWZºk)ëÈzš}—Y¯»®àç™+!MÒ#×Ð ÂÌûm™‡êmYt¶£ñuÕ%:Všãż!bùˆ7R«â|ÀÝÉRÑÞYà†ÖVÂ£6­ª¡‡q¤Üѐ›¹”aÌJŸ: .éŽçê-«ù1Âw…iQ)õ l€SöçÃ/\âŒ!àÑûA±]_ìÕýˆkŸÃÚÁT'Eé–ó‘O­np¾˜pÚþÜ\s„†ŸàXî³Di͗åRYIj¢x…ƒ‹&Cm¿ :þ#XúQ­ÐÜÍK¡\&²Dù›¥RÂ÷*v¦…‰³$ð^u—ŒE ÉR´úÈ Ñ­Ã_#Ý@E3ÉdÈe:~´Ðdühá wZbhŒÔ4f²Ãkiæ*¬Êh{|9t¿R-ÑN@L÷ë’PÄi/ÞÂUœ£:ºãkÈç€VjĒ¹™¡»3ʋÒÅÚßdYJÈ ŒL3ˆHý4ÏDD¨x#^dà Bæ[ûi0âW7Û÷·Û¿¾¶?~àöktˆwˆdD:%„‘í31+Ý¿jI¬E?+涩ks3ÙºûoÙÿn{Û÷ÿ;ª^û‘“OÀ¹’‘@¡çvÀgÅçŠJ•%–à¦$Ðø&šÄ·[gÛڎò(½Ûêrn˜`–\zî„@ÌHD8@üÁKSY'— +TQ¹D¡÷¹®ìƒtù *…šÊwÛõ2™Èˆ'2hi.㥀dÛ #w20 ’Ç`Z)óð,­©…Éyôæ@önUÖFvwQ`o.W 2P1–S¦ª QǪF‡öŒnᶆ.³!£.&”´?4±?¦”EŒjÑënyDª³;Óð|Ü´ No¢¹6š;™ºT͓H §5ªÇ'ÂõôRP=J &†¡^Žu\Ð$¿hdŠ†ø5C4È==ógeŠgéõä$ˆôm¸Ž(.µí÷WzÞèÒÂ4Ê0åoÛÓ‰Û Í¿,ûèpÉê-À–áW. 8Úõ«ÎîkAu…Ükuǖ‹õ,vo'èÇ1#ªXÁV2q^Lás¾9Íõ¥yr˖á¨.R#®ÆŠ¢8|¶¶*Ð$UÞåˆúÓӐH;‹£YØÝ `éÍÆ£ÎQ²Ì{îb⠛#©ÐúP”lB´‘ Z‡ÉZ}vË8ñ—”ë2%×ÇÑЊÿj2‡QðePŸœß,ðwã÷ã›Þ…W¥é¸Ü€‹zŠé;®—pÅ" +Ðʒš¨…Š$âÍEÞ7ÛÿB†7ª +endstream +endobj +904 0 obj << +/Type /Page +/Contents 905 0 R +/Resources 903 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 896 0 R +/Annots [ 902 0 R ] +>> endobj +902 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [406.584 613.767 513.537 626.386] +/Subtype/Link/A<> +>> endobj +906 0 obj << +/D [904 0 R /XYZ 72 751.833 null] +>> endobj +907 0 obj << +/D [904 0 R /XYZ 72 585.913 null] +>> endobj +234 0 obj << +/D [904 0 R /XYZ 72 293.44 null] +>> endobj +908 0 obj << +/D [904 0 R /XYZ 72 132.821 null] +>> endobj +903 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F32 532 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +911 0 obj << +/Length 756 +/Filter /FlateDecode +>> +stream +xڕUÉnÛ0½ç+t”˜æ¦ zhÐè!'£'d-6QIL-9Eþ¾3ʶl%p.&‡Îòæ=™{{?oøÙú}y³x'K‚@zËҋC¦xäE"f’'Þ2÷V¾d³çå¯Ã+o5× ÷ÏbéMnw³¹âÊo»i6´â_½Ídü‘CU4›nûL†Íeäg]ѵtÑI^äd—;[ÓnÝ_Ó4‡X¶¼ŒßYZ!=n$:AžÐÐiìÍaÕ:¤öèÝ-øÉÐol‡›Èo°ú}U‘Õ»Ú4iWäКÃ1‚JÁÂÐa¦&1{Ü×Öu±£Ø}ý:³u]@ZÈFO\è¢Ê[rCLgÂW’̵q^û¦5›¦‡ +¬¿û”BÀ5,ïtÚ¾RÆ̔ï„Ñ¡Ãݦ ò_¶ÌÇÍêÉfïahÂ?¶$c=„DCùœâÂppSÒùêñ¼8<µ%y"Z~*zûŒå,¤8e¶L„!TØ×ü|Æì’i .üÂ&q9¦î!ÇÍrÌJÇGȑhðP1®”£Zà¨v9‡Ðï;¸œCèæêãJöW DIuˆ’Bg Þ{ÇÆxÂS‘§<‘±<—1܎d,2†ì3îe 9%K§dy¢dp%$\÷ PSJð%%‡_Wrx%–‘CŽs²eøM’"~ãõ%¿½|ò5˜$·âœ‰ä ÜŒ1â+¤`‰”ãޗ[ƒ³T?¬iÖíÓªz'«µuño›vdikú6`ß –¶yÑf;ãFî¢5¸jbH wh'¾©_«b ]Úې +Fݺ)fŸ7üqçYê^8PûÞøX„¥Ý#q¤ˆ°Ž)¥O‘ÒŠÅI4 õfwkÓ.*³^˜¦´,›—kÄjxs;6dB<^(ìËkšýy¡YwHŽ” TÄ­‡ç)t0‘f§Cqžcß\EG,ԇÖÇÌ?ÊDb1 èD'‚‰`øà“î?–7ÿÂù 9 +endstream +endobj +910 0 obj << +/Type /Page +/Contents 911 0 R +/Resources 909 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 896 0 R +>> endobj +912 0 obj << +/D [910 0 R /XYZ 72 751.833 null] +>> endobj +913 0 obj << +/D [910 0 R /XYZ 72 730.164 null] +>> endobj +914 0 obj << +/D [910 0 R /XYZ 72 700.774 null] +>> endobj +915 0 obj << +/D [910 0 R /XYZ 72 679.105 null] +>> endobj +916 0 obj << +/D [910 0 R /XYZ 72 642.991 null] +>> endobj +917 0 obj << +/D [910 0 R /XYZ 72 606.876 null] +>> endobj +909 0 obj << +/Font << /F15 437 0 R /F21 587 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +921 0 obj << +/Length 1954 +/Filter /FlateDecode +>> +stream +xÚµXYoÛF~÷¯à#D —·ô¡ â E€¦‘—$0(q)¦HuIÚq~}gvfyÈTd'î‹vv¸Ç7ÇÎ!×ÚZ®õöÂ=¿ºxy)KĎ'ÂÀºÊ­Ø³b‘8ž»²®2ë“-–aèڗe½Xú®𣀌b»Eúþ ùY‘íҗF¶ÝÈ´ÊèS&7tD&_®þ|€…€ŽDq-Øæ¬V!ãp!ùëVªÛBÞMÍ¡%„³ +C³Ù[9>Ëðq‘xv­ÖEavEX¼˜ÈqA˜ (0Hb}“ª&ªkdCÔ»¢’tÄ^»iUZÒÇ÷xFZð‰ŸÝÐ}÷á=Þü‚¶¤ a—M͓²•ªJ[YÞÓú›ª^x‰}Wñ÷£ÝáÆ%JŽ‚²‚ " ŒÀ¾Ä+•ü·“ÕæžX$¥o¿ûp °1•<(ÙÈ +Q·i[Ô-jkúÛIG™$FJC³gÕµ;f«Â·éÔ[ü‘e=Rk`o:E|ZIrv»“±Øêù HàG€™/««F" ¨œ>áš@¥k¬ –Å2ŽBûj‡æÇ-ƒäI/9òé{dÕÅí" ÁH¬úÞ.Ðÿ5™ò¥*Í +<Ÿ1JZ–KÆ[êØE…°ª¢5óý¡+=ñx ˆW5¼ÄÈA3­0ïXݕm]ë}¼£Ó»3s#%xRʇ€üY±iAÊa“±vQm_'ñµ&g¤šu/²÷©~D4Y÷6‡aSk]“ÝU«‘ÁíiÀz÷þ51NL1ˆÛb#—|L“:Ç!à8~ÂI’>~xãHæb$sM$s)DåÄÛ§íc‚KÂÑEhb‰Là>ʍÆÛvÊ#PÏUS4mCKÐ}‘Û_‰(È-åVòqx‚,3^OªôZµi§'}Dõümð &÷`œ7|VnwÚÕèòƒ<ã%Eqž±wlfýò3òX˜é àfÀ6à™Eÿ¨|$ôCëtˆ…¹öÝÅ3 +¤ +â­GŽ%Ó Îv4ËUº—s~0±–Ÿ@*Hz?0™d'ÓL²pvr³Ó÷ËëLEŠÝúT­?6mZmHڈŒFg$à°y&qj36FêzTht –ÞÐÜd` YÌÃbŽjw…â×u ÕÞè÷Õb¦p0̅3~<…ÅÛz#eÆ@S¸.á‘ÀÚ»æòòҋ¬ÐYÅq„J]ŠÐ‰ÜÆȉ’˜À ZèûV ] ½Àqa‹Ë+(™…PS|Ê˺Vîu­@Ô/Äû•â•V4vð·•dnQñcà ÚÇÏ^ðNgð2ŽåÊ ¢€Àxgázá‚>å3 Ñãár8ôÏÂõÂ]§êæzŸ®|Æߺ÷ ÐÅS g¡¡§ûCY´]&¯tÙ3`×1û±àÙM³àÃ3àë<‡Ç=öïÇàËb»kŸ¬ýè¬ÑCªn¿–êºÎµökÈ@π?¯;5‚ÏÛÍ9⑆‰ÏÊr¥J¥÷Go¤ºÆl|ò=Ó@ {Ãƒ°18ÒÓXIsº€-ª¡ý§ìIÌt³{E¢MÙ2Ù!äz‰"Ng¿éЎå{¶¬ó¥Î‰Éô RU¼8õì¬S\`iÒ§i¨F`N$ä(]_‰¸ZPɞ¦ +ÅH)YଂàݘMSÃ4‘Éå÷J”t]JLZ«Àþ‹ÝÓDè n«° = 6Ñ`á³,å~(JNˁ)mð08IG^ŒUé>ô˞ñ“˜Ñ¿øIì›Mí.廩Iì-ˆM5”’RiàpÊpÚ&1Njð¯Åv{bL*À¸¯écÅ+u‰¥ëun^ó¾/&356ô§•iºU­h…TÊl{‰>…„s¡Ðk¸©6֞ëeMQ3˜>Ö¦ßP†cC?±îãüúÿºÐ>=Ô~âiµß›¯ÐýA…îï‰ß7ãJÎ%Ö¨åÅ)UozKÅc—5‘ÓŒ÷÷ÎÐ7ù¢@5¼„‹1 03¤)r@‚•buÊ)e¶o…(:çç¾ãBÓsäæ\r͸øÊuü06ë©;ûF“ú‚ÛpúÍ@Ð7@‚ªéž&ä@ô®ˆo9r¹'¢•¹új²úý¿ K!|-æäõ<,¾{‹½ ç»Û¡Z‡Æƒþ+ *X÷ó¦¥M¹‹é]xôu¸“?0p©iú-£Â:;ÑX9ÆjãèMÿ?÷I8dǧ +õx(Ôã+ԓ)ÔûZæ§ëÞIæJ¤¾¸ÿ[ù^pÆÅþ‰‘ŒŸß^p~Þªæá–Ð{úo¤Iéq›Ç‡™Ze5!Pù¬8näˆà|}„ŽÄsõý¦–y^àcìuW4SsÈý¡½Aôº”ÕÿDúVnÚZÍä‹ÇúÎâñ˜J©6ú9¯Áè.à×R[‹ˆÞ^XŸhqYo'ñŸ;äGViÜSn7VCxº˜ª!ü®Û­1>é¦÷»…VPkäo{§k1œI¢wP5bFU©gë£ú?~œbðȆÕ0J®Ä: +¾Ha~•íԍtú®uÚ>õïÿ´> endobj +918 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [295.415 121.411 314.345 130.709] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +922 0 obj << +/D [920 0 R /XYZ 72 751.833 null] +>> endobj +238 0 obj << +/D [920 0 R /XYZ 72 730.164 null] +>> endobj +242 0 obj << +/D [920 0 R /XYZ 72 703.022 null] +>> endobj +246 0 obj << +/D [920 0 R /XYZ 72 574.987 null] +>> endobj +250 0 obj << +/D [920 0 R /XYZ 72 488.603 null] +>> endobj +254 0 obj << +/D [920 0 R /XYZ 72 270.878 null] +>> endobj +919 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R /F34 639 0 R /F29 645 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +926 0 obj << +/Length 2848 +/Filter /FlateDecode +>> +stream +xÚ­YKoÜ8¾ûWô-m ­ˆ½6ÈaØ»‡]dǘ‹Çänº-D-y$µä×ÏW,R/ËngãC£ù(²¬úªH…«ý*\}: Ýÿ?.ÎÞ}”ñ* +²$‰W7«(T&W‰Hf«‹ÝêrŸ_]üûÝG¥V èBAt: +¤N° SüFâ|)±¾,ó¶»âöþûašú=ï1áµq›l²@Çï”œä• ¼îͶ«Ç·3‡»/<2eߘ|÷˜þ¦©ܺ.º¶‘ëÛ¢Úss[ïÌu]å^u<\Ïí¦¬ë&üB³_Ê¢íÎÅÚr•kSšƒA·ê¸ t¿òr'ZQñäïŸ=§ª3ß@Ö§ ¥Ù éIC¥ƒ¡ò³@wk¸Ñnó2wÊÜçåÑ8a!B€rMjÕN­|{ûx)ëñôIX³¼ì䳓 +eÏz™SMBRÂkTßÌ4§•?¯È²iME„KJè Žc¯„-pêÛ¼3~8B‡Æ|£ž)a*w Ô»ÜÖææ¦Ø¦êÚ«‰RK°lãsâ´bСp`$,Mµïn§‚M º [Ѻc1mëUÉ«i”ÕÍ‘óv•¢::us–¹ãV|JOV’¡ÒDyåVgcåÃ@+é•ß/îÏ$“ýõÒþтq¥ +tõƕƒqwueÁ-™ðsŠ‹h%DE‘$J‘2X `‡çç©\ç_Ïe²†•Œ×UÝÙVbF¬?Qã¦.˚H,,ÒÐ]SÃÖ2]›¦+০®Ý™-ü;ó7’©O7ÐBM„K`5=îP$³E3D*á­õ÷ÊTOh½â7.óÃ]Ytǝ¹Z2Q‚{¿áýy¤×DÒ JD¡U‹þ)që@ö8ŒP¯1í±tm‚úÏýTwlÜPoîÂËû5»‚` õ…km‰Í-¡YU™ÒzÓ&äÈtµ:Ð:f‘‰^‡éúX±\fÇ}F‡™Û‘Fnš¹É6)^í!S§>vwǎ©I]ë'V;ðP”%Ó^[•]^–g£ÄúÄX†ö»ŽÊ­i‹–|<ð2Væ7so³ÉKö¦¦i¸Ùvùþgsuõ¦s4vb»=6ޗž €¡±Å¨?R5xÖs7Î ÙuÓÿ×u!^HX¾©o6w9¸§kˎ§€u»¢+jG¹;RBµqh»cÕi ½­åŽÛýѸ}ÚJzÊ8³î‰áª>ٙ:ÞXÍÑT[ó~élëe¦ž”SÖwñzÊNÞZ–€ì,8Ú0?¦¾÷”ŽÄ¢Š=z§2‘²îi•APaHƎXd:TËabŽ^T1µçd£qA±7ƒ#¼! Q>É»#­•îߪs®]øBꗣN’esÔ1Ìá֚,qbáчÄé1ì€;ê}QUlâ˜Ë"å„GËPÑ/¢ñ…Í™XûS£,Aõ3±‰tˆNbŠFœ‹?p€fbÕ ÙÂgÄúí*–<ßvn¨wwoQqø-™NpˈNíQÅïHHEÒ"\5û7þ÷éluÉóe½ŸÁ& +—œ`æX¾‚áâÿK}co í¢G b’ôuÀÂéh-è/^sM@$|¥¡Ço] m œ¯Þºp£ +b·­› '/«åʘE#f^íRáÁ‘õ`‡Ïûs{ór؝¸ªnRZòoÅÁ9ì/m[\—Žfp¤„iÌʉиÚ‰Ø4 »Ÿï_ðu-Ôà×ÉȯiÂfRüó=£åG´šÜ¢8Ñ8§[ ³CÁ>õ/©D '™UÔ ^•‰ J¡CNb~g–CöFgï‹…Éë*˜YâF&—œËô%!Ò8²â-sâð+Iœá/3Ò"üˆÂâ;÷óç±à,†žE j Á{÷¶]º<PÐXǦXÙú#½~ùFàŒTÂ5K÷(Õi)zØ öïÄã3µGÕÜ5ûlï 4éJ0鍆øx¥˜å-»Õ±i WG¤'9X4'’ºo))ÑT¾tN*F,⑗ðCÆVØOO4Þƒ*•Âr¾‚ó‹'ªd¥]=¦)ºc¸IØ° \–"K{ÙN:OŽ‹yP¸6[¸î ¥2!u(Œ¼·Û5OäQýj%ô —Ò.LI<…»Êkx©ôÌRE.sÌL“pó⥒^Õ£mÍvþߘÉýDg+7ŒØ\OCöšf¡dáù‘Èš‹ ÞÔTÓ‡Në ?A@̼ƒWÇ+‡m©cË=ÔÎm´‹[>'åÎKÒ“6 Њ¦±Ù;Ì};8O0¶£5\¹¨7d{É]e«#˜n¡ÔËýu–ÊHIÖ¤¿ë#ÜBÙ\…Þ¨Úl8^‡¶žÀÿ¤°B$&®øÁ”ùÖ5nß¾®k»ÆÑ°”a_üÐ\å=H[ÉzU‰ù¾²•Í‚^µ»ãì +œ béQé´Ü£‡¤u•*s˜8:ßD‘¥{bœöXúlz í¦*uéôSqß ðw9¡è,È2ñҒYz .2Íޞšå°7±äˆÅép„HÛã̄Ÿ€÷`ÃNß_€ˆÀùEʕ+‰Õ2½$c‡`ÛŚLdÌò)Z”¬/ÇÉ–›gÿ¼8ûÓUª7Ž(ЈT©#âj{8»¼ +W;ÌÁ=ì±>XÊÃJ‘ ¬rõÛÙg~öŸÕ6’»•€¹œO¹w7ëÓÂd8|”¯ Œ eFz* n…楲È8x÷kȂ‹J†©,×yóuk¦Qk½ÊqH$É(I§\ùÝc¦p&ûÅæ˜*©ìv´-~¼Øì*àD٫Ȃ0ÔZLeéáá1kÐbËWa´„jƚn]W•ŒÓQ|Ò‘L¦¯! Bª0H|EòŒ%„„&™¥Ï´þET€fSÖ5eÊÖÐוdÓ —ô™Î_hh«ŽwäKö hÇdö}“›þ’÷/­….^ˆ;Z o½Õ"¨ãڒ EÖôþkœ ×îQŠÚ}=¨’Ùcë£÷Æ»†ñ~ë.àz=­söôWU¾¨Î,ƒ‰^s´ÍûÒñ5õ_t3Ñ®ì¥Æðv´”ýÓŋ_Âa%KQڟ^žè•% žþaÛñ÷×q²‹¾´Ü̙À}Zz2bF":ux +)2[ÊÈ´ûCAŸœ¨Õ?@óÉEˆ¾pVÉ»šÕV©Ñú¿Ð§y(Zû¦¨ùê™Ú‡4®]{ÐT7·ÇCA7Œ=¸k‡ò_HRÿ…DÓS$9VekÚÖS5Üè×íGº‡'ºÚ ÁàBÍçÕéEý‡Ùُ-«ù*ê¿HÇ»Hð£ÏN2‚Þ@‚×>ò%ó#•†€Ÿêƒ£Z¡RŠeÌ@h´DbŸÝsŠ!›aŠ +nېSøÌVTO=¨šÅýÇ7¾,.¤^”± )Éù³X;çˆhKµÝ+VÏ&|DW–é×áŠ:#‚»Ž¹.&|‰ÌǯÄ4Sö5iÌtÚé›R]BºáòéÚfÿ-Óm$Æ$j»ŠßŸoîÀ4kzi[MoéÀœCSÅQµÀê¨áq½XR' ”èßê媌/á£,a4Ó¥Zb‡°MÓôEÖ>³_-íˆB©ž¨)<µ#nyÃ[‹ S=e6‰û„bf·YŽÛíÃÒ. ÉôÎøÔÝq#Š®¹6"7ã¥Z.®E4üÙà í +endstream +endobj +925 0 obj << +/Type /Page +/Contents 926 0 R +/Resources 924 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 896 0 R +/Annots [ 923 0 R ] +>> endobj +923 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.242 475.12 527.444 489.068] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +927 0 obj << +/D [925 0 R /XYZ 72 751.833 null] +>> endobj +258 0 obj << +/D [925 0 R /XYZ 72 310.695 null] +>> endobj +924 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F29 645 0 R /F15 437 0 R /F23 588 0 R /F34 639 0 R /F18 434 0 R /F27 803 0 R /F1 928 0 R /F21 587 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +931 0 obj << +/Length 2446 +/Filter /FlateDecode +>> +stream +xÚíZ[o¹~÷¯˜[@nV yx_`_t ,ú°Eü²pC‘ǵ²äHò&é¯ïGr¤Ž¨[¤6èÅžñ˜sy.ßù‡¼ú­â՟¯xs}}sõê'¡+!˜×šª›‡ÊRe…cÄ}us_Ý>}¨õõ»›Ÿ_ýD"(™´ºJÃQüp=Üæó÷£Ez'.“JCuýc3¤òÌ2a€ ¦¯X¦¥J£¾+ 2Lèʿo $͸«„bZ™4î-'JãðfG¤cš|54Li׬f:Ÿ/x{õ§›«W畨K·RVÆyf¬ªÆW·ïxuþ\q&½«>Å¡•dZî¦Õ›«¿&sçZÉZF0I¥`Ψx1Z­M.óÁŒŒZ›ï-ç¢äͼuëA“Âôá1!ÈÔ>Žž¶µ*Â[êBZ‘bJ÷´.'ÿ¨ ‹•Äœ<*òR›Hï =)%3”G^0ò[®y)‘=ʛü¡ˆOŒ´XÐ¥ÐJˆíÌ-’%à®xSÂ0#Òô¥3gº€3yf¦hA¤—±ŠîÚ5h±‹&b!keãÐ?”D ¥Eôšj¨±–&¿F³û0´ÒÐì0„˜”îTï|.ƒ¾Ñ”M|HÖ¡ŒàbB–ÄB=çê Ó7b!S;-Æ«Ñl×\•b^œ ”snUqÑÁ|úäE ^¦KiáaGòøé‘ê.úZ v­>µÆž´îð#œ.JC.ÉÞڑñÙÃE»tØZæu¥GX>¨Ûa/KÚpk8iîÅêJ’)A'º,$ÄPqTÑdDîn>Ô×C©å`ô>Dñ`~_¿‡_ÍóÉ2]ŸáÜ +<ƒûôl5O×å—Yxcõ¡Ž°›þ·ü—7¿¤›ñó¢Lƒù¬Qœ.¯‘šÃåx4m^{XÔŸëÙøK3êódù=n ‡dÌ nÞnª ª±R Z$íˆÏE½|ž®Â}3]<¥?§“YXËh±QK¹Ú0jÙõPI5x3yœLG‹é—kGƒï‰š×’ñêi4ߧô.„ŽŸ§£Õ$®r3-Óà ¢»€&„æÏ«§g̛œI 7­  ï%’nƒ ·IÀ»RxhÒm’>Ì.¥Ëtþ[º 9xÿºIøðÿǧédõ|_§?£Í`ò*8ái2kޛ4³֎afñžŒB²ëó•O¢µÌÚ¶v0-WéÑrU?ÅÄÙôXKn«!ø„1ML –é +¯x½©?·“¢Àe;èǤŸçºQ}˜&WN')/%8Èq›½/ʜÒzDqú‚3®U¯Ïéá‘Da²-JH±C·Ôúc²CHºèšzZ?"É VÅyzƅ>ÉÒ¯Š¡Í¬nÅ$Bsjùfr’é]Ïè=š OžjȀÌ=UÝ•çƒÉCZc[‚zÔZ1¡d2óÅ}½(.Ïô¡M!=æÆàþ~£KôB ¬Ü¢EÊBk´=.Íy`,M zPÙÎùé?4,j«[¤n»ýxŒ¤ñ։ðÓzþC)‡N0!C7ïÐ6(þTŒHôq²›™NÊè-Q¢Ë¨u¢5?3/ʌ·ëQãù²@ ô¶ÀúÙkñZ— ¼(“†N +·^ +äݚf Œï"K?°àc”(rèåÝ©T¾«“\`ð"Šâª ¼ÝÍygpp…uÛÆ#oÃë ÌÈÂä5h¿€a ´¶Ü3y¦{-Y¦‹BϨØ^j.sÒÖi/àžØ 8Ö£~m¦n;.ü\*.Î6»<+„*¯kÁ¶a¢šT" T!hkár[„š —Ú¨¬&ãI=[-‹%»¤û]qš^ÁC}nšlъ‘Ü,æàj_Šù$^MmˆçùiãFßW¦g^ÏпÓ«›G%]¶:DF‘ó÷àJ"?sC0·î.?î€+Ý:1Vâ +Ý2™´)d×]ßV^d"†}! £íɋõÎÖ͊,äš\ïWªä Ü“´RÑ ytؐ«¤3L*sèH .Hë­·³1Ç´õöܹcÊ4ªXfÏœÚðO؊0\ìÇŸ0G‰9ò?sÔ!Ì sÔi˜“kÍw²êˆù7Š¾ Èƒ›N£ü©ˆ(Ú5‹¬§Ëz ֜KBëÔLÎzÔS„]\ñ¿D=Ã~ˆø +êÙÃr·‰ƒ2 —¡‹rÑÍÎæ~.ºv|÷‹‘D]@Gçio- +º½ÛæDhÆϤ± IËÊÚkÔ‰Åèvœ9$+¹´3zßl¼Úu8\®Qaò½@+poöŸÇ€±>ØÖ"–7[û‹Ñ>¶ýŸŸK€ÁÙD°æ¹ 8CÍ2ô)Δ7ßúPŸ÷3E ŸòtùœF¢ ³õxÈàc(8PÏ T“Bet.ê 0,RÔêý£ö!…\AÅ8õ$b?œ, c/Ò÷»o {ò²}ÿq°§rpú˜v˜ƒû¯Â´ÝûÅ҃¶FüèqUÜ/_yÀwàtTgM[Óא»˜Ñw¿¦Ïuyÿéï•ØOdþ6²,|‡45 ŸŸ +çš> endobj +932 0 obj << +/D [930 0 R /XYZ 72 751.833 null] +>> endobj +933 0 obj << +/D [930 0 R /XYZ 72 531.902 null] +>> endobj +934 0 obj << +/D [930 0 R /XYZ 72 511.562 null] +>> endobj +935 0 obj << +/D [930 0 R /XYZ 72 487.901 null] +>> endobj +936 0 obj << +/D [930 0 R /XYZ 72 466.232 null] +>> endobj +938 0 obj << +/D [930 0 R /XYZ 72 324.777 null] +>> endobj +939 0 obj << +/D [930 0 R /XYZ 72 199.075 null] +>> endobj +940 0 obj << +/D [930 0 R /XYZ 72 128.005 null] +>> endobj +929 0 obj << +/Font << /F15 437 0 R /F21 587 0 R /F1 928 0 R /F34 639 0 R /F23 588 0 R /F25 589 0 R /F33 613 0 R /F30 937 0 R /F26 612 0 R /F27 803 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +944 0 obj << +/Length 389 +/Filter /FlateDecode +>> +stream +xڝ’Ënƒ0E÷ù +/aÁÄã',º©ÔTꚍ"”8-”G¿¿¦¤ §UºòÏÜ;÷JÞ%Ï+º8ÓÕzƒ’ B"%#é‘Ä +8ÕDc Œ&$=,Pnӗij½áâç +[ÆöjhÎê¾;÷Ýö2²—õw§)ÍÉT!ÓAçšç²‚SsVx~õ~ðé J¯:eQ™¼Ù˺nvŸyٛí"ÝÜ!B¡@ŚD A©‰ž#!Y$Õ¾ 1ø5–J€)\ĺí>¶ÏÌc¿ù1Œ8SÁ+•ÔU§ü|)ô@ú²×í­r”ßE»hùèóÒuµO\*Hìî“vgš¼+êj·¯«Cq©¼nÈíË%ÓN6:C;6)†£7îkÞ¹Ón…6¤;¦—sZG 1ãs¦ÉßL=ɸÿ£Vš¶¡½ç•÷O¡ ´šÄ«Ûâú>F:h;Gl…>ýí±“Eê¥s¨-åÊÌ®¦f)£}½Hj›Ñ) áí~JW_…½9 +endstream +endobj +943 0 obj << +/Type /Page +/Contents 944 0 R +/Resources 942 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 941 0 R +>> endobj +945 0 obj << +/D [943 0 R /XYZ 72 751.833 null] +>> endobj +946 0 obj << +/D [943 0 R /XYZ 72 730.164 null] +>> endobj +947 0 obj << +/D [943 0 R /XYZ 72 715.552 null] +>> endobj +948 0 obj << +/D [943 0 R /XYZ 72 695.544 null] +>> endobj +949 0 obj << +/D [943 0 R /XYZ 72 671.882 null] +>> endobj +950 0 obj << +/D [943 0 R /XYZ 72 650.214 null] +>> endobj +942 0 obj << +/Font << /F15 437 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +954 0 obj << +/Length 2390 +/Filter /FlateDecode +>> +stream +xÚ­YIã¸¾×¯Ð-2àb¸ˆ5À\z’KL! zú –i[ˆmy$¹«+¿>ßã£lË­ªLR¾Xäãò¾Ý2Ù$2ùーù~xzøýGåU­l–<­“B'…rBË2yZ%ŸÒbñh­L?îÚÅ£Qi»ÀO‡a^¤_Žî ”§ŠWz?œŽ<¬+^Zùš¯XùÅç§?G ’ “åš‘ Ž‰²´‘¡˜’¿|õÝ×Æ?O.Áa›(%JkÇú&òð·…ÓiÛ}iúÅc†+~‘Ê‚]HV‚Lˆ|<ƒÚCœzßó¨âãÇÆ×þ¹éãz?tU³Ù.´K‡Ç]ŽaW珝_¨gI<*=Ž¡šö‘¶¼ÓêIö7¬üÝIªcGgR–å̚·~¥'Ré1\C·è,­O/‰Åcadú´ –‰ëé°»øq×=‡m×õ-¼°÷5ÛV‡¦®v»†ò Y S’CÕñxÝù_O`òeÂ@|×ê¡1RFM¡ví¦êša»ojü"­\}À¯ŠûöÇ]3œHdaŠ›a̙O#UÚ0‡~ã;ÞD Íaì6m@ÁS¼t$a¤©oöÍ|ÌHž^Ïׇ Èmµÿ˜Â¥x ºWÜj魊gJ8wVq}ml’ŒMŽÆ¦ØŠÖ ÛWÃFôšÁhE{Æ°ò»ßbG.^‹f£óïÌFçŽÍ†Ö.*­ïy±â¥©Vt "Ռ U¿|´÷]ã#¨]3Œ-Üè7ûé€Êӟ_Î6·õ}ÖíözªAÑ̛’òsë¹6LO}P!6ƒï`@׫à{ÕÔCCFMVa²´ ´„a5nb µï{†tíi³ æ„ ,wZ mŠ|1<ø ún#²u»Ã£`Ã3‘4ÃTf–² Üšœ©µ×¹]Ïë8kcòÁ°WžQ½Dž+Õ»ŸÑº"ÜUÈh dÉù3r‘&rSůGº3!%¯|)–¢/%Ö'î9œ^]žÊè ƒÄG±Ú¸"ˆÄåéŒ/P¹V‰)µÈ`ïa_–P†»´Í¯Ùw”‡@zò‘¤i¶<*RVØð`Ì)VG½ãë.Ä7Ú@WČd2ÀÀì+hƒä +) +ÔZÁÍh‡’îÍ&¦€ËA5ö.ñ`œ[ˆº(`äWÒÉt"nr˜Ï´ð%dw<æ|â“#2í^ŠÀV”h¸ÙC÷CYBت@R‘€W°d'8¾4’4_í£ª··šVÕDÝ¿8íRéð¿¸÷¹‡V˜¨"±|"À­þ¥È.}&2[ÞÃZYœ3–â’ÁYôäuå4švu'$3”=nx§æ’˜rßÄPYQ¾Ï¤²ÂŠR»pW^æo%3%N)s¬¥¨o°2ÃCû*ãV#Ÿpî.$(©O€Ü©íÙXæ8W!„a+Êõ÷¡5VHD®´Ð§Ò±Ñ€ŸŸFsEYàÌïBŽVAÉý)è¬ú>H­…Òó2 çñû]vPö‹" +q¤a6—5 +¡Þô.Hµº4S¤çfF(^Á9'"4!1ÓêÖm·÷QEb(§J’¦þ+9¸>¸fŸªU)$¬{âT_ވB +©¦4÷‰B +©¦Ì&Ï;Ó/ìÐrfl8mb«‡U!F \µ‚hztÂêÀßÍ1.Câà°æöúÈ +'ÙUu¥˜w*þœkñ!?$G4y£PC+ªÕª¡ÀÃM}'ΤÛÓa5ú!½ÁwÎbPö†,Çö>«…ò¢(¢»ŒugÆÿ[HÎ%äT¾?e×ÎPʎ 9fí‰Æ‚Q磙T!¼êR Z¥þ’ÓˆÆԜ @è.ò§£.áúТ«ÇçÜVaøܙ¦s¦SÇcܧ=[_­ül[1¼YYÜf%wËhðîÕ®ù÷˜w`ihöÔâͳ<ýi’“Ðþž÷P²²óœÐ–1 .Çtˆ+¡ž»^ùƟK:;ÓÆ%ñ‰¨¶%kíõ³þÔúfš°&‹7c0m^ÿF¶ì) 2E(\~ÆN웆ôoÛNìaeÝF4ž+yŒKX"Ûèúя¥Ò C» +IC}4ó,ïÄÄ°bÿ3VNšŠ†©ÄæÔUçöZh¢^Éâ#ÿAyž»T±Žâ+ŒQ™ÔœDŽµDߟöž¯¨t£0îò/Œ;ˑv‚ŸA6ø*íH…”‹ÝóPÓôÃõ&êÂîPÖû՜ +üƒÔÄ^|oÏóPw†o”¾9d¸ë-õ¬qr©ò¥ÑËÌáq–y¶trYæK¥4ïãž6FZ3•þ)jy$u¼—D¦ô¨Â¢f7Ö}¾ÛùŠ"Í¥ -cZ‚6’mF¨ÃȤ  ˜×@+CÔ8ÈÆÍNÆëB"‡˜ +jÃâ&PÝvбØ<¸¨¨ÎU`…F»ÿÉ+×véápZv‘¦Æ:B[Ö@¢¶1pR_ qcèža§R$ éqðhéÉâ8³qt^Õ ±éãù¨‘1H…Gå%’ òï Çÿ(ËðÙ`¶‘žÕÇ·‰<·Üz€‚=U\ãÂ"—×QÔoš±‡L;Ùz.÷Wíl‡Jî‡Ùÿc­È³U¿FÆؘÙÙÍÐÿà», +endstream +endobj +953 0 obj << +/Type /Page +/Contents 954 0 R +/Resources 952 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 941 0 R +>> endobj +955 0 obj << +/D [953 0 R /XYZ 72 751.833 null] +>> endobj +262 0 obj << +/D [953 0 R /XYZ 72 730.164 null] +>> endobj +266 0 obj << +/D [953 0 R /XYZ 72 703.022 null] +>> endobj +270 0 obj << +/D [953 0 R /XYZ 72 589.433 null] +>> endobj +274 0 obj << +/D [953 0 R /XYZ 72 558.881 null] +>> endobj +952 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +961 0 obj << +/Length 663 +/Filter /FlateDecode +>> +stream +xÚ½TKÓ0¾÷Wø˜HÄ뷝å‚Eì Q‰]•=˜Æm#¥qIR–ŸÏ8“V]ö»¨RÇ3ž—g¾/Œ¬ #fìÉáŸN¸s”sEt©(+ YngßgŒZ †Ñåô<^JÆ0Ö±ƒñìã֐wqö ~*X*'%ßÎgg\Îi©µ óÜQ'Ѧ¤ÆY2¯È"»¨×û.ä…&³çùÍüò˜Ÿ,Àj³uçwtˆ+”á§ßîš)ê+ã:æ…pYìîÄó\™±r!85Æaå/¹äJdmÌ¡ÒmRxVuþDkÃ-ú4q]/}ƒÖ¦nCö!¢© ©“°P6Sîeì:°Ö±.âT§vßÏa‡YJÇh™–§…y¥I.n©àò'KGnG×-‘Ts§†|†%=0oéUŒ¹/ñÕׯ° ßVØF=„έ+áh½B}Âf±¯Sû}j—’‹1-L•*e0­¸Œ1mÚZiÎ\¼öw JWRáô‹jŸԓ’OUE}¨îÿuZٛfØÄýR ðÉy6BK° ‡ë$Xö#×*óÍ> ê¼½Bqg™èQ¼ª{”{HÞ.ú7¾]‡*ÅÀºÜú¡nš)¢^6€¢~òóS™ÐVSñºMɇIì.„FìIc³Õ¾òŒŠAV©6lFÒ¼ÐÚd¹ÆÅ-F$ož¸œ”ØB×ÒZd`²ìü­µ¨ô0Kpn*T¿}MŽË&øî5œ]¢ÿ‰=¦-[:æ=,ÔN =¾Hã‹RØ~ð8î‘=’cS ~tú¿& +7–Zör¢¸çå¤äDáJRQšûD)ÿ QîÇmà W8A¥•Ø‡2Íõµè¯å +endstream +endobj +960 0 obj << +/Type /Page +/Contents 961 0 R +/Resources 959 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 941 0 R +>> endobj +951 0 obj << +/Type /XObject +/Subtype /Image +/Width 300 +/Height 180 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 131 966 0 R] +/Length 2955 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 300 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^ìÝeW#[Çá^ÿ’¸»» îîîîîÖê2öŇÐw¦‡ÀáҐPÙ¿|€g-؇ìÔ©W§Eq +E½B ­µ…VÕXÔM…å(aa²ðóÀ¿â ‹ç¸;ÂÊeVØÍ+5,&\cäò;ÈKB+d·‡Q(ÂRL3²̟ãª(n‰¦ayš/—-"õ¨ cVÊ‹°‹°‹°K=ìÀGæhNcF®0aq¦v\L ð n´ïâ<,Z 6& t!cÁ"¬ü§ìX„e×éþ5šÁÖÔ£ .3OFÚîÔ¿o8aä",@¯4œŒ€)ÂÖ« ý`Š°ëZ°ë3 lÕ} +Ö~.7,žçˆdF9®òÁ†b“=<ìãm€+?'Óåƒå1áfÕ»)4GŽ8;R'[b™`‡€žíÇl¤×GS?+Ê+9 ãޚƒX³éŠrÀBrøpÀts}ÿ¯îÓJmu`‡fîêo–ù1_9ªÛYùP-JKÑ|*ìã¡Ӑ9çnâô´±dÎYLywSé +‘NðŒ­ëM×kÎcf.¼—“±›°Xm‰ýi‘°sÚ ûÓĒù€wøÝ Xìy¿ Ίà +¬ªù9§üm}ÿøÄËÉh%…55¦Â¶K“[ßØ°Økí}Sã•šz’Oö=xï÷l¶[BXÝ@X¸Æ²x~n,ÍøÛ òýûŸ¯E_U°¿®t±4Kq@X +áÔô\Xñd.€¡ äú`«ßЯ/Q,nÀpýØï³`M9rÉà÷;YN)}%‰åî³$·åźÆ.>€ÿÇ2{ ÊúRÄ2Æñk¬Pîògj<ìX à*Íäež\·ñ>xR_zXÇÝD¾ +@@.×âùSËs©p#߁a¹¾Ä°°šD{ˆ G¸žH‰ÝSª¯2ôo•–ºÉ2ÈýI”`]ÛdŸŒt·rÝApÏGXxþ󧏰ع Ë[„Å̕¿H‚°Ø—Ý*,ËÕ­®3–x)cÖцJ_±±f¢F£š_äÃîba±?ÿY[]\¬·ínÀõ#ÏWÚX€µc¥²ºˆX²æñ¾ö—s¼ór2NsÊ߅®±8Aˆ¢¤sNÓ[ÅÃBÿ°å¯×24Íϯ¢Ä³N¤ÒEÁâpK¾Åö¶óÂë§Þ¹š"`ÅÌöa9à>µ¿¤WɈ—“ñ»H‡RÆ¼Ç Ö‹$ pÎ&ö§ ‹}2ö¾y-ódìM7z ‹1±5›®ñcÞ֕75υ÷ ·¾÷¼T,À;{´ß(>–,…ÐÂéð‹Åœ¶ýAÛÓcq“±(ü}28Æø—‹ˆƒG³Î'Æ2©Qi¼…NìîÝ·‰O‰å·"aÓ5v¥ŸX“]©ñ>–Ýdjëô\¯ï_úû ½5éìÄSNCGÜy„‹Ú¥ñšÑÙtï®ødXqËÕÛwB`luÒ¡”µêAëd$,ˆ¯­„Å\Míʎ—°Xûþ&»»NX¬½N3q±c…,ྱ¾—Rgs†cïŸÂRµ[Œ @õ½ª®5;ÿ àë¯õý6'I,ˆÓµ‰º?3 Ua‹ä_ç^Q¹ÂÀŀºp]ciŽsH±­tâØúx,À|µ¾Oþ®d2 i6rì°>‹Ì~Ì cþÆi&V,”ÎÇ`…Ví‘$àþÓqÇP}’PfèPʚ¯6µ“!,Öô• ;u„ÅÚHUªÊJX¬mu%ªêë!Iè ‹µú½Meýð¸Å¥#[,*+/,@ߕ:¨VLŘ_v¡ÁüÇrÃ|U‰®‡}ꠝŠ´îwùt9qª|ù|Ãú^ºésI°bq ë{ —Y;aÄⓀ<þNŽÅëgw¨X³V«mF³1žÂÝX„¥r]Æq—åŠE‡RÂ",Â",’GL±Ã{±K6¤„·~ŒGîÃ",X´@¨OÃž‹°þÖúž°4~ÿ9’}ª_¿†®Pè., +ªm÷ßSJÓpØhñ‹¥„EX„EX’Ž°‹°‹°ë¿í–M‹›PFgž«Ü\´ +cE…ˆñÿ–H „@$AÈt5+â" aýï•lJÈ;.š”næ,=<ðr¸ Wú¯Ñ ^ÚvþÀx¢=0Öëì…çêhÐZéãÚ|`lÛŒë+–*j1h¹ôßÆü1ë‹ÿë+ÖN GŠ ŸÌ´v«¬ +4#øãاín›¡§’È©Y«€_Ç +eYe»èñCO¾“b‡žjËÇ-Rðçr×´¥çÅr–6çgJÚ£l*y~x#=?ÙH59™Iä:âèq‚qÉv'ø³‘8sBG•Ô¸Mî?ϨzðÎ(îmæí@q,6[è¼îy±ـô‘~êç#Éì¹ð©'*V}fèñ­k5ÿýhuâÙ-ó»ƒ +#G.4ëÖ*@$€QâÕ@]>9–u0óœQV}›¢VHÙ#ë׬˜•#ÊÎsšBZƒŒ%OÏ¥¶ò3kÃûXÁ|bvõ@¬+šrëÊ>€žìù“c{àbRÖ_®O¾¡RfÉu5‡æ§c±m³ð>…¢HÊ´)’2ËAÆ ¬¢MõìX9Є´ßv€œR­üR×?ÚÚÔ NK~¹®/Jâఁó#(ç@7½MѦÀI ÆJ±Ô +À4F½àύõmÆ U„À*† +aŠÏÖ¡F—F·Fò€~YǘÕAf§1(²%ú?«C±ª@ˆŒˆ•ÄBÄü5†|y^,gž;€µ®©V\[…˜Þ¶mÄ@a¸`¡‡”UŠ±']«)„•=+‹ú¸&[õLØÛýŸàë ¨û(ÀHëoÛÞXæMb™Oûï:”U¼uAóÞ¬k“ +endstream +endobj +966 0 obj << +/Length 352 +/Filter /FlateDecode +>> +stream +xڐô³p†Ï AAÁ  ‚ ‚`ƒA ‚ ‚ AðAAƒ Á`0A0¼çÿû.]¸çyŸ÷R¥ë:€ßï·mÛ÷û%Ûº®ó<¿^/xÞçóY–eG˲<ÏÃ<ƒe}ßO’DÓ´¶m±,(Š<ÏëºÆ¶MÓ4 ÃívAMSÓ4ï÷4ÝuišEQض]UÕóùÇõ}†Áár#¸ßAdÎgtª +š†ÏDc·Ã¿ÿ†!ÏóÈ2Çq®×+|¿ßöQ–§Ó ¢È²,GQÈrEišbǝ 6M³,{<hÛ;ÉÊsA‚DZ,Ë°,𼪪¸\°® ’…a8Ã0D’€¤H\·,Kè8†iº®‹¾7 ƒ!]šŠr<węªê… ¢‡$I¢(‚|¦®iš†aĤԂð›ç@×ÿSâÑ +endstream +endobj +956 0 obj << +/Type /XObject +/Subtype /Image +/Width 300 +/Height 180 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 130 967 0 R] +/Length 3290 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 300 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^íÝesÛÚ†á>b™™™Ùaffff,3î¿üÈi§>iWiœ½mgÝò!Íd®q”%½‚'TÀ)ÑÎá¶HO æܗó/D`2^n`aÑ )`ÛX ÒDéV¡@h¨{Áï"X¬?±D‡£ÁŠxPÄò„B^ÜÁ +d÷¬ƒI\åÇÍ–˜Ý±¡n[Ê•_•ÜŽE°dzdX‹`,‚E°Vdɀò ¨ÛP™™Û±ãt`Tj€ŽÂmþ-9ÜaՀjš†ç§‹`Ï:(Ç"X!Aø÷” %"X™g¶ú×îä9~`5å •^˜œ“Vq•ßÕŸ9Áµ–¨ÑØΨñŒžu×Yü\ý‹e(Œ,J;O»ŽSPÁ:žæ?X¡(‚´µ~ltAQ 8Y釲\sñÝeH¬@—Ö„Je´É`óßtÇÏñ=2¾ßÓS;aFb²9,`³Y÷!)²‚×6Ð\ˆ¾j§e±€ÄhÏ{ž`æ@ûêwÒݯ_Ÿá—VÐnWC®³øîø£ÇZa°´mœæ`£vqq²¥Þ÷Œv>r,±!€¤ÚÒcCøÍÀ"õY÷yó±b‰æ`L‡€°Yåüý9øý§õïRP™î$vãg<E°€³¾•(‹`Á5—mƒ¢`ýPÿù%â V1twZñK‰÷'ÀÜÌLsÍbQ¤hŠQ†UÜÓÏñ¸V>…©StNlnºj‹nR-f)„L¬Z¼ pÒ·rtký2õyߺZÏQ£X3àW3ˆùï†×ùänÅøº÷@j¾Q÷¶F±ÌM@vï'Ò®ù§Å“]GõS:|Z£Xú^ŽéßùC, ó³îôßË[‘˜„ÔøhbA¿¤íuþÿø¾wêàE~ΊBOÑ=›º²6'j Ðî0Wû¬?¼äh|&ÿ–À:âÑ}ÔmE­bb2yÔâb?‹·¾| +xNáÄ:KaüÔäÓ9ÜQÚæÅZó<ÁRZç‹úo/ggy‚¥¤ÄL—ÔÁRÔl«•`•nI¸ê¿¬|[íbqFM@iŒÑXJ{ÿŸøñ…îÍrb‰ ª×Á¨eÆ÷wk0?Qÿm¾&±2ÓAì…ë +ãûmºE,À:ÓE,ààrm"UýX´H_«¸§ÏðUŽmàËÕâƒbŸZã箪Ʋр¿.Rß?\/ã­mU¾Ï¢FÊy ]2~`òËrUcœE,š¢²ˆÌ_ê&:ªk/RÄÒÆb Š¼É¤ S äÂu‘JÆ +««ñýBù÷Yòµ­×òø%Æã¡ÉžtT0–™°Ø¢Wþ.,àåǾs\Ï´ïLˆ%+‹F!Š£ñ÷aoŒI «Ÿqnú'ô#^ÁË·ù®gö?ó,ý‹ëV®7õÇ©ŸX^`Q0l3`Wk+HT4ª‰(Ò¿hêW`š3|怐CíaE†3€ÅoÄcúºrΣPH`-€Æ¤5ѵ‡E[ú3·´Èa)¯± +‡PIJ›-a8UKwò@Ššö†õ÷Âë]ý‹¡*ÁªÛ²ô–NEX}¡H:PÀ’»'0ÿ­þx³°˜^£HãÇm¿J°lšBlVüH=»7°ßÜóÁŠÎN¾²±¢c¬~Ïñ'ãûŸ,Go°€¡¯ñ/]]¯7+k0›~by +7”+L†ßk´ˆeÁ.»â»Í•5Â@kŠ¾ák§ÑáP㎕ «õíë®øA%caA·‡ñú˜¬ï!VðÊ[\Û]{ñ©‚±"i6pZ£ÿ,:§¦–±?±¶û–*m~nrr`ž`)ÌzÔ§;î XJíyzÂ,…u|Ó}=ä –Â¬S󧛕…Å5ÀÆÚ+ pu·êÞìW–Ío6G“…òF+Kjy¶gæ%_)Xýî(~f‡¡—©@, óC~å½µ"°¸˜iÌ]Öñ}ùs5öÕ_TÆÞ±êù‰ÅÐtåaüøÝh¢°5j~¼–!=8¸PXRϛu­ç®‹¡Ál‰TCî\Åìà囈ÇßÍËÿh—‡uôüóÐÃb©vBK º¡r3Ž¸ÎZeŸÇk=ÔñhžÀóÉTí/J•Ç·êÖÛx\ïmJÇ»ÖN€•)‚u­ƒ‰ú¾·ÖkVÏ!au}^Ϭ_²Î­ä/Šã ¡Óó󞳂uKüÑLOó2¾·™H$tm©Ý ô,,¹ot3œ8:Ë»ï@°äë<ͳvœ Xrí¥ap½¶æ®õn‚u£ºÕêžäæA‡)‚u=ã*|ƍR‡+ùÓN(‰`Iu¯w½i+;–‡…T”µWV`5 v:ùÇ]3çeÅ +ºYó0 3¾¯†ZbhY*uçÙd|n¾|X €öïãû=¦ê°h ëA©¬gÒ0»£\X@ÐËÖôëÜ?®½/–ªéUø'VF“D­õü²§µ‘/ °s5¾×?〰^ïEí•zŸ¼Ø¼?ìˆÔtæâCj0×Q«îóþ=±< !Ÿˆ¶¨¦–±¤†f{ֻ˾(­ÙNëû¦\KaVé8è['ÁR2£›M,¥-7÷ÌñKù ÌüQ†(JåG©Bú{l¬eï±±Fs‡Ç"X¥ + TõmÌ)ØXéŸÅ"X™¤(•SÄÍ6”[Èù@4ªDȖYLCÊFÉnÊj#€¨U!cÓD!%ú 4~-§@iC"®GyŠ¿y”ÕPåà +÷j„ôËÂz¦mpÆbÃfÈÅmi WÓöY‹ŸƒTx,€›©LLf âˆ#ÐÏáf~ÕbTI;n$fc"‚àZœ¦±èuæÅvn‹{zB†–òaÁ¯¨m=n+ë ¢€f2Ñά¾=&²%‡¥íg %†¶ä°š¼·1Ø$ÜÈÑ °OŽ@&g ?åu× +¶;à4á/'´¦2c…†ÙXŒLs…B>Èda$jÆ=br@¦‘ 6§µY,:×o‘Übý2XӜ„åÉzÙm)¬BêàM¬BƒˆýÞA®ÌXÎA …Lac{¬`¶!G™¶_Q§7†ci8¶N‹YÜ3܊·Ûnz‚¤öé`i,²X7lòOÛʍ6|m± õrV¢I¶“ZVÀVZ+<‹¶˜Ɇù6nð˜²@‹2æ\K¢.‰eC+R@Ê© ãʋU7Â@m“_Ø5©ôlà6jŸúé–%Ø÷Ȳ,€×c¦™-#äJ÷2X2ë”²y´ –]¨¸¿T ÛˇÎÆÂ@hI+gÅ©›|0B2™ô3Ëã3¨|r? ºêJ-ˆ›Ñ†PZh-K²VF!MŒùæÊ…–(ô{àPK¿Ûâ5ÆàUÑ\Nú¾€`“j1 +ùþ0µ¯ +endstream +endobj +967 0 obj << +/Length 350 +/Filter /FlateDecode +>> +stream +xÚ ԃ`…Ï A?ƒ ƒ`0‚ ‚  ‚  ƒÁ ‚ AAAAÁ Üóç\|ï½Ï{)Šðý~·mûý~yž¯ëŠßÏqœiš’$Ñu=MÓÏç†)ËÒ÷ý,ËlÛö<ïù|gUUÃ0ô}ÿz½°m®ëE¡iZE¦iŽã8Ïs†]×-ËR×õý~Ï£iTUźÆqܶ­a–eãš¦Ëþýý! ,ër¹àxDUí÷{ ¦ „9Ë@ӇÃ’$Ë2Û톺æy^’$h˲( +\¯ Q¾ÏqN'䲜N§ Þï7Ú‚°Ûí@¤(Wr?Ï¢( +‚p>Ÿ!ËGRÝuG’&ÏáyˆcMÈ/ŽU¥i}]Gš2 Q„i"Š@&"-„À—%l$–`»®¢(¦¢È> +>> +stream +x^íÝõsÛZ¼hñ.™™1ÌÌÌÌÌ\f†s.23Ã{ÿéM·t6–†%9»ÉgaÊK—û\,ítÇeߨHd_Vƒ¥ae¯:¨ÇÒ°¬¦ÿþÝ6r¥a¥Fôø%þùI’SiXãyà U8EK˜LRøŠ“iX!»= +rØÉãґ‰ôÇ¢T¦mJ¥Ï“¨Kâ.ÿ*Ó°¸¿;ƒÊ4,­£6 ke»™¯Ò°ô^@γ'@ð…£Y,è/ p*m|ÿÖ#T'$‹U*d±T­q2m»'R0ìÝaí³X´[8‘†å®†Ø¾Â‰tS{ 9Ó° ñ¸…LɅ&¾NÚܓ˜Ü Ê„ûp T“‰¹í‡|•†º§gÌ/ zh4X¬ýà8 +䞈B´ Ï + ·Ï)Àšî~Ú´éNóv*Ó°’OŸP—†Åtë}T¦a±Õº‚Ê4,žm$ɦa €(HJX3­ùœ†%Žûʬ6—%¤€ÅjÑÇiX~7› R˜ÓJXÉgÏ9NÃrCùÛéÙÊ-2iXxd©£:÷f4,Žµ&c Îÿ3¾7up¢öZ ‹ÏŪ¥ÌšUâ3‹Ùí% +zs£ V[DùÝàîB‰† Ûe”÷YÙU/P›ö™Ò¹Ê9T¦aq÷—T¦a•ìÞEesEQ™†ÅzU@ÃBÛëA°‡½9±jº{5¬Ð°QhÐI–ìøÅ>m¯Üz¬Ô¨·‰ú£ñýŽ˜ ‹§O’d[+--} ó¥¥k·‹¼©rªÏÁå¯ò¥7[++ó/˜y±²Rr‹°\¦†bñ –Ëï¯F9¶ +gÉëm<n´ðüŸÓÿ(,}ƒ(Œ™ì£Bf|Ÿý¬ƒR‹ÏÈÆô"Ô;.ñ}Š•Ç~ؚ5(b5 ;LÙñ½rLm’­w€÷ß Ëv^†e.§HÂí+“Îâ·hšÏ%‡ø°~+°”ʍÅÆŸëyÓó³ç¯5,åÚ*çߐ‰•YHn~üP‚rVr9X¸Ð‚š4¬ùËOkə†%;3ýÏïÿéÿ/ýåöb‰‡I ŠR.,)”é ÿèw‚«·ËÛ¹·7eÂQÎ,r4ô·¿WõîÖbEEH×Æ÷ÊùÝK•o+ ìeO¤U`ÑôKÉíÅò;³X¢ ”Ÿ‡USøþöb½5f±bfóðyX´´öð Ò[u¨7Þd¬„2ãûaukð¼ŠkO²™e0ÇÇt7Ëí&<½j¬’Ýy®;[#Ñc»ÁX"‚,¢‹•3\o‰v‡_r‚玨K–³üFìà•±¨}Âõ†Ž‹` æñêâìkâcÍl¿ºf¬b0ùw$\ÔaÉÒ~fµ·Ü¬”Wt^oø[…u\gúQ §Ù0¢ÃT¡zÍc½©;Ə%Øl Ä_m¶èI,•r­YM®2°Ûb6Q-–¬3tc°¢øՊ9í…SXC­Ÿ~ü¦´!ü±âߤâšUž`¼¢Ï"Ââ}ëôDz¤Œ#õ˜«ùNXõƒq#4:¿` ž£¼€§ ÀÐYv+¹QûC±"Õy1'Ùë%ßKj‡DŽ¿öûK¶åc”L“îÓXôT.¡¦•W¯ú´m} +»™™¤z¬/—à$Qâ;ayû\ž·:åñ=úxl1,æ»kPÑÓÞÞ%zÚ§{Éٓ`pyèf_ü«·í V$û…rÐ5ììì$VJX%ˏ9¿7 ýuPº «äh>XõòQíÍÆړˆÙ¼û!"„t: +)bñºè çÖ2_Z4Çî*<_ãÌjæ‹*{—ƒ»u7‹a]©Ø!•;Ôîà³=î ¢»íç`­¼(*}µ}ð¢òQåó–ŒeÌs¥@Ž…=\+ÐބŠfÛ©z î¢X˳Öwu0sÿþkÚW>úøÌ °h¶+`õ))Zát%›ËÝ÷KÈ6Ý[Xø~úgÄâ];çôôñ‡Iè}õRÁuº¿õQsà¤ßV{þÚìOˆ5ÝÚÏ¥ëYË_oC©‡¥Ûϖ’?-ùm\®æ'…w‡8«Ùwù¿¬&2,Jq‰jV»Û_%ÉUÉý…Ö¦¡›…å +Û#uÅ/‰UR8ÏE›¹Ûºñ&Éyš«2¯ÓƒM»ÝFÉV&{/‡Å«í.Ô\mÑÓYÔõú`{ñCò¦`uty!1Çß ]‹õ ÔÔSµ»ÛT“ü´¸û²æbÏÂîùø¯Oþh,ÙlëëºØøþT³Û›œ_]ap!?øl÷Ñf’‹xÕ^ô¢·5¸°òƒ±ÝƒÈ,I•±Äã&°Øl­ãܚƒ mO‚…ñŸâa\¬ä›Åàÿû¿Y?÷ð(Çîߖ!¯ `…ä‚ãÆõœ.©æsç‚GýYA&l©°6ÿwþîß +ŽÓÿ,ID ÷¼tU\þ†uç^O~¬Ê?´*járÍt—6ówû§QÊØ!!ÇlÞo‹å«¶NêÀÛèë’.ÅËÂr4ô¾ðÉ[øWu\¶é»w7›Uùk+œJؗ¨hDwOþ-ܤ(¹X˙µ=-ªí°šPJd‰óKΕæoÌ%ù:‡¼/‰\°ã¿‘Xê¿ ÿáYëÝ8+dsör5Õ=.jÿXò••ŽC¬;tþ&°èß-átûíí«ȁ…ß Ñ娫¤·»õåŸóºc±‘¼øo «DásgšZŸ5çcuý +y}¨-¹µ¸]ûšLêëë÷£r‡ýH귁Åëí¾ªg½h­ ΍G ê±NþõüÅìEœ}‰TG|¼ŒßO—ÉÆáYMÿœå?Ê®Kéy»°ZC¦`¬Oðͱâ~ŽÆ÷þ«b%»›8®¤¿»j3@&U/Cïњ5ÁYµlLÓÜ{¿åäŠXÔT÷=wðr:¸¡qòŠX|¨œë9~¿:x¨Ã2”W§Àìöåx7\{øºŽ‡ Àr_×ü¬òàáwÒ|iÂ}2öQáŠXuí•ÁÖþ¹ÒÖw³ K1û3KŠ=¬¬Z °öž(ìâò«¶Ú^¼«ûöXNƒ=}Mw¡{݉¸¼®øÕ±R@ÜååfÔ³\üt­X†.—{ +rŒïÕ{µ8^Æ i¨¿p·wúú°$ “Ìøþ­t5¬„oqg]ŸŽ›RÉæá0{–z® Å®k9‘9Áp'÷Ü ZJ+ — ®Ë7¾Ÿø‚Uo·q¹Ê¤›‡%ُúÇ¿VÍ/Ï_TgÆ÷žO1—ÊÑh2=0yG¢ˆ£>nJžLÿú—ðÁ'CWǒ :$Œzq§¯¼uò¢‡ò7«æ¢¿ÿ§…ªü§mWĊ [ðNøLҕ±Þ‚\á›ÐsӚýó©ááÁö‰ó mS*yR.Ù°§ꚊÚï4¬l±@ÞXv»—Å‚’ÕîÖw3֗F@ìt ÛםƂäÒbþA_Ò°Bw0š§„¼®Ý^ÜJÞj¬X&17VvÔÝ[r‹±¼™¤ –a$ŠÐ> J>¶=®» –T6xÏ-®ð¥åŸgÍ"]@dJ́ɖüÒ¹äE°|õèGÃò~=?V^GžŒ#±{‚ +, ëRã{ «>#g–§Ïy’ˆDraiXÅ Û©pž·ÀkXò¤Û¡IŸ K۔jX–†¥aýÔiX–†¥aiXÖ¸)W¿¦M¹j0åj¬ü +[®p°å*›¤;\*¿—\¥É•Õs…ƒc®+l·_á`øöX–Q$Wzr% ?ì`YÅÁê°´~,–†•Ò>gˆÓI.k +¤¨5Šr:=„¾Š¥ò¢‚â¡®˜B1Ÿ…¤¨Ý røEN¦OÈ@ˆYC|É>r¯Ë.\V¢Á$†=(U抌FqšÍSn”’íx,b|O‘£,-$úôœÎg“Rƒ„ötú™Ó¥£ÂDøÆâœ*TnŒ¦4ÈN[Ÿ÷kæN «¬kt“ÿÄõa‘¶ƒ°ãá¬Êu‚ìÕ($:Ëí8ÞJÆA%¬X‡²*aÚ¡ ÆLœJ×®;¤¦Œ(ä4ØÓà•áäÇ%  ƒÓƯNb¶kƲN¹Ìf …Œî +¬*“Òv¤®=›…ö]„I±ÄŠ[ˆ±F0w(`Ê‡X‘òb×D,€Åp   B¨£¸@¾f,gtºP(î4ÆF%ʼx†:¯qʌBS\øee,i ±Ï&]]qÛÆ<ÄG ¹±ì±ô]`OF¯Ë ˜Ñ£d²™L;c1—ý`ž–F¼&SŸ-ªô•b÷"¶r˜(F!½Î]q„•¥VƊ'PÄ2F +±>ùz±ê÷$,QåÝ¸ƒC¯wéÏ¢vX”¥™˜$þP~f•5Bq$:%Jƒa”Êk˜´!wsaE#z}žVܧ×ûä_}ˆ×‡•(7'À:S²’-㎒ill,-¡”Ó‹äðû§3t…ýBFÍÀéD¿5ϱ²IE«°)OÉ}zg!ӄŒé:Ëác HþbŸ(Wþ» øoÀ‹rÿ 3CÎ +endstream +endobj +968 0 obj << +/Length 422 +/Filter /FlateDecode +>> +stream +xÚ Ïԃ`às>ƒAðC AƒAƒ A Aƒ Á ƒ ‚ Aƒ Á=ÿ‡/Ü{Ÿ—à÷û-˲®ë<Ï]× Ãðý~§irÇó¼óùDZišY–%Ir¿ßó<¿ÝneYÖuýz½¢(²€qßïwQUU¥iÚ÷ýçóÁº¶mkÆóùÄvëº.þþ°ÛišF‡¡iAèº~¹\°Ù@’N§æô†¦iDQ´m·Þo”%X´SdYæyþz½b¿GÓà~ßív‚Çãq8ðýG†aX–UUÕ÷}˲Â0ä8ӄqDߣª†àyÈsÐT×áñ€eÁ0 ( à× ³§'Âv»…®Ãuÿè Q´¡àº†,ƒ +)Û4¡ª8Ÿá8ð<Ä1ÚE!I¨Ó÷‘eH¤)DQQ”‰™ãÊÓiå¸Þ¶[Um™‡ÁPÕIJ&žï}ÉóIÓ +Y^7›Õ²ZǙf8FB² è1$)V”U’\DZM3Õõå÷KŸOǶsÃYva˜·è H +endstream +endobj +962 0 obj << +/D [960 0 R /XYZ 72 751.833 null] +>> endobj +963 0 obj << +/D [960 0 R /XYZ 268.738 584.133 null] +>> endobj +964 0 obj << +/D [960 0 R /XYZ 268.738 379.323 null] +>> endobj +965 0 obj << +/D [960 0 R /XYZ 268.738 157.742 null] +>> endobj +959 0 obj << +/Font << /F15 437 0 R >> +/XObject << /Im6 951 0 R /Im7 956 0 R /Im8 957 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +971 0 obj << +/Length 1777 +/Filter /FlateDecode +>> +stream +xÚ­Én¤Fôî¯àZšÆP,‘æ(™(¹Eò!‘cYÊÝ¥aé°x<ùú¼ z˜±'Yr½z¼zûfûÎÁñ_®üϜ +~ûŽrTšzJEŽÎ"ÏÏb§¨¯þ¾ò½D‚H–0} }Ÿß¦þ„¼þµÎœŸÚ«ßáç%ûIâ~!òǛ«ëwJ;Jy™ÖsóèJ{™¯g^œ&ÎMéܺïìaìÌn±«üïww7¿Íœ[@'î¡ËOG¦hù4Ïy}ªäÙ_¾Òín¤nÛ­ÞÏ|ö* +Iô>P^§,ú‡Ý>Š2·nQ>B8Ņ5ͤŒË«CÛÙáXóõ€ ygǪúÈ×G)áª}׏ÔÌÁtü½kǦ´Ío¤®9æHõdÛN^õüyì‰@l˜6xQ³êy1Œyæ§(¹@ëÞÀ#_»y?}é‹n§\+âJFWù`:o·ƒÀ½9F.9.lÆkªì ,ÿäãi§# éqêm}‡|°m#šrKíÊ6ø"‰ÜSÕ¹o–=Þòm@§|@Œ úÁœzÙÿÕb´E¿$[hf>G–?i‹,Ÿðׄ_عxg*[ÛœÄצµ½ÙB1ÖÈn¬&Ó!‡#„ú ù*†q ‚Ò •Ãë¡ÖÛ[e-”Mº,¦^˜IÖ&^໽†t9š¼$Æq"Yú\rÓ܂̃Í5D +Ó a…á9U‚EE˜?ððÏ¡ïmå쨣’iÀlÂQ8å:â=9`¢I{bÒÌ'ù««L.Ñâ¼ÅP u>LêiŸ«dù|2Ã¥‘÷FÐʱ㴋ƒ…V)i…8©¦Ô-¡p ã0› è?²~GÓÛTPPE:Â*B/ k€Ð„¡êÔ9ÍIz7XJÛ7˜hê,Æ°^G¡E&Ò-‹H‚šë{{ „7’¢R7çë,Œ¯EÔ |†W$ÀP2fŠ0€55áíƒ+„«ør“,M¼eÛÃjÍôY"å?P¸2 )Å>Ü®œx·eà4˜Î¶„S@€:‡Ø1|~.xÏ8îƒan· JÄSœ„€Â: ²Ÿ]Áz¡ aÓ ¿nÑGtlE­Éuû-#§Z ²˜;5œ9ËÅ#XjuËI-*м¥ »âš{ÎpübX¹¼±}-²æO9')_±íà)ùÈ™%¨Y¿Òç y¶Õf‚n¶lDy_ä¥ì§àùiU•4œ«*î`cϙ†¦]¹—–×àª)K=ͅg‘Wy7±úõ<ï?¸únV9[©¢=†“.›VáŸa:[9RoäB¼ajßS5±Î¦>ÉÜ̋ûtã{\“Ä ¦2µi† 缇À¨Ü’/Ñ7§Ž¨½´8Ù°8Ýðh{I’M¶¸ ɒ{FÜ÷!8:\‰PþV%^Ì2ôëRjÿ`úam;]¦Æ@qá¹Í4ÿ!T[ùÃÚ.ÍUêE«âÿ¿,ÎÎA:™´—øžJÒ/Dô~²ŽS°ÌÉÌ­~£CO…Ñ$ ùrI°kK[^9±?_m4üºZ`’F°y)Àf·CV^Øjwî*›=š¾Æà—Á‚MÿÊúUƒo.~ÑwHýb ³E¾>ò‰=«–b'fc4°¥½¯2֊)MÛücºv–²ÙÙÐ_'_Lä0 <©uã­DN6ìO"/ôõ<çý×ö2t„éZXX¾.²é7GV4^™›n™›m84Ö^&«ÆþÉ?/ÿ‰¢’F=8Xߘ©ì‚Q²ùö盫1õd +endstream +endobj +970 0 obj << +/Type /Page +/Contents 971 0 R +/Resources 969 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 941 0 R +>> endobj +958 0 obj << +/Type /XObject +/Subtype /Image +/Width 300 +/Height 180 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 131 974 0 R] +/Length 3698 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 300 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^íÝesãښ@á^"333†™™™ÓÌÌÌ眡?>¹žêdÒV§cÇ®\­ý¡S*§ž*ËRÞ½å+ ’6Å&sRZWP:»@îÌ,Lq›z2NLÃb¾ " G’ÏÒ¸W¨œ†0™´,@üŠ‘ÓÒ°ô)±”@ ™†eLp„•°X2œ”†•ì§<§°B©åiXŠ}ÒI|ø 7†Án<KÃ*ëßKÃÒ°4, KÃÒ°ŒÝA@ˆ€xÖà•NÆÒ°¤T Ì ,øéòžŠ¥ÝîèÍ`IlȧciX‡÷†gÂÒ°,¦ÿùÏM*¥aõÌ$ ¶K¹ÿ¾GyÖr'@ÛH)Ñ¡Ô]¥, KÑéœ Gt \ú¥øð ªM»(}óœjÓ°~n­Se֗‘ïT™†ÅË¿¨6 ë†o‡ßÒ°’~@nÓ¥A0Dœ‡XÜÚE-m|?è&ӒÙ"Ù‡X»󔧍¬K"… ÿ†‚eTü…µí{My–w¬¿ßH¿ÙãÔ4¬˜Íf^ä)KÃê—莌ÉDZÐÏÏO¹Ž¿)KÃR–’¬…vYÓÑÀ‚ço8–6¾÷¶8ÁYh³@ÚkHIGX¼.nRmÚtçÎ'ªMú‹jÓ°vŠï¨2 ‹kO©6 ëkÇ:¿§a €(HDZò·r< K\6ÌÛ,½Y9†ÅóŽ§a½qĞõàÇzá›âX–w샪é¹O4KB<Hñ¸ØP,×¢,õNªb}^ËÓ9C1Ä ½Ë,4 W·u1õÿÆ÷¦^JÁ—Ž!š£B ò©vèM5 ¬“Réœ5ùû’£¾·4G±‰¯“•,8zŠ•tde°x¿Â×Õš#]o«« °dŒêu»;Û$V!tqs x'›vMéƒ~š¢BB:Ý´G›k*üˆfÈh²´9$–©M‹Eÿ´ªÅš½›£Ê4¬Õ!ŽÒ°äˆ.‚.âWÁ¢¯Ã4,eÂ(,$ó¼dO¨` ù¾ð+ «g,Æ`:¾¡`˱X›¦9Ê}þ<Ôh,Úì® +ëà?ÍÑ=Ú*Ã}Æқ3â!–>œä(˜ò½ ê/þ«oÅJ.ŠÂŠI7&”Æ÷¥µkà9ÍPG ëGƒÏYí"“0ìÂdRÝèôs„&(·V<(|£ÑoC·>%’öܒ*VÎ÷•†÷¥äæÖç¦ßœùð&nêÖ­ëlÞxz­é±öÃ;4¶ýÛý;×G†š‹[÷ihß;úr”út5ßìXŸîÐÈÿ"Z¿û³Ù±6‹û4®ÂÓöíözC±Äƒ$(ý£ŽÅÍ=Uþ­ïGåû4Ë?:>¾`"Ú1+'aý½š£1­Œ¼ã(x2²Ý@,§¡¸Qe|Tnä ióãÝ)Ž×÷¶X€0~چò½›4¢[s;üÖõŽw Å +¦Ž°DA°SÖ¾o›‹ïÆêµuÊz<×P¬Aã–Õᘠ¬ü].¼Ÿ¾‡yÊ[ßzÕ@¬´Jãû ÕsV£–ã~ +BµÙ­|ã°¼z`¾ÅeNžŒµã{…–èû‰z||Ü8,A9‹÷/¹Èr×*Œ•Þù6›û‘PßG¾pqíÌm½àäþzÛDX>­Nݽs +mûö›ë‚w>½X§bú›ëExŠ‹éoßÛ<•[¿ýª©±¸úƒ i:\Å Ý[[o –ÍëN(º+cÝ[ËQÿòÂ÷8½üÇ݆`ÅÛm ¶'Ȧ*bm®Þ îåú:¾SMC«› À’#ŠÈá¶_ Ô°ìëSý·÷©®÷/€åoÕ»Õ<ÆîkGŽº6P,ŸPeV÷€5 ^Ï!V¢´¡\½­ÏÔ³ûÅbÿÍ·TÛÞÍ`KX=þ …è¨J `F=þ¹J=ë+¾Ïájgäë…c1á¢+!e¢’=Zñêºw¶è{¿~…JøxVÇ2¶é{@¶F\œ‚E=§‹÷¯OO¿¦úrwî7ó³•ïݦNå_ú¾qÖ¾ì41V.—¯øa4ÈYzóà±€À³Ä!–$Š•°¶ŠݧFí\½ýšR,(XÛÿëuÇԅbaX—J_Ëm…ÂÄiK÷æ©ISkGCœ#ÌzÄ¥6ÎÔÓk‡%‰H튰䧫óôü‹»>ß͑µÝuÎß»Û_ø•Ý‚ÒŽÇD|IæLmŽ ]–aÒÒÖÐ%Ž›ë¬ÏÞY}¸Í9û»ãmŽÃO¤[Fð²6Îا¹\Mw$YN Ëü*c ãÚ»<çèsøAžš´~w¶‰°–=ˆ™hÊÁQ^v̽Êñ§ý¦6•Vå6 –Ґ`¹Æ\ÅÎã­­Ç;üIù>ßwj×Àƒ¦Á2ô¶~PwƒÇαr¯æ:^>âÌ}Ù§†½[j,V&T± ÿîZÇÀ¨V¬Kï]•ñýÙs΀nR\v£–Ю#6ÞÓó¡Z=Ï$\ƒrÐ ðµã¯\}°$`”Òø~P:VÚ0ƒ8ÇÁæól’®ðGýT*D¥,®sl՟ã`îCý±4,£H¥’TJv°|ŽƒË°´ˆ¥aõ$CJ¡ÀJØ3úk%,s¬  @éÍäc¥ +0ªG¥tdÔ³j”m¶u[vÁJ 1ô£eu,i>Û<‹®.›ç ++.lc±ÊXº(ªXÉ.ˆ-‡ÆœµÆr@6Šjó- ºÔ¬OiÛ¯ÞL²½M Ë3þ“©ÕãTÛRLz)á±CK•’oç%ê +X¶4ªXF'ÐiÀÚ*×+>.avR^– Ģɤ>yuÔ¬.MK7¶A@ýmèÎB&á\¥öjµ-Jt{{•°œ‰d²MËfH& òâhí°ÒvG,ÝV5+Ù¼M ™VVVBj¥üHÑ !*Q^¬+Jj1ʃ–6XÝݪVS›’·üÊS‹Œ…P‚€ùàw›ç(‚ƒ(wü¿‰Ø²aޏzÿ mcç +endstream +endobj +974 0 obj << +/Length 353 +/Filter /FlateDecode +>> +stream +xÚ ´ƒ…σ`A0ƒ ‚Á`Aƒ <‚ ‚ ‚A0ƒ ‚ ‚ ‚ ‚{^váþ|÷p8X–e]×mÛæy†áóù|¿ß4M§i2MS–å(ŠÞïw×uŠ¢Ø¶]Ežç®ëêºþz½p<–eÙ¶mªª‚ ²,‹ãxǪª~¿_ß÷žç5Móx<žÏ'ÖÛö÷÷‡ÃÁ0ŒÓé”$ÉårIjšfY–ïûu] ‚€½M!I<Ïã÷;ŸÏ (–e)Šâ8NEI’Ðu‚ãñˆ8χaÈ0Ìõz¥iÚqœûýŽÓ {pYH’Ä8‚aÐ÷˜&xLU…}èñÀ0 ϱûwšǁeEð}ìw춅ã (`AÀ²Ð4Ðu¼ß¨kÜnÐ4”%dù¶ë뮋0Ä<ãûEš"Ë°_N( +>ض*Š肠žÏæóùÛXà‰ +endstream +endobj +972 0 obj << +/D [970 0 R /XYZ 72 751.833 null] +>> endobj +973 0 obj << +/D [970 0 R /XYZ 271.665 584.133 null] +>> endobj +278 0 obj << +/D [970 0 R /XYZ 72 484.963 null] +>> endobj +969 0 obj << +/Font << /F15 437 0 R /F18 434 0 R /F26 612 0 R /F33 613 0 R /F29 645 0 R >> +/XObject << /Im9 958 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +979 0 obj << +/Length 2238 +/Filter /FlateDecode +>> +stream +xÚÍYKsä6¾ûWè¹jšzíT“Ê£’SvׇÝr\.¹ÅîVF-uô°Çûë ¨W›¶:ž=ìI|‚À¡ÀÛ{÷óU`¿ßß\}û“ˆ¼¥qy7;/,–©ó„‰ õnrïÖÁõÝͯ°a“2…vãà·?IéÅ°;à¸[%,…ufç¿!¿Þ„’ûE§›¬ÓÔ¹ýãŽõ£n¨Õì\“U{Ó~@#Œ1jµ@PS9Օ®:KoWÖuÃï·eÖ^s¿½oûl·ºµéR§åÅÝÄ؆>V‘Îd‘IÊBâìì’9X%¦`FY`„ -é@+VLã\LleM“=/¥„ºëú3É&| Ý3ñ>ŒçbÚ»àY9ØK9J ì5:ˉhBŸ‡¢k-·-±ÒW±¯´]YTÞ:ڜ–$°®k²mG5t+íbÕ²°@2tè* +Y"ãÕ½‹”]²:rRŠEQô&)»dÁUêmW7K5üë¾,ÚÎéA‚¥DÁ…J¾ÎTôn¦ø’)·«œtòñR$Å:ÓñK#~ÌÊ^·ç,]ˆ“\?2y-¸ï +.Û§kt¾]ÑuÕÞm\qA¨”%<~3.ˆX2ÉÅHåˆ 2\‹¢é Ûmß4 Ë{ +xAúãƒõeá0X’ bÙݯÚèòyÈÓBœh…süïãÿê1è¡yœ·FY.Y怙Ԡ"À3§rW,]‰ù‘dəÁÆ«Ñ]ð÷^ìIn£G{±&j—Æx™ü…ÿÂy_h. â2]l–Õ¶™«uác$lÊT»“ &*øúdŠ¤œæ0%ÅÛÉ-YŽdB­;E1K&òzœƒQ‡‚ÎcB*ðPr›ßª®7"Š|]å›z·9eÛkûŸ¯Eâë§b[Cî€÷®p0Ì©}þÞùyßؓ"¿Õ]ð‚Û«T4s•ëŒU¤Ò“BêÙ£GêazKgæÙC©ÁÍ(¡ü_*»#ύ´°›B_ÍÁR0%F7ˆ´÷Ǭ¯÷@©ºCüÈô¼¨×\²tº}#-NÊâDY¡­éL¯„WÏM#ÆÑçv›•@.Atr;¨µBhuÚÎv‡¬¢aã­qèP캵‹+´—þˆÛ ªºAç€S̚&¬¢?“ƒ†1ÅËI8ËäB¡j&DFŠ–Z£:ÃÐÆ2»J71%h¢ñ–kögµ& ­TKªÊi$œûŸÊ’æQ\ëα;7dã®~¼¹úóŠށÇáy3•$ž’!ƒ7¶·=^ÝÞ^“`ÀL¦‰÷d–=ÉBŽ®£ôþyõwz©/ OÁ5bIø|yy\œ0< V Xý5‡%֟h#–„끦ƒùúh=0öx ¨’‹6}c½1—4l„¦úªø³×4ñT€‚+'KƒÁ 珠â…Æñª®6óÍp¦2gRwTð@ÌŒ, ã”.EäP:;ÔL™dŽ ¸™0 !𞟯1†£œ=’B¬ÏÉ,¯eÀD4†ŠßPÞ3?,Å@Í4ˆW 㾨ZZñ€ËŸ©möðZ%ã4qÂBñÂÝÀµ“ý  ûÝÔN7¦ÀïèFÐì³ýß\NF`´#%±Íj]±LeïYº4±á~Frý‹n™ € ,5¸WL °&Ë(øËÎ ‰`<ˆ.C.›1þ( 0Mҝ "Éày`´´ßjñÁ¥Á©,«*]ځšîTV˜\ ‡ªšve}^Ô4¤+ÝìŸÚçDwMv$+†,(`)V¬æÆÿùUǣΠà¯|&'Ý@”mÈÄLÌÆOÛe]ßÒ¼•ÇXdÏÆÖ2²‡ß7t‡a`*´ÏD‘öœŠ…³ +@†lÃ0Ú.B¿‚}E®ÆÄžt e‘"ÍÁŸh˜Ä£ö(´1KÁï7Åohd ˜  „P7z>sJ}´Ó#² O zðpIÃef÷²Ö•Ñdud$üáYЙ- ¶äq„ßÕô=UA>÷H>5ºµœÚt +dzã©,º>×`¦2æþÓ¡Ø¢4}ÈN6y3õ=”ã!“GB§SS#õ/őŒÇ!t‚ü{T!¦ÉhÛöGËqCH‡Ô{ÜÓ`FtŽ9ÇþVëܺÒÌîÚÕeiÄzjŽ ¸ù¾ÂřçÖÒÁÙWâËGE¢àuöF]œCÞmx„Ñë(Eb[É0)Ç1À˜ð³WˋFp_y­b!Ÿé¦– oî ÉëÂ/Y'Ëbã*|âíõ¿/©Ü™ ‚Q™¦fïQã?_y·ôô,ëý"n›`2’Æ63%~ÅÙJ¶x®¯ ßÿÿ`x¯0/6×»\î³zãÇ ±W +ÿr¹Ü-Ö×+Ž®[©8†,LäÛÇ(eQ˜.ŒeW¥ +È 5<¢yÁߒN·t.춈Aö@Ú$/+-ÒñsΓU.ç%çm^é@±(‚# u £ØçkuC’{…Y iºÊl2göå¤ÄæðœÇ§ÕøïĄ~`dŠ¡+u[ -V궋‚30p†ìë¿a­d&LÕÕ·«ÈÜùyñ Žs†³òŒ¡àÂ_t\¬5ÿe½›šßQ3íö¯•©’˜ŸuÔ§B ®Àìd¤âºÙn-<߾ِ<Àô6¹pɯ½)…, °b6$mþ¥çÞo®þ öið +endstream +endobj +978 0 obj << +/Type /Page +/Contents 979 0 R +/Resources 977 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 941 0 R +/Annots [ 975 0 R 976 0 R ] +>> endobj +975 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.839 221.502 267.769 230.8] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +976 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.839 212.037 267.769 221.336] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.1) >> +>> endobj +980 0 obj << +/D [978 0 R /XYZ 72 751.833 null] +>> endobj +840 0 obj << +/D [978 0 R /XYZ 72 389.898 null] +>> endobj +977 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F29 645 0 R /F15 437 0 R /F34 639 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +986 0 obj << +/Length 2228 +/Filter /FlateDecode +>> +stream +xÚµYKs㸾ϯÐm©š‡ÁW¶r˜d³[•Ã'•)Gå¢EHâš"‚²3óëӍn¾<°åÝÚ\D¼ñõëkŠV‡U´úé]Äß?ݼûø£LWIXdYººÙ¯fq±ÊDʨXÝT«Û@¨õö毌ãU#3ÆQ«Ðùï(ëM‹àv÷X6[*ÿ‘>.+*í;s’ ÎåZ»ÝSõbk¨·ªíL¥¡zoÌ5´¨žîuGP˜7ŒeS„*MPâÁ\ˆP*9`ÄÑ£Þõ¦cÜûƘNÜíšÒÂföîTÚ^wˆÁ²8ºÑ'Ýöƒœ0Ðn'Á떾vW6%/º3m¯ÿÛûP3‡Z1ê”3Ô©Ó(P|Kñ…2³ëç­(¦i:Z2ž ◽fqa%˜GÍÂõGîëÊö ÉPµ„a8h©ªOۍð& +fÙh½O2ü8_ŠVxD“Ñu'U3'E³.´ìºòËÒìåÞùî['aϽfû]jîþ÷uÿT[VÒ§ŸTë’߼͙¥¸.[òjΛºúpd¶Çzßëjpí„Ü^C7h^zÐ%Y§Åˆ.9՞¾¨«omQ[ŽwÃmíàm%ØWݙq¯g¥lŸ½îY2ªK—ŠŽ}žå£¿x2S£|Ù$ŸR>ûøÃ9Ë/Û÷·f¿GÿÑýÈ%òeâ@œk +dM¢Lá(Óñ¥GVF»ÕGB¤aªF½- óëÈmXi¡Èt®ÝGæ±ß’¨>ýà +ù0@7CŒ}ëJ>’ÁWÔ78‘ÇudF2}»ë Âå>áŠë®“ÿŸ\'ºæ <Ž<ÀcñV«\Íi±üÝrZì ÏX]ÏiŌQe ¯%=.ßÏ3—¯¾€–ø´èKç*‚„öºyÈBÊÌ·¾/Ë8TŘd4‰^™VÓ‘@¨‡E’HÚ/”18…CP¹yŸ P¤LÝV³ßç¬e<àrvAôWu_72 ªKç¸Èu]ºG7”ª•Þ_C½Ò4ÖÍ¥©¨óÞõp¬iëJwš;KjnÍ©nñ¼ØPVÛÁ6nwúûA7B…J¥$æ•£0û™؋$¡²‰ÖuqgìÄÁN` èúBDÉØlÎÎHN Ø[’8' +>€òE +!+‚îv˜keŽ¥7ÃNý¥k}²}wqˆ.VWß­71j´/û‹¥r龙ÓÖñ˜F~¢æf2™ÑmkZL¬[Ÿ‹$E(³éà,’ò@kQ¸›F®ýÒZT±ƒÓÓwZÄz¨ÛÖ©Û̞͔:É7"OÂH îÉW’®s[z$‹ÂÓ1fLê‘,MB%Å0üۗuk'å¹Âã:QAÙ\4wPBFÌ.8òɯ°—åȝq±¡ÕºÒOEÀÂày0´6çÂqÔ¶¶N㝠ÈÑ+"ªè(ÎøÈXˆ@Œ©ïR§ó¥'}¶ÐBBÈPæ#)ÿyÃj±Šk@oů=7uÏM-êÝc·ÇÊÓÚEƒënÌ¡†ÓOëõÙ~sÒ16‚>Tgûi•€jÂbÙ'ê"(pr‹Ë«\ŸñüqBtaÐ:·!ÖɆXrpðÉà€†.lÿԕgõŠFW5lkG>4 VN¦•AøòÅÇpÀêr#ODãy»j9Áµ)“QpãðH8oiäY.;`éܘÞR‘Kɤ›\mêV[\MÁ§ÆF)ÄØùŽ4~óLhžéɃµìЧ‹Üñ– +w:ÄŠlpWÇzð ì;«×;r 7ÖÐPg·ŠÚFbÇgj›À …¤åmÈ,¦¦h±4ñS†*›æ‹OûPÏ,GÒþ»ªŽx$,‡¥æ!p¨ÚP8ŠŒ„-=‚zB“˜õšÇýÆÅ=ÊÇFyñNI#¿Ë(O–†” aø4`Oœ_@?Ì&ŒQ>¦Í©ôÓä)lhNšJ¥=;f–% *•Ž¦±“œ +Ìå g6ÓÕýñDs†õ@½MýÀNµºÅ”¯ÿsÑdÂÚ0t˜s_Ÿê¯ŽpÀð¾±ínâ8Ïtˆ0‰<% ý±ìȧìZ¶Pw‰¾{ÓL€±ÝITYi`þ†WÚ5Æjð›\`¾\¨àýX¹—¡ †Ò +ŸËõ,ë ‚×loMäI暩‡íJN«¶—†ÇÔÜf͐û§üÉ©Ï'hçõ$òÌ'؇Ó,@ÚÊçDŠÍÎ?]R¥©×“Kž‡r:Büé +‰I +æ=Œæ\vÃñmëJ6`^Ómè',Òr2ϰǙ‡ÒE’‡E*—á2&öçg[lcB1T{ÿqçV¼r¹xÝ1o þãA‡Myc°4­•!™Îø0ôÞ ¸ÿäð…‹tΧrß;Ta”MWÙMǽÊ-/:³3ÓâV’Õ&WÏn½/߸e’~ …̹”M©òl/äâڕ¾˜®ôϯ»|Š;áCpÓ×àŽºÛnÄKÏh¢ÈÂ4˗wô«ê“¯_Æ1.äݾÓ¯¶tÝvHñézxŒ–*Çs°ï ö]\ç®Â‹xâWÃcí©«ðÔëðöp‡küϕöæ—œø6í&Wá'¿¾ø­ðÅöÚO¯ÂO_z¸¯_z¸—2Ùôv/Ÿ¿Ý3t`{çǗ2SuåÉ ÿX’raß?Þ?(’PN’³§ÖÛÆ<ݵº>ïMwgöûµóçíð† )'Zu‡þöÓ»Õ-= ò\˜ƒÓًÿäÿ×]SÛ~ûáÿ¢zñážaÎ%,®J3{ý»=‚ sq`³ý›ÅáÉx"=¼UžµsŽ偤¹ü÷(Z,úRª—"w€ËdÝ,æÌ¥ +ïܼܿû~³J‡ +endstream +endobj +985 0 obj << +/Type /Page +/Contents 986 0 R +/Resources 984 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 989 0 R +/Annots [ 981 0 R 982 0 R ] +>> endobj +981 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.231 135.823 297.034 145.122] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.4) >> +>> endobj +982 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.465 126.359 305.502 135.657] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.5) >> +>> endobj +987 0 obj << +/D [985 0 R /XYZ 72 751.833 null] +>> endobj +988 0 obj << +/D [985 0 R /XYZ 72 399.778 null] +>> endobj +984 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F29 645 0 R /F15 437 0 R /F34 639 0 R /F18 434 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +992 0 obj << +/Length 1222 +/Filter /FlateDecode +>> +stream +xÚ½YÍo«F¿û¯àè4õf¿½TjžÔcåCŸÜÈò{¬1’)vüÔþõ݅³öËéÉ–™ßÌüæ‹à(‹pôe†Ýï¯ËÙÓ3•‘@‰R2Zn£˜"Œy¤HŒ(N¢e­æ„<¼,zf,Ræ &ö QbdÔ’¿°  ÁÈ|õVé4ÿ~ÔéKsãû£8ª²¨ùã/³hU?®t‘êjýVæű>ÙB3bTÜ9éïDzr¶û²¬ÈúÏõþÌóñVDçÚ^êWmäÔ×+s¹/¬ g»oeµ.·Ûƒ>¾üÜãY½¨­Y$ˆKál¦€Í„PÄ k͆Pmóbc¬¿v°´¹ìÁ²OCaµ +kdÜ!c²#"ǀwåFsÏ]úÕ:¬Ãµ³³] °FŸç1þYÛÙ8#ƒ\&>Çe¹ãxMÿ@/I{Ðhõð)(Á8’²ÃGp/ÇN›}—]ƒùñÕ±¨dRC†èßèò€ÆӘHÓÎĦ*ËWتÚ™v÷×%bKëŸd ía1iï ,i‡%\¯óÅÓzÙYo¾íè€Ï5èÂ1ù¡yT“üà.Ž»MÑÇnKÄ«c]\IŸ¾ F‚Å-Ž-deÂTqîù’’>[C¡j§0Št†òžƒ@_˜ùSóC!XN°‡ŠA¨8`·$Hâ® dîØHèü¢÷ #lAæEérc¯îÖe8ì;@l¯Tã~aª€L•Óã8“þÿ+Tê_¾;âÉOù, ½äTzµµöZü«M]–f/vf¾b> endobj +983 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.889 715.441 254.692 724.74] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.6) >> +>> endobj +993 0 obj << +/D [991 0 R /XYZ 72 751.833 null] +>> endobj +990 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F29 645 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +999 0 obj << +/Length 1803 +/Filter /FlateDecode +>> +stream +xÚ­YKsÛ6¾ûWðVªc!xÌL/i›ÌäÖևd‡‘ ™ŠTIJnþ}R¤ Yvâ“ÜÇ·»N6 N>\á“ßw7Woޝ‚2!hr³NMшâ,¹Y%·iۙÝlΤJéÛٜk.÷ÍlN҃±Ë2m¿Wݽi‹v¶¸ù8H±b,–0Œ²ŒÀ3'õ÷}s˜Q•Z˜Xv严©L“wÆMišûÕÆtû¦òc/`ÙՍÕüæ=ãc…”pÄ4íޮ˺n~çÔ4.‘”ªßX¯½ôÒT›î>&™k$0WQ¡sª²dvp.ýæ/Xà‡{Ә˜\¨KyA.¥ˆ +Öor`îšzFuz(VfåW¾Zp¾Û±ƒÕ/®Ì²žÍáÁÊß³ó¥iƒ¤e^–Eµ /Ö~ñ &Âo¬O%OAf0š¾/§»ˆ³‚ %s‰‘ 'Àœ$€À,ÝæßÜKnÊÓ}küº ]°^EP$ëAbP¢' A)Ò»u™o¢:AB ©q¬ŽöÂ@eš·þ÷Á=)K;SÃêí8ÈÄÕòŸ7Wÿ^Y·qB¨ ’H%VÉr{u»ÀÉ +ž}L0b™NÜÎm ¼¶îÊ䟫¿ÅL eŽ" DÿŠx{·Öª}Ù»²0P¨Þäjõ<ë8QDúÖqŠ‘Ò|jÝa&xš—{3²²ì „uáÖ[âF2ŸÝ”«ýc\wÔU§™MQµvA åj¶uÓ¹¤}íºU¨Ì¼ Û×M½õË}˜Á.ˆt<É’„¾nAH¨1/ˆ€°*–ô ,üÆ3µÂQväÓs¥B—JðBE?VXWo àÙx Ï8µÇ±2~yT7Qz¡–ýå4‰Â©gäåpöD 6e‚žz¢ú„FêÈVçð¤ˆdì <£¢ •ˆ9&_.ëfåsUeK¥R–¦:.Û|ö#ØìзÃuxÇå·Ò}…ͽ×C=á<ñzoÏΰ ]ìüÛ¤þá<‡3Lq•ÞÜç]Ðb‰“ °KÎZ;ø XîĒEH¤³™¤§“ZèõV}:P”É“Ó3ßíJ{Ö+Îz´ù6Œ }ƒÞÀ2WãI¶Ë»¢®ÂþÚÿšÒl¯ˆÖ¯¸Fè(‘§5´C$µ´³Î6î( ƅã-¨{Q÷Žàǟ®ýÓÏÎ/|âPÏû.!Ó=–ƒ ©N|ü¾'‚;Dœ¸È +ùfàø!ÖÞ¦¢?<·y·´8Üö Jò×^ԍ{qYowûÎø‰‡d€*Õ¶Œúb˜•ßÑòÀÁx—·í[Ÿ;T&lVÒuœD ‰5üB?«ƒrҒ% +6+ø®«Áˆíß £b$½½ÿoáG¿Ùšâ˜šðú¨Ur/ƒ^ÔBGZʗj §»¨…µ|Ÿj9XÝeÁMoazÒÇýâ÷ûJ肤üæáí¨SyFü¢õüh}ѹ»OÐYêƒiüÈ%u£7òjfám„ÐÔÚ¤±ô¹˜‡„ ÙØ 8Ó$ìXG=)J'}éŽÜ”7¹@ЄôâÅÈ͵ÿµ×¢–µµôñY‰LŠ»/ÀokºAZÔK¨y…³ ^Jà…iÚ©ˆ—:â¥ÂHŠ¡Í’ã²:IÅçæ^ñC¹ì»EÌ0½µê, Ç-NÜ҈%XÐv.#àŽ!7u<Ø¢ûø¶o6‰üýá*¹uúh/LöTfòÑ!Ü°4îËJȁ*t‹öº4ê×0uH…:ؙ$mý$÷›àù7Ûfíü´ÝmaÚÝÞ_·ìÖ}k¯Å±ÎÃ[> endobj +994 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.016 454.669 216.584 463.968] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.7) >> +>> endobj +995 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [151.079 378.953 199.647 388.252] +/Subtype /Link +/A << /S /GoTo /D (subsubsection.9.2.7) >> +>> endobj +996 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [371.256 275.829 508.743 284.142] +/Subtype /Link +/A << /S /GoTo /D (subsection.10.1) >> +>> endobj +1000 0 obj << +/D [998 0 R /XYZ 72 751.833 null] +>> endobj +997 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R /F29 645 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1003 0 obj << +/Length 2525 +/Filter /FlateDecode +>> +stream +xÚ­Ërä¶ñ®¯à‘“Zq  Áܒ*;Y_RNTÉÁö3„fXË!e”¼þúôàcD­×µ{"ÐhtýF3ÎQýã.½ùþýáîý÷ÂD¢H¤Ð*zxŒ +Â$2-£‡:ú)6‡{­ÓøßvhêÉî³¼ˆ;NO8Ì㪫VÛS#ƒÃ/?¼bÅ|T’©\"Ÿ4‚mIYjÏ&Ìè_ÏÖ=7öeC6ëHˆ¤Ô:l–e’ù#þíp/‹,vሲPñóAšØžÆÞñÜÙ'g"÷"ÆAwE<¼:^,Óø9ªóãڎUÓò¸¼A¬¦ºéy8<ᙹéÊhŒÛ­r»T]g=Á¦c̪[Ӄ;ãÝ@LJå|¹GW]QìEW£u<¤sàÀv':œÖ/ ÓqtÕ ¯F˜p׀ ·Óˆm➐M|šÜ3-p mÂÀ_É=öî:„5DüÄ”#]‰`ýôÔ6Ý9E–he}¯æYGX +sfáüZ¡ÒC&Qa@ð-kŠQV²®ZK;¼Ãq¶·|­Î]3Nµ}ÇtwPž.ÕàŽr¡»]S{J©P&ÊÄ×æ7‹Se| ÒðFÛX‰&ñ)6Ùß@QŒ2Ø+KxlNaÏ- wŽ—ƒˆ=•§f‹°/w½ß{­F4 ûŒèº2÷f{=´:dQMß%a·Iž{ÿûߥ-½­,¼›”y¸ Â~ª¶ÖUšœ"þïÁHü±x¾ø1LV¼0›ûpÃj³m‰GkXˆ».Æ$t›¸Ù +½XËø©"E~$Z#[æ&&›¯6vïÀ?þD֙)ñã$ì†1š<ÙÀk–Íè«ë«âb‘€ N6¡•ó+té :â@gÆQk»óx*”Žÿ ò`&Ûn@Š%”…&ώěs×;øu&dÏP.õ×UÂl±è¹ˆué‘ó O*F˜m’¡¤±¶8N2dp™æú(buê¦aô'ƒTžs3ŠûñʦRLb o[>Þðכ(.³u‡·ŽÊÔ¶‚->úah2K„þÝÑe.¶O ˜SæÎW’¡è‹UôƹÞԎÍFw„X,‘pJl~»¶Qž—«Ó©w¬rD $¡ÁØsžEŸ=±má­©"-㘦!-¾„Ç€XÞÏNƐŠ?›z6ћªùݤ€ÀµÉûï3¹‘a™Â{O!vŒ³•sžè"t¸® M³„ö¸˜2é¬)wTßïî~½ÃÕ4‘’P'äE”‰,)¥ŽN×»Ÿ~I£AnèMôB¨×(K´)`ÔFÿ¹û‘ŸÍ[¶J0VD«¾{Bîó±_ó/d¢ô7â_äIªnø/2º±f“èŚƒ˜É?IËh7÷Y™%€´-/û‘,Tåoè8ƒúœÊS>]v¹ëD˜g)ÛU¾˜TnûÀ„K+Ö;©k>}·žÑó•Ò:>!N3ì^H¢ç«Ï-”" ¼ß#¢£³/2I f¤Dɲ¢åW™¸A"sI£è +_b’B餀œ'NÒ,û:þ +ŒAßðÓ$á¾`¶^FùC)¾aZ8κÀê ^l¨wà˃ÌĐ~H󽫥·Pð#¾ð^¶Œ9R‡c ëéøÊíLEQ†¹÷¹80!7uPýÙ!°ï–ýäX ôÐMXövÜúº‹2¤^H”Ô·€Ù™áEÓt ónƒ½'8™Ê$Õæ‹ 0.@„P­’~¿Æ2bÒʌù"ÌL‘õø—‚Rý†ÿ[(á¬rN=ôl©šä³µàhÚömª âë4‡ÓÆíióF„ù« Tü¹}‡0t~̯ã&.pх£›òÀS}¹4kî7­oÂÛzFÁ»d)G°4¨ž^ŒàC0Ç·&?ò"7™©c«¨@çú—øY#z +Ã×÷Q ½h۞t+˜Ì2—4ÂÐ{l§y²#5UìImàªÝá»Ò ÌÖ +„é©¢ ›:^úé|ñÁgM‹ ØX™CÈU½2¤XUl¯(í?~ŒMFÇ\w2W2>»~ò¶Y3$Èûqƒ(‚+l“œœåžî¦™Á¯ ’óS+°ûÓÁPã#Sáé¨ÄŽ-à¾m§•K}„Wí°û¾Ý"Y*–6$Ͷe æ é›+\Ÿg`Û¹E10„ÂTºn1e©Œ‡¦­¶r<%¦\½Ãnþƒø Â4Ü1]ºJ†<{íԜ4e|œšväár/œUüÁ&MëqáLt s¸Áý•–;ñªßòZ}ݑtÃ|†ò›«${wù@ý[ºµù«DŒ‹K"–y8ŸÖ{çÓ«²òå@ÿYjß4½åÜbéߦ§wÃÏ$%Ÿ^6ý‹?™“¸c¥•oŽ´ŸZ±uF*ÖjU½ëÙDZd¢·0€®•oIádŽ€HÀ "¶O„Þw}یn|»ð5ÇÙ¨0®£åþdãÅQL}³hVÝœ,Îü.Ø3Ù 6AœÇéGjñÃpŽ¡GhÒ½VPC*õü¿±9ÓG†6§«C&l5]¹ðöl»?S¡\†§«‘<Þío©å..”Wÿ©¶â +endstream +endobj +1002 0 obj << +/Type /Page +/Contents 1003 0 R +/Resources 1001 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 989 0 R +>> endobj +1004 0 obj << +/D [1002 0 R /XYZ 72 751.833 null] +>> endobj +282 0 obj << +/D [1002 0 R /XYZ 72 730.164 null] +>> endobj +286 0 obj << +/D [1002 0 R /XYZ 72 703.022 null] +>> endobj +290 0 obj << +/D [1002 0 R /XYZ 72 512.729 null] +>> endobj +1001 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R /F32 532 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1008 0 obj << +/Length 422 +/Filter /FlateDecode +>> +stream +xÚmSÁnœ0½ïWøh¤@0kÀ\+%•z‹„zi{p°w±Êâ6‰ú÷É’({òÌóÌã½çݒYɾÊt~ë÷¢fB]]W¬?1QŠ¢jjÖ +UTeÇzÃ~q²¼’’ÛyðPµÜXƒHÍuº‰£¥Bã¢{É`(!0!øš ~¡J¸¥©EO\u6ÐP;çqëÛbƒ3kjˆ`ˆ~¡~ n>ÓÂÅ/6ûÓÿŸ¹…” Y‰£ž³\JÅýl©ø‰,OTïþžßNêüß"ËUYò~ÄÑ5ÜÁpÛq«Aá€ÐHÛ»8l^²☶öJTÑθž¦t£‡a½d•âë¤#ði;ÜrqZ<¤ylMÑ]'Kˆ±» (W°Pe?&t˜v¿K!Ÿ ý [!®Á4CોcºÞ>°D÷ÎáÂíàñÑZŃ¾¤ÊÍx ê-DDQ.\)H)åM;ÃWéÈòæZëWÌÒ/&}$múå¶øü˜ÿG;?2/!¾Ë)ÐÐþ¯ÙN&:YUÅòF‹N*2ZoN?ô‡ÿTªéÈ +endstream +endobj +1007 0 obj << +/Type /Page +/Contents 1008 0 R +/Resources 1006 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 989 0 R +>> endobj +1009 0 obj << +/D [1007 0 R /XYZ 72 751.833 null] +>> endobj +1006 0 obj << +/Font << /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1012 0 obj << +/Length 211 +/Filter /FlateDecode +>> +stream +xڅOÁjÃ0 ½û+t´q$ÇvÜËÚÑÝ +¾•B›”@Ó°4é÷O$]É`aôÄ{Ö{ÂÞ. qE È Pn´% §F| Ô~å¬Õy?ŠÞ44?dºoá­~ÿ…%œ–Ìâ6Q¤;r@¤WΈP0Ú¡²A#c<ÃQîêËЕ*Ɍ—Dkõ?^Þpd:—õõ:Üû®èëV‘¼©‘l«i¦+ïõyx<+å©o»éSŠɦèÙ.!ïši²|KÈ5†lZÐÙ?‡·Q|Tâ +endstream +endobj +1011 0 obj << +/Type /Page +/Contents 1012 0 R +/Resources 1010 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 989 0 R +>> endobj +1005 0 obj << +/Type /XObject +/Subtype /Image +/Width 660 +/Height 802 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 255 1015 0 R] +/Length 31481 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 660 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^ìÛç®Û8»@aÞÿ-ª÷æÞ{ïe—cédvŒ”A0_&$R¢þ±ÿ1B(~B¢B¢¥¥¥(…(…D)„DY«×ë6ÿ:!QZC~L”;ZímþmB¢lZüea/ԂŸEH”+݇L©ùZ›$Ñ`ç:ã¸ÑnÖí¾öNm­-¾ÒW`;M~!Q¦Ϊ†SÔÎ.ó6~ý¸µj¾Y·{*ªqÂ47ëž6ê‘^ñ¥` Ôã!Qþ4#'ãêÓÙd¨ÄpäiÁøŒ÷Ló¡ªÃ4¤tnVVTÈÞ·?(“ü:üÜ}P‘¿ REy¢7¦¯`¹¨¬­JÊjë¼#$ʟilNuHÛ]—n~ôE”Ç*J ¿oç=¾ÒÕûŒŸJH”‘{½ÀÑiÀÊh˜n +‹qådgc¿\«(†m” ]YÜò!?™([J áŽÑæžÖr÷xÑšþ“2E\¯¢\ªËñèv)µê•`¨‡Ç‡B¢ü‰.#€†ÑnGÀòÞnŸ¡×v3N~ûZ‡y8¶Ëù¯,ڕ!Qþû2„Dùû¥¥(…(…(…D)„D)$J!$Ê, d‡?°ê—¥Õ¤T×ünÁßëO§ ¾CH”û?höõƒ;„GþΪÏß ^œ'¯ó§“(í µË«”J9Ú¦‘V—6€MJ)ýX”V#6©}§Ø¶ù)¤|<§\kSú˜³mì´ô1óŒ«sãæøüé$Ê¥šA "N/JMBX•2íR*`¡•îÂôµ£ZÛ³«T­7¥ÔÎãwÕTJõ¬æþ1œêf¥š uÐÊíS9?æ 輨‡¦®RfÀ3ÚnJêîøÓI”©{‡cî¥Úðz®ÛHœ‘·v÷ûÈãŸ=#¯1/ž °u†ÞYlÖÞÌésŽ /¾x©Õ ¬‰g×5µÇTÇy§¡®ËÕöJé–½£®•Q†žw{½ä9;žqғî$?ñ§“(1œŸŽ›B¨’‘ DM ÆM`\0Õ-*ÛØ;¶·^§œµç1XM"êc[ªѕR-žÃ<+£„t2ÉX¼'eÜ&•­7·ˆßZ’ƒDéé^KOySùƒ²¾úñ÷êÇ*lû@K¥ /›\MË¿Š² Ô |DÉB9—U”“¶ÕÛÔ 1¨ôíñ¦A¸Ûüé$JÞ̎x{]–Â*JRª(;ÀàQZ›Ké~;JóQ²´|Ý«¢<: °ñ—¥¥´b'*"•HåûÆ7 ã„0¿‡£m·Šòúš’¹ÅS”oÀ~Çë²Í7£¨Šís”œMà2*£ìëÀbkÃôn¬TÅOTtµ'=H”^/!mo†6ìÄqWݧÙî°Ê'‹7]{ŠR¿.ÚÛ»×Åbß³ÿÒ‰Ò2Jwh×5 ×]4ãÎs”,ãb±pÎt‹pã/jáë뢩#J¶WiØFì/|m!$Jº €lX3 1Šb óbœrÛ£¬,*lÏfQÔÀ³Š¢nÁi„Åx5=’ã$ÙC¸(ŠdE +ë•sñX½A«¨Ô »Eqà ³¢z(ÛKH”¥(Í%¿š(…(…D)„D)$J!$J!Q +!Qz-„ ++›ohÜøŽ–·•Ôø–•Í?!$JcO÷N%Ußpó¦E/×­é+_Êl2òã(nÁp8LùÃI”µå?ruÃð!œó¥í»—òã¦ñ8é—7uåw'Q†A–$@úil$ @X Ý»$Á§(‹?bzL7Ê(««jšj¼¤4‚°Y$væa5ƒW-Hœ³Gb¬i’|ák''VK`×N1â:¿9‰òjµ•š¤°t•rç0p”*`¡•ºP}}wJmgU”}W©×•ðM©WF鵕Rn@ÃWÊ郡U¼ÓzÜ«òë»zÚ;ŒƒÓK•RãL…Të‡`™…R“Õ<¾œNùZñêêÂïN¢Ì»víÅ'ÛLÒÛuG¢ÖòúIè©V¥º4<c§Ê ò.«¶ã¤›½×¸o³ó˜¾3§ö±Ÿ´³ÍÚ9qT¦UngúJ×=0U3ò.Ùþœe”×m+0œKõèÄ'ÜQzÛY|‹^ÂT-ü÷R¢ti¾¬ç5XÅó$>$i]O3nveœÁ->§Ê;»a´âÀ9ád”Qf iàGŒÞ–iТï¬3ûÆç(mm¸¥vp|í¼Š2î@ªåΉ×fh‡ J#·Rû#£”(#ª"êÀ]sTñu‘Ò×óÓ¯ïÉ UÞDU.ÿóèºQ*"Ø)÷êñØÛ{ŽRµ¨œ®;¥ž¢¬{ˬ¢¤æ¨ö>£TïU‚?2J‰ÒRýˆ2ƒt³†ÆûÈy‡Æ°©§U”>`·Ë(﯍R0hÛ@bŸÇDntjø¤Ë¨í6 zþe ƒšcœǧ(ë@ñ9J²~´õ)…I%}Ž²¯ ¨Å ~w¥Âp›µtxùÞŒ}ä窺j sÕJ•7Ó Ú @_`¦Âó˜köKDûP‰Qþð)ÊM¶³˜½ÝÏQº>$êý¯(kíÔJ¾ª¬ž£$ŸPæ·'QªæX×ÁRESíñt»ÙÔ½e>y ó*Jû~|&Ufܼ«ˆ’í«Çô‘ó˜‘n6wzœXy³ÙÞe§Øozù9Jfñ¦é¼eumÞ=cëOË(×ù[ÓÙEI{ÛlºûïþÐa;…ŠøíI”Ý¡aÔ†±¶«Á¸Aï1x°î„g؂m¤é9ҙaœa9 {\­ÎF+ ã˜Áãv´_n§6„šaXÔ cV7ÖL‹md<ÖПÝ¡Qá[TëßùCÈ!$Êïå{Ÿÿ!Q +!Q +‰R‰RH”BH”B¢B¢ô=¾£¹$ñM® ß°ÚóüÀöÎfþ{Íä[ޏü0cΏ¸üÇH”êÆwLNìÆGÆ_- 8ùü/ú¾#ZЈÍÃê/ŽÐøaã3?¢®ùJxÕZlþk$J`<ãZÊþ¥(Pe|Ã`ðK¢Ü½ôV–I”¿ZË0÷*Êôhšæ ì³iSXšæ£¶×í ûԚ¦eCý±î=­]•9«Ÿ×G§ŽyI ™fŸÊ¾Õ5ÍT;[pˆn¦ TÏèVQâ-LÓhAUo÷,Ó\¬s»«¢s»3Ó<ƒÝ1MsÎy옷óŒê‘ô‡µ×>^—|>ÛzåÚ4‡‹Îæ +šçòc7kÐÚû­Çazš/ÙÊvŽDù‹Õ¶mË7P7¢ün½6îy©¾ڄM¿ëøzIO_3v-[E~NFÊê—UâÇz Úo¾¥5éصÚ:¡¤ß^¬±ÛâPîÜÞ¸mË8ê⢠»Ü¾Ó†åL^_Ë·{›±õº 0ö­‹2ÖsÛЗBæWk§[ëÉÆj.ôó«¡_m†Gîԁ’W>ÃMØç->íŒÏDzßÔ»,ÊCÚªÃZZÎØrsUî­Ä[/ZóË^6å¯eïF¨uãüè:îÞg{¨e”Œg — §uhÀèBKÙô7$zSÒÞÁAÑP\–”´¼ú´ ÆåQòâ>œU­ŒÒXA]“( ™Ôàbì UÆÜa‡pəíÁ¤zûø ºÃP5¶=J÷  ›·üf:\«úê8k¨9ƒDÈ7"73œ»½g¥z0¹¾¦TŸV>ɺÎR¢üµ252uƒVmaäu.ùhނµö;5ž¢EI•íN%ÁeoZ”ô +¨ÅsåJö`Be6¦TEiÅÎ誡1râאÖHÇ»à9Ê•¹Žï£§(ç€e2ôŸ¢¬S:9nßØŒÏ]Õ=D/³O­ô;÷.|^ݾóCÇkÆǔ_N¢œ‚m­Q7œ3 ëÙ¼ ‡Só|õe^ƒ`ùÀès”ñ +ý¥7·iܯ”t 6¡Óê7>¢Ô„¦WnϽªˆÖ<¿y;AÒ¶ž£tU“íûó×7Îhe ;§| 7ݯvzú|R Øsƒób¤Ž¯RîÀø+Êw Ҕ†f%¡4qC~9‰’ëvFù¡Š2 +îZ{Ú +ÃhÃÛ8 ëzù9ÊÔÝ<ÓiÚaxÒû´¥<»¿Á~}i…oNúW”Õ Ã«IIëcØq:¯‡p¦‡QfzROîn£Š²†o:˜©yN.ƒòö¥ûå*n&õÝÛnFñŒA»QFiéÃãöð%†>†g}LÝq+loÓUl&õ‰:g¯~-ìæ'RGuh*Öñ0ìçÝ*JšÎ9öDuŒ“Co¥¼•ò¬œa«Å­”Ü +“žZÊ8ƒ¤êqæ߀”ù«úm¥D3졜ÞJ©¡=଍àY¸’<¬ëþ×JI‚V$#A„'–2§@9Qm \I6©ëн)#î`@NØ­” +“ÌEfD€ÏpÖ:,ƒÀÿ•RRƒ© ݈"\ µ‚SKY—@äÃ$G«pæ¤,îž^J8|XKž”y€ ÓÌfú•™tfæ‹,6âË ÈôŸTÔ1— +BÆFùöRfK³R>›æ˜é»•†™C¸fÓ.ÑÛ2»i°­MQ>4Ü0®OJW@˜cõ¦êÅrèxÉ'Ž•Ë¶ó@.³ë¯"‡"5"@æ H‰4ÅB?8)G³ŽOç=|oM¸!ÀŒbJº9ɝµÍ ó Þ1@’)YwÊJ:_nS¿½”UvDÞebpb„ún*CГõ4D2‚tܘ)!$X;ؒ^Ÿ”özá#'ëP‡¼  œÄ²íb–¬UöÈ(¦Üh! ò›‘’r YN><)ŠE힨ãM)¥Lñ¦”Á_ % ðN#e ž`ãXJÙâPÊmvaø‘Ñ1ÆOîâ7äÓ2Q} VÍ4RÒ–øÄH)ÞUJOù•`SOJiþ³”9´œJʹ â¬M”²J¹ÏžI)é^JJáF¤Ìø¿R~'„×S”G¤¤€ëHIƒZz;z)ƒ À$qæÂF~DJ`vJ)U/Xԙ¬‚‘’3À:”2›×¸)YcÈ2ü%å×/ßBJÌܴAI|r¥”®F­éPJ¦Gaôï ¥ÑfLv>wâj)ëÎEµ§”Ò)–AO H¯–²7Lø„³¡”iÀp3R²$Å·vßO)ÿüðªÑ{w¼…”|í5ƒjîuS>JJ±žR)åÚð,T×ÍcHéòu·6ñRׁ·Ⱥf“ÈXh)×ÝXJɛVJI§A$ÑIWJȺÝÍeJŒ‰–2 fRJÙ¶<}æ]ãÙJ9wqr)Ù"eà’ +凜¼¥”ßüåÓç¿,eâTàVUF+ʪ`Uìú‹–«>£ÛQÅ ±ªï"¥—Uj«*ǯläd†–Z™p¨úÌ@m@%ÖPûú¤œ»º +l2E›ÈֽǠ¶j›:œJ @óm³ +z")¯“¤ÂÙKyyqçÛÕåƒïWß]üão¿[=þúëG_=üÞøò‡ÕŸ.žþÏ£{O>¿{ñâg5áñǏÿþñ[H‰kà­¤Ä xw)Ïú… ʏ¬“ç½R>þï/V«ÏV¿{uïÞO[]|¶º|ñôÒx¸zþ—ÕFÖ?¯î>¸ü£^7Ÿ?[}a<¤¼•²â9†¸¼z?^]ûòþÃo­>úüå˗߬ µ(J)?»ØÝ_]|»Úòê¿V—w~ú%)íü†¤ÌÆç ¥+ÎXÊxjqòÜ¥||ÿß/.WÝÕf?ßI)wêRþüñ?ž>ýÃýOnæ}Jæâ7%Þ÷µ’xáÈÞ}ö»ŸÿA®‰O6œKã•\;¥”_ÜÙè÷ò«½”ß~³ þmý舔çÆ-f}ÔÉó—ò_åòøäÓ?þt±zù郿úùÒxúŸŸ<øqõðîåê╞ðäÅïeð靇G¤dUQ¸Ðä-,.Š + +«(,l±jHü¢Ø šE¬& ‰ÀQôÍYýF:{I•B£#»(Ò–(– h|9àÈÜv´¹Ì¡a“ Y! ³²ùÃÄQª먰:zØ©6tºm¿1Ķç]E….!UF&¹j­’•ø8‚¨ÙîÝþì:¥¼÷Wµ;?{ö÷V«¿>ûèÉêޣ͏O}ÿèrõÝϞ*¿|ö§Íå»gÏýþj)…ׇÜW*ÒÙŠ¢ËÅ\‰Ðs!#…ËuýÔX´m¥å í–3)eÛ¶‹&‡ÆlªQ§\ŒIóL™‘…3.áî6]"/‘ªì"'(m>Ñù4–À¢t íB=Ão;™|¾É¾“’Uë ¼½EÖn˜¦ÛÄrúbš×$Ú'fub'5 #b§ us›8"»è2µã`iy)D0®sÛ±ŒJb-¦.4ÔKíٌý<†Äb›‡H»M)Ǥdœbkcœæ&üü3úÞЯb-‰§¥ô› +ÐÈS(&DK)6x77 ]hÌ[êè*™a¿¾“EºàwK`oÓ%ri¤”»(%€c@R’ –தd„h))á~D: !F®KH…®†z¾¯Œ"žœÞôð wŸXt>ü®WUS€‹v"o¦lҏ´(áuÎH Ä5•u Èwçy+þtªÅJgêØOF8θÅÎ ×Ë2.ÃÑNüœLÏPÊ|áV‹‘–2Š#0®<È\ŸòRw“ÄZʔ§iϔ5“e*|h2aKÚÙqC•”.0š@!§ÛëH +(Ò’ÅhçÓè{@Ì¡™Å»†ïQ£šª0™¥)Ş ‡»î÷c‘–’Íúᣡ ɺd]‚à Œ ~ÌàzËn Œ՚` AX‚a"Ù3] Ü|nC“[@µŽX"fZJ+D€&IK÷¨”)HM\/é<¦|Šâ,¥”Z ¤ÔøaàBQŠrN_KéU±'TÔ´UB ì3Ù\/FˆxâçÁPJ™®=.%$Â+RêRZÜM¥$Uä‡Rµ} eOØPJ˘Ìcì¥ÌŒ±! ÈH§Öz«†r-å–4°Tm»Ä­J×õP±n$Óº ÝZŒfQ-‚cVºöuKé1TÞ{(%‹›0‚&òg3í‡=ⶀE@Üé5“Î{HòŽíŒîL镖†¼.ÞMʜt=ÛK©K¨Rra/j;ÚK1µ`J™ax e×c ¥ôpƒñ^JT„Œ¸PŠf ¥ô“¦dC)ÇSNˆŽdT4SQäxñ~ëí*–5¶MF [˙,—ñG¨«K•çÛz®R¼!eÑÙÐÔùëÕ"m[⵪L¶õºAôzÎN-¸†”ÊƤ)eºæ¨”ú ã)u )‹¶å]›í¤Œâ(ë7¤tt2”2ïÞøǘ”)#ßú Ct  ð¶ H¹ –LoäEG(n7ÔK]¨–GŠíAÇ2!§8BOØ H™·’òL¥ ™Ð)i ,ËRc$albg•„/XFReAs»µ^ão¼òI«¬Á +ìÁôÙ$’éŽKN¬ )u ;)Û·Ä 8‹Ö÷›x(e˜H™‚QO ¤4,¤J~«oJȄG3bêM·Ú ¸{)§£Íïy䕛‹-342r²¹€Ë4íLvÂt’I(ìÀ‚ä8ƨ¼n))uÀ¬hÛûÙoßp ßík¥Ö#÷$¥ÒŽfЈÛ1ž2HúŽ-#õ(vØ3ÎÓHݪ&d<œîÞYД$£tøÿ¨= 4‰Ð%$NE\@c™nJ¦{¦6ÕªEäeSf ¦9á&þAȄj%K–r>b*聞CÑɁÚWà -ä÷ÁËšD FB]ÝLtérÅçãk>è¤)âV z‚ËúܤODš0g‘Ȳ$1ñ묖û3Äk‹4cI2@–É>;¯f྘ô“-š«ztÓ¾î5h£Ãg:G‰”ïçH©£ŽjW?¹­õIu¢(jK)‡ø=)%‹¢L©±ÞrŽ +çRk¡&‚l(@ŸÌ¥&Ôk¤”¥—$|­ŠÞKi ILÊkQà³›üÑ5o÷mºš±‘a®ëÌB2W˜ÂðN= ‚0g8÷a.SSÆ×ÀÃuÝ-c¬U–……Ø!Ër½±TÅâ(õ¬‰º¸ó©®´ B#,±âcLºî/à.™S€2»–ÖñÊuà_îKÌ8JŽÏÔ?müðÉÐ)lÂB YQêÕÃ5®GWó¯Â‚_u×þHUÆ.^+ïlªÊÖS¥­'ª"ªÈžC֏y§Šœ(ђ›M?2b¢…èÇ9ۚ: ¾ˆQÙÆÄbç8^g瑳⣭Ž N$|Ï=ÄäºòíŽqA‹‹ ¸‡>qÂ3»¾«˜Tå¤fxƒ¸p êruą±KCü'ï!ÇN§=uÞx™Ž /eæ¿Ef‚ôËõö·8§ôó©ÔÂÆg““.` ]ëÆÏL¡mÔÁ>YxÑ@©ƒ•óLÓ¾ª<´,~xßæð|ÞÇðÏ!>ßæ.4êÔÚAþ¨-‚}þGe7ÝâÛ %W:]àW`+f¡V†Z‹ ê£<¼Ó!ø¹Åï0”»¿‰³ca  ýTÃ/4¸'‚‚²¹;t+ä8¼·fÍM6dþâ\qÐ׃LGcb£NçN¨»‘f~sYK9‰ö«Æ·Tâ`Ôb瘆¢ 1T`¢;60Àþóv6†šBZÂ)8Ò©S )äù=‘ï5¯Ñ×¹ö¯›¸FÜÊUžÁý>‡Ÿbä*… Wهà\ Ý"r?ÅM xŒÁ`ˆÙÞ%1k`ù³„,W–\$ +D²L¤{ªñHî~òù>ÉrëH”ßJó·‹ÀÁªu€Zë÷ÑeAŽIöâ:)“#£$Éé¹Îçó2ySþ&oM&KÞ%‰ÞÉ&S)}óK~ÞoR7äG;%‚C(-pJ„¦‡ý¸>à™ïŠRË+DùG;J5yyyI8£Ô¯tn(5Q!iic2¥í¬jäㄸBåÀbv¬Ý{_”BŽ¨gAy-Ýh„3ÊKYâ‡2Ž¾Á,^lïÒ"ù(Ôþ£ŒOõ@ÇïS8Ôgƒ% ୅ž?kՁöÂoMáÒµñs|ïÏè=`kÚ÷Úú4f.jÔ–'×w:•ÅsÔw&_½Õù¢TdÂ¥šQ¶“Ö6—Ÿ’êG@i•0J1J°>G¼º6fkL£×/å‚ÑÖì•¡Úºe€ B™Îª‹ú vx2J’ä(ãʺո¢ü¬òE™•™ì&IùÕ¢*F¢ÂeE+F‰ÐmOFXÞ=›æUÃqðsƒ²Çð}UûbÎ ¸ÆèrÎ!cl—ÍýQË^t +º 8¾ç9ú=šçù|¸WARꂦˆR!p,C>riž—Ÿ+ñ°¶…”PiÞæ·o争mCÆ­0Æ19Ò!DÛàs‚Oðœœkž|"ÇJE-&eÛÒÀ•Àuž+­dpJC&¥ôUBN9 á\ÀqÃJwù."5¬øäýDÓ9שUÕ„­`·Öý}-¡^¼— +…}qԉ¿1 ÊÉ(ëÂOaÅWtÄ ¨ ºM›X!@»—¯S>Ï@³Sñ½,nŠ„²@F98µÂŠ=ëì3šÂ=Ià&q¤tàí…êÔºÚ§ôЁþÁAïý2rÁ¢©ø[ ÍûŸCÕã½ÕBU²c»°ÐƒZÏN® ÈA{«D¢S‚ЪmšócI)SJšŒÐiž_R@f%<1g9.…lnd9¸ÝhYsO~Wꙝ{ 6xz>,}Š³¢ÓÆǬZL¹Yflۈ¥Yû6Œ)JÃ0»„þ²w‡8€0 E9ên;3ÝnP˜"Áƒ"±gkë¿þVhËÐ y<%ãjK Ø “8¦¡(˜t«‚oMŒO)ršŠ.©"†‹(ü~è‘sﺉc€­PXî‘èé¦@šôy¯"Kˆ'Hç"E¶„~^` +wó[nú‡ÃÁb‡[Ææ‡$s °>¶´Íjg‘X₿ù…uôIc¹õ ”º6n`·Ô5ŠÿŒJ½Aù*üŸÉÿøz.ý]Q”œSÒ¬âÏiRø„¢ÈÂ>Éý–|!|Fò¿B »¸+JÒÞ¥ýñ)(ógyA¼–^) +™ãF™/&Rß3W\~%Ò%v:?J`g”è쀃OA)ßwÇå…dZdwyÌ(¥” Ì¿Jñ"êl¼(‰3s=†2<=Ͻ^¶é´ê`¹5¥,¶æÖ sæSöcw²ô›sI ÎÃÕaŒÎ҆ã˜ÔCӜÕô┲çҗ” üÎqYñ¸Q2J–Ó?öb’8áY‰Ù|œ(}^õž¡ìRK¿«à§mmPêÀ@Þ‚úX:°6V% +£e‘ +wL𡪾êhçözWÍñû©ü&²’ÓÉøP®ÊM`j1”«L¹€g«b`9~´th•€ûúmôõªyÍ çÛ:N„fq³lã~€6ÄM ¸][á|_ŸtëÀ(Ŕ¢—8b”Ò•¡”仐}"G£#^J±¡l”YEóÝV;Êöd¼€±á–6 ·ðtDŽ҇òcˆÒWFÓ¬V±Ó[A+x !Êí!ʽ3ÉaQò—²ð…; ÏÊ1£Æs€’i"JÒ|«6zÅ~ˆ’{yæ<ëvYPj  Ž½—ÝÞ(C¹ŽP%±J\÷°(åbPßrÊ£ƒ\äÄð|¾/Ê«e2>”ÍÁ¤7}7Jú“4”.0îtm¸ïàpÚÔìA¼ô¡Ž˜Qx\mºU›R»Q]0Úm­Íwy¤Ûԃ ÔF‡E)E¦Q’3‚x9^”OEp|vÏÙM¦yVÒu|óæëd8·ê¢=Ñ6~emš®5ºqúu°l'ׂî÷Q馻žs2éی¬´*ÚG}‹6pêôc4TíuÖ7þò/vîØ@ +¨q zç`µr{Š#ìbwküÞ´2:•š¸j0ñ嶸Ü9Ü©Ø#…À+|»Ña*?°™]Ï4®nO¥áóTWKÈÛÎá qg׎ Ù¿˜µ "dع¿K—ˆQ‚(%ˆD‰(A”ˆD‰(A”ˆD ¢D” JD ¢D” J%¢Q"J%¢Q"J嘥w`†‚ÙÿÇPHˆ˜,¥Í‘Å-àW8å¿ò<¿¥¯!¾â”sÙµƒ·mmÀ\‚7ú ‚Ö¼&¡…í´˜åldhÃÿ„–¼3ÿ½ ¥ ho8¹™Éô5É ¦IÚ;7/m‘䵯IÛ4iß!i[Ö¤n27ãéäfÎB¤dçPþL4–ça"ÿÖÀò’„à3špos7êûrçá~u…ò +å_ŸT›ÂgŽø›Q^¡¼B)¸£’Ò+”á;¶¥î®QRe/Ø6€¹€2*Lx/JéuGž^¡´1ö ÖX’ZH‰~ò½²ß÷>eXCS6²—´Þ6 Þß1Ê ‘²pÌ´‡³?·6€é–î ]†n^¡4QqÓøˆlÿÑ0êüDé"aÚ~´}@ZÌw2é™ÆÛN{€œ¨*÷ÔîQJ?ëØ’ÏeŒ)  £rJ="=((©ëϔƒà•Ú•"…·0°:ˆèpé°äBPþá(ݚÌh!ÀoAi}ò›€B†H̀E0¥E=—ÒFژ–Ùù¡T9Éiͤ$TáÄ4-ê>¦3â{ԍxÍ3Ù…R=bÆ Œ‰Pu(¥G;»<ýìPæ8›òy I–Mԓ%|‚÷&®;wä2NeŽj)9ǓQ& ±ùLJ'Ž2Í0ƒBräLæq<™¢I ³ÁdćÒÉe:âí5Ɠþ|¥RÏe3‡¬sGÈM'# -ǽaŒ'²—zÚt"Ï&å| JøÙÜQOÀ.¥_vOÿüP"%e|‰”u(s{ùvçöò§*Á<”ƒ-dP6(€¦< JTižtЎÀ¶—o@i.߀C^5d ‰²t(Q­§VI +”}{ù”æò (Ô@5\04„ý–„‹±;”Û'ƒ??”¥&{’ùiÍ5Êñi”ã94~HÞ3ÿ6ʑ‚†;Røn=Ñ(‹wP‡x"k.t❬”®Ôâ`Bª¦e~¥Í!kN… µŸM™¼”W(Ý`%(NJR½‹RB”€²Ú@Yœel|9²‡F ×(½wQ6Ò²Hä®PŽtSpé¡yÂ5ÊÞ&Ê6»¯Qªå _Bq‚2í*Tÿ1(ï=ÐñúCWʽ¨(C&ë?G©O?ë <ȸ–YŸe¥t¡áÖ*"›-(µt¼S”ó14SG¡†HµeŸItQŽQÎäÅ $|ÜÙw¼ÿ”¯~¸õüţ߼%¢¡Ú/e¯$L•‰°(±°(C6X‰ ›ŽÂM”r:òX2Ÿ%âc’g. d,‰%J& Ê@h”Næ² +¥»D‰xÃêl¬Ð˜1±%ÊZX”B£t *¹ØD™÷ ƒ»GIxaZ²Oåõ;ï»ýv±¸ûö×÷¢Ä{áP6%B%G…A¡ùP†*´ ^맲ƒR8s4JåPf¡¬¾Ðì#nPú#Ti”q’LᵞÜéJ™ ]7هLÂåõ¥™6 ”^Œ÷å&Ê™¨v„r»I·tåeGyxtt @x¤7¶yqÿôïé%òÎáÑåâћ÷¢tB¥t4zJ£S) +¨5®ô™}M_³a£ÛPʗgA¥BÍ=_gõ%“D¥2Ôûö-6&± žÊÓuÛLz¡;0 Í´C+Tú,½!fœ¯L]£ħLâ±¼ô(ï}ž,îÝúfñòäśg‹;ÿýòñ͇ÿDß¾^ü닟nÿãÞÃ[¿ÿríù +å+ôÇûQʏˆ3¡”;ˆ³£¼Ô?ÈHqÓSŽ?…d¾¹¾¸ûdñüöƒ¿ßZüöõâÎÓoŽ¬–·áµÿy²øåÑá]»RÞÿñÇþ÷èÓAy…RÐÒßrí¾Ü(ßÝ<úùåâÆígϞ½^ s­Q~u:_Ü\\ÿ¿¿)½=~J_Êéûžß¥ÀƗ¥ 4ììåX~(7¿»~oqãVö÷k”?BçÕ)”‹oѳ-(/]\ńv÷£Ì•Ÿ +ÊoŸÀšxÿÕâî‹ãk¿/Ž¿Ö(Oî¹Xœüz +åÿzð!(ùK"ü("|÷@7+[õ¶OWòg%qz”ØVI›çÃâß;ŒœiìV›Æ»]'ÃóDù=„Åñ浧oþµøþÚͧoŽŽÑõïî<º}ø哻‹ëO퀻o¸süøÚöGB¢Ç¹ZÍß±-s8¯l×ãí³‰€[œ¯Rî¸öm:Š•‚œóíÍ8oV³æËtn77[ órh"Χ+4½¢[)m[9҆¡i8Ä 5èŒi;J`%בl$&0I_ʶ„pºJ&œ§R։·Ó8(W…q>;CÎóåŒmoÂyK(…„&ƒS¬N ß'ö\mÕ]Py¡÷8 +Ÿ'ÊÅ3ƒî“×Ёޠªª:öW&Kå™kŽ˜$*í„$ÅzxÃޞoÓaÎJ-Âör0Š˜cí)/.6Kcg~Eɚ¤¯g]­?ÅÞü¤X©Ì’‘’aQz‰9'3¨}]BXÂdLbQ:,5n6X&&ýœÁ„ ]lsT±Bõu©TiTmoâøÅÞª’qæ1Z2 ,Ê4KY‚åC)l‹RtöÞ鵛 8¾|ÿû>؋¤œ×æœQ‹Òþ0Ç1'[»q†ËûÉÄ¢,úbã·¹¤&vGÔë%•÷¤è§ÚRæ?v Õ(Ã8hÓ5(mrÎ8¸Bvý¢q±Y¡Sƒ’áÄ¢TÔ t:·ü5”‚ÃHÏ®ž³ R–ë”m$ÞKeˆŒ[‚~XiÖºjì9SHl”¦Æ©OW(¹~?¸'eÁ5z½Ä| ²fUHi­JlQRnnûËZn(ïîûçÌ°Êœ4«=—^F”MgÉbæØ<‰¸ZÂK—½‚Vå0žNí7=wêéL­„b¶ráeÞ¤ô JWÊÉÔ­ìghûj#»ý"(¥¢•î¢S‚”³ÞБ6"2)§ÓH¶,B”¶Ç˜EÉÖVÌðYœrΖ‰×(A•)hÊÒ>4éž ºÝ¬iŸg5Ä| ’O`ßô¸î ¼l•Å‡Ž—1ÁSnQº +äöåŸ:ã­(iwŸ6çŒrˆ"‘Äí¾÷© %&¶WÇözq²DYp•Úo{>¯ü¼´Ù4X«hö¨ý¼EÂoï,(!È0ö:(‡º„¥—°.JÇñƒ,8…27YÔAé9b¥— K*Z”l4SùÜfƒ>—-J8ÅNç!k8Ýð¾6Øöxf Û ½¸4€ÒÉaj¸ç÷æj‹†ÙŽQ–B¦Ÿ"Jædí%F8¦lœ{N鬦Ò7ª¸af/’Ü~Z7òÂz–Ÿ eÔÇJvPšZ”ýž—`´(uФ‹Ò,ÑIeéÊ ”MæJDÚÜÉ~…= ìl¢T¸ÈM”½ÌÑä]ÊGË^XÛßPà±T™ç•Ž-ƒ>·Þz w¼£tÌ4O¹œ(Ýy$å¼×E™p"m”ëÆ«ªiYùڒ»BYJ²D™¬iûëu‚¬I‹ÒÛ¿)·£Œ"![”Ë⠔UUq\…k”lBÅ)”#pH;(ƒ¸ûÁhÎI½²aú·{öFG—€×S’8–Y{£#ìíM{kgNææåfœBš;¬rZ-otØ´‚oE©FáE ¬L„—¥ÜÇa‡”ͨ.Š¢Yò$œÊV•½mm–+J쑺o£A»Rö¥ì>qˆ—¹ÃÎÿ ”œCîªEٖ`P¶ªZ”%%i?í ¤JeÁ&Ê}ÚAéf9dÑJk0ÈzPƒeƒÖ`¡Z”{ìdD¡ÑŒÉh¦{a\7^Uâ`=J´ >OôÔÜÌ#^_mU%âüQ¨#mdXi”—þò-Ť}Né¶<®Ã[=±¬Y÷ΐ9›Ïïw9ÆoUø³Õ;| +oh‡Ût«^Ï4…δîQ“\Úȃn *iGšh´N?é<¦”‰No<§ä!l³Ûwž 6ËfÊóÐ>_ԑ¶H¡16éL˜}ÊL3Ô(M¯– +šhMßdº{lb•6°ñ·é±…¶Ñë Êê¨=©3w; )½l(/a\…ÂM»ãN.(ëÊn\Åöâ(ü¹¡üvé +(A +‡$!Ð + hÄHqµ +{'ö3|¡JoÓdqR9Rp +º‡yðòÙ³ÿßDa(à÷ÿÿc/Â×ãD:eŠlSï–»"wsº-Æn~~(IÉ£Í˃Ðö±U”Ý»¹iåÍÍ­(7pvîtÉXCOÐ \™¥×‹¢œq87å·ÝÑb}½ànK®ŠUÝõ¢(Ò‚óòË  +Zª/‹Gº§mÃÙXƒ+âUÏ=ù§ŒŠ{8£APŒànœM .o3ÏTüÔT :ÈXàdÎ\ú™½YèøãbþDÝs$͇aºÉ~‰‘©*§t—`Ð¥ª†8Œ,¨¹+ÇÄBU¥6\–OGªZà¸y+,§2›,ô•KëÔ!2ÇÖú´ú$ÏYÉÄ´=c!ÄÞX bÂt'ì%‰JˆÉX&jɃ·,Ñîk‹„´`,$$Jüw…š$ +![ÆX*jö‡9R;ÓVäTH*cŒ²N س’$&:sä}÷Ãх§ðdä¨ý´5|H5ÂXa’4Iü~n ٜLj,~¥Tˆ Î9 Mv¦ˆ +—bD ã=w7\8fÊ%³¸eˆ&¯e%¡°ã­Çˆ¯a#n–ˆ[.ð™%¯mQÛ°–rÉÁòÁ‚Æ4"»ç;*î°ø° —žà¸€ó JÕ»`¥—&H" ¾ÄFiLPj"ñ¤Ÿêè4}ÍpmúŸ×üëاÌ_ðèK”l ¯Œ|σ¯²ó^¹Qø’:ÞšpÊjÆËÛ(ìÙj5Ø]qn´“s˜B‚'/ߎÌsÄRQ”Uî·#E!ŸMÙø›çIh¤ó |®Ãlp݉*K6EWSPp”;mÜÁ!ü VƏ9ÑI*Mà%–ÓëpÐiMJ* Jº~®9ÖF%ýAnjóIaÀ%DãÐ)7»—Ðs'Rž ú-ŽÿWÇ*Â0EóÿsÿÉÑvª´<Ú½"º8¤‚t*‚9ëݒ@VˆXÚñZ ,ÑEvÀfº¹½.éÀGYx”.V&Ôò4çc`j¿Ÿ›8¨‚(j£ŽÆ'÷ïaî]\ MZ$Kßò^ÞC8N¹œH>¡9Kw©óCtÿMóu›8Æqx®@Ç=räj¯zàY¦Aòʽ‹-,Q’ ý”;ã@l ðM†,Ÿ ¬A|‰…¬'¿ê•(T—Íp¿åšïЉ«¾±Q—ÃúÿŽRäæ‚d›IȉDYlJ©ÐP:›ý2J’®à¥lœ(™‡Gé>DÉQ*u±k`‹Õ îچ‰a Û ³ÃGð Üw€^ ޛ Ÿ«Æ”¯z=£Þwü˜ó1F÷Po‚2] K®JÕä¡ɦޮI.O€’¤S™°®oòñ¡œêpKC”ΫéJ]轶MYRK˜å@ôöÝ#{ó­Ž\—»°“¦ÙXaû`;DM¦?©˜ïõü™â((ÏËQ”„¢$'weR•‚’ä*bºåB56”m]TˆÒâ¶ÔÅt¨LÐH#±½£^›·vÏú‹@ù®B¤Ösoc­6Ð7ÊÀ‡@é0©f¥¬ÈёM,JR)_Åb鮘>À𜉺(ƇRúºí¥ºF8ߝÜ-,Œ–@iXÀ§Ý ËxÑ;Ê¡ lLl$µÏç 3·€e/B)u#”+Ç@™þþÏò$eI`Ì(~)ê*¾ŸÒbÊ»ç;!Jcg>K6Uù‚×1©À¢ix5ÄËèŸ >·RÏ[i©Ýœ¶ ±®£¦ήµ¹»Ð,lù1Pž‡x™Þëø–D”§g×ä[épSq–¼TäØP‚¾³U×rÇ+kMWj}ÍùÁÀ}p T2ö Ð'Õ ,ëo§˜1æ ² €›ìš;©cö¾v)œ-{ZqKӖüßóýëovîØ` 7J‘1¼ˆG pU2JR! €]""±e»à +—Ö/ðâÚ=Df4ñ¢)†²"„Kà¿“²Óð1F}ÛêªçhHûö›8`|ë'Wœùöh\ Ÿ€W¶r‚HnÜӎ”anÀÈÒ«Ó¸ÈÞaË­7üÙ ‰›-²ö0ú¾‚Ú~ P>Xį„ˆ@I $%( ”D $P’@IÊø ÷õ¹N²ù¬ÐÌt²”±µåÑvëRKkm¯«›8Ûë4(Ÿº´)L*ų銴«ÕÈ)m IK&ešé6)µÉõ¥=ªmÔÈzÒ·oe[$v{)MÞÖg” +JPN[vjvå妫«vr”J•ª§êŒ2ÍTóÉQ(Ë4ªªÎjíwݪÚͲø‚RÖG%PN“I’äY5K–å"Iò*1+UíÛÚ(2ü”D $P’@IJ]ÆêWÊùR‰@I %òÑ"P(AI £ÔFnÕÊ­Ÿ@9˜ÖV^£<É­e`(ûBnÅ ü[+·rQºÃœå¡ÔZ®u%(¿•Mé5J#×: åó`|塐K©zrÛÈ¥(8”ñL.=r°©\ûŒÒ •O¡tŸá^@9ØI¼xŽ2“Kqx(Wƒ(c¹´÷¥›}ÓCX(Ýãvå]û™[ÿyŒRgîօ…Òȹ +”ƒDå3J·PÍDÙïä½”ƒ¡ÒzráFÊ`PºÇ­Ù‚ò¾éÞ£ŒEdv åRDv +ÊOuîšxŒr_ˆ$"Êr¸‘e-RùRç"Y(µŒ” ¬Dò@™‰lÂD™ 6r 4ҕ€2–BÃD¹|{ +Êm3×@y˜Õ¢Œ¥å×æ ÏPòoFPfö!P®M¨(WGP~-ׇ@ïCE™+(ùÒ5.Ê@%(A JP‚” %(A JP‚” ì©þìýGù[õí5D”¯o—“sò;÷’ä¨r`˜±Ãëð¼¯ÓKiǝý¤H!RRB€@½= +=@BB´»ûÆ­Q ªB%óï #¾ˆœ§Üuðô˜÷6)âbóy(§f»„÷dãG™¾ +}Û¢üsF’w6èØèêÓPro §xoŽk>8Jö.üµ%ï,Ó#=ÿ\”8¼»É—@‰óòTÅÍwdš¸ç5*Β¢Ã¤qÍÝýUHd÷Ç،ÝÙu8à âÅ%â:#qqX\fþa(K=z"®ö6r’dㆃ%X7y5ïH¼*5Ýàbbn­UñyË@Äó5Ó<3¥t×RlD\»•¦Æ\PGiŒWãÛ"¿fS€Ó5Û_;[/|NFj*ÒÔ°F³aVÌ×F±ð¾>ʨ밿"J¸wíĀ°ƒ,\0kéhÒ_³(,ÜìRŽ Ë +ߥšP>åªì Š²¶ˆ;`4pžÁ¢ñìîk‰{€º°½æªÆ‚­I8å>bîÐyP”"$ÒWÁUÌU–@ݎLõ•¯†!˜CÙ{¢—¸5E™§nŠi×Ç2u»}”bR©~”.^=0:pvÁœ€váüDƒÛg-Ouá߱%ù‹+å' ¼M@É­ ús÷ª,Rx= ^–¬~¢t!Ö_ú¡‰Ð3 …9‘‰Rõ#PÒY°“°0>25Áµ˜jÄO”[]Öò`Õ,v+‰ÔÇ# @º€YÍ ¬fJ;u¨©7(Ë®2Õ/”—>Qf Ü»»ÊЊÞ' 4'“nè#í J†c;ïüFikÁEÄ¥‰'´±Cd½ ¥äs ‘6Òù+Jn¡!…9qÎg…õ¥Ò.u2q È¤ +/£~î g9ekâFˆ@wVsû£PN^n‰µÅš+ò-îkéÌ +ý”²{…H6ÔBÊÙ&êï£ýÎIzT3%çK(MùH(qûMÒøÞ­#Õޗáuê4{%‹( µË“ȳÄö¦Z¶±¬ RŒcU¡t Ãlÿ(‰ê:¦UœI-J£·¬ gºêX)MÓ\ŠNê ­3¿ÞŽÂØ‹8³¸TñÌæ£P2©ë xirßi=[ŠÁa(¢õ,·'µkWcMÓ¿PŸÝl«:ñ;åQÄ©pÓüY 号\ÀÉS×)jã˜qnx +ÂÊw†7M{0Ãcâ€[ß7õÉpï1²¾»';¯ËH ëY²yúÙ·W;Êóþ‡2~ØÙ·ßÁó‚€Ú}¦Ù÷THÏëÅ¿¾ïv!¦Ýƒ²ï²_Ô%ÿþ„(ÇCGB»EùçâÅÂ:°æ›GEiç‹Å~À$§'BÍ # >'~‹²]]kW×Z”]‹²EÙ¢lQ¶(¿}{V”ê« lQ¶·„Z”-Êås×¢lQŽvÿeώU"¢0Œ†¤þÅjY˜>ˆb@mÒù»,2 Øì²]Š±L +›¼A +}ÑjKWÙΟC,¬¶0i‚…µ¹;þ_qûa\†‰kG”¿E”_ƒõù¿Q%Q%Q%Q%Qå4Z'@¥uØ@I”DÙÄzØعH @I”DéV@“ºP2Ö7QåäªQ×Tl"#%Q%&ÁÅ0Y… ”DɇÎmš–èrA)%QeùdlþaÑfD $J¢t3Àže聒(‰2ɵ™Ú¨V€’(‰R¹ðdvŒäm^Öc”DÉoF¢$J¢$J¢$J¢$Ê˺m<îæÂ/”‡uÛhÛÍå^¡$ÊÇQߑ_(oúƒmö +%Q.\_(=Ê{ïÖ·6ƒõ(ßëoöî˜5y( +ã¸óƒ““¥8E286ê:(*ùÅ© +—®….vv +¸xáE³U:·CÝZ ~~ƒn…¢\áÒAèPss8ÿ)ûý%<B »g¶)§84g‡²è¥Ö× Pª2t×ÌP.ÆÐõØ¡ô)µ>Nr]JsT¢Œ¡”îaR*n(;eYe ¥ Œžô¤d‡2(™”‚2¶¥Zé£c‡RéQy'(uo—C”xÞ¿ŠÍ(GØçòC™Ç>¥”-? “õ 9·aØ'›Q.±k0á‡rôcRʓ’ˆJQ·jï¦Ôô fv(§Øu%(ͼ>Åë\ο°¥•M†(u¥Qü9Nõµj7Ê¡>:f(õíö J£3ö%9Çj”.J¯ÈTÎ[­Š=[µ¿K”¾öÆ+èŃDzeTæ&ÛÖäÇþéÝì-{ÙϦÞX-°[ôµPŽ:2Fg0Š1AӗfRÆ1ÇFG¶{0FŸá08ca¶o¥œ1u…õ³1M +f¯M±˜(5ñ¤¦:"ߦP§§ØMÉÞ%JWˆ÷ÒT,Çh-!Ú%QëâLeqSFV…h)_Æ÷’0Ev,XåY[¼ \ÝC5ÑTÁú2Êb€ªí^£$,*r5Ü2Ê%ƒdÙ;m¡»ˆ2]<ÄËú5J»Ñ–³ò÷‰Rçæ²ò­óA;Ç/(»ô åñŒxâ¥ôƒZ¿FI¯´ß˜ôz(§.Øè “QF†)ºQ&F9ìÚ±Šä6€q =ƒ˜&…k *l¦SáqãB/1åÂtþR¦Já)Szaá0҈¼EŠO;”§EhëuQéÉj³ǎr Ÿ´V€WJ—œdƒóM¢ÜI™Rö„Lb†°©f)ÒÁs­´Rcd¹j𡐕жÀ&y)”eµ­¤Ð0)ÅÒ!É$¤&/2§‚í̪$ +è)C˜b• ÊpÅ(†”Ò¾£©²Lâb“dµ—£r¦r”"UbC‘ž0…L=Ü&J¡›fÞ¯ ž8K[ ¡ÃCуÔÌA¡ª#^èhÒÀZár(Ålã1/$£®!I؁<ÒzØÎHi£ËŠ^Lt¹ˆ¢Š«F)ÊÆnöֆ…æiQX´%0Â@åL]D» + Cõ -,À(J Ý(Ê` igÀ¸„ ùå°  ïƒr¯€t¬›kH+>G)Û¯x…ÒȜòŽÛD9(ç`Sk§ðPNG1n» 蜌ðﻋ¡L“s Ð8§Œ[èր?Ž8‹ršEAtnÔxéÅ9¸f”Åiç¦ÉM8 ¸Õ'ë`ÑoNgÀ2Aã"§¼ë¸U”|}—DÉ×wå(¯þBÆåå¥òåänåØ];Êû}Êû}Ê;Ê;Ê;Ê;Ê;Ê;Êöb阄ènkØÃ8¿‡Q¸cƒ‰ D ¼ÿ2<ÐÄCÊ ÿ›r¦/{wŒ"½ €aXÓÆ`»‘ +#Œ8ºA S¨¾À4ә=ª9Cþ2L‘Ì Œ d\8P"GHñ×Á³n²»Ã6ËÎΎ¾Â]Èèéߛ£Œq§wŠÅ±ˆ2¢Œ(#ʈRõ +˚îêâ+ ÜX,ó9®LÙûD)z\v,peR<Jo!ˆÀÜ]o3gsc”Âh x{½ÍŸî%O ”'\ÙöÿâcóšyúÚ<ß0ƒ§gC¾+ÊÎ[cR²1栀ÆN&yfÀ>ÿAžrc,žÇÆöCQþúÑ(çå´ùz©ŽÂ›¬2\kˆ9¡á5&׀ïfÓ¬NÕ8†ïŠ²qŽ1⁊d{²êk²ÀŒ ÂTS¦œ‡ª¬òzI°nû‰(siF†Œì—¹Œ‘ì€ÐemœZ·'°a.ÛëúB¹îƒQVíYH¡Æ6c¤Ȏe®Î('| C‚鄆ì1À~pYÖ±o‹’¤Z'¤€+ Ô[ý²£³-Di“”37AI­S’cŸ¯¦^vtÜ^kJ:lˆoç{AI:­D¨’C€ôúEGǎ½Ö>HìK…y”•Ôd Ov Êôuql¡Ý—Èk loƒ²æÜP6é”ÍëâØ  ì±ÔwƒrҀhU$قr~]€­=ö°€rÍà¡'5+ßÍàÝ åšÁCCZæÞËàÝÊ5ƒ§wddÓ{¼A9I@•M:RåbÆÜem°¾«g‹ü +JÀÝJ§Yùd*š+( @Œ„’ôBšQúIB±·Q6í ´îoŠ’ì¸:Ö<¯-ôöm”Ãd‘üÞP#í¹ÒSîM”ªd +gbeY…0rð)´#›g”S8/(7¡TÎCïÚ6 ê¦(GBÛÁºÐV{²» ä¡=,(Ëð´ ´,´µÑ÷†ÒÕ!L]u¹€æ‚2%uÁ dÛ6˜N ShGÇA¹·”ZŠR+¨E¡Xšjª¡¨×\à´ —·XÇí'¢,¥€¦ÔJÊÁ%žrPµœörýü‰]…Â:Ë¿6Ê-¾I©Ԃ*ÔKEžSòù.M5Öq3x1ƒ·îÑ2xeDQrz(E÷]Qò"¢ŒÅ±Û¢|eDQF”eDYÿG¼„@ôŸéª~4§Ð(IȀ`n{,d6›1!C¿Ô„Ì°wÇ,ŽaÇßbÌ5÷„à¸FƒºÀ .<¨ZAT^#G͐ÌHé* Wì“æ UŠ™B`H#Á–"ß eŠ|„©sÚ1Y¸Ål£]ßÙzš-¶yÅüJÃ.Ž]@ql‚ÍűåŒrF9£üxûýíÏgC9£”Ä¸ºÀ‰ ÷% äáŠMŠ“Ñd(|sóiß||”Iþª'–¸«B¹p+‰´òS¯m»öÌ(“@×ÂïqbŠO…ò÷O&Çýôâ(ïbÀ­ ·0Å©0{\Y›q?miM-pþ6#€²ÀÉ-[š åíM؇?_£Í@À©ÙØÓ¥¢,6‘÷{®ö~#€ƒÛÄ~ÈÒËEÓx½è·õÊQ-•OuÀXõŠ(ïZáýÂIë}›mûœ|åÆkÀ]ø‚eÜ{ß#,gÕä(o&D®8åý^>i½©üðŽ±`—ÞÇØ©?¸@N3¶»T”›¦éø°°¨*ÅT¹IÕÐm‰MÔf1\Ù¨r'QìŒ7ýîQ¦%Ëýp°h¥†hŒQïIzµË7È[¤CÎcQ3¦˵8|Ù(·lÅó] ¹+Z€ò\™RE9O>E¶DK<€1FU;ãÌÅ¢¤5RÜ!ĝø“ŽŽZ èF¡ –mς’R`M)xw2O::Y8*P“E²[Oò·£É·÷S¢¤ؓÓF"ĝŸwt’ª–”À4Àšäå£Ì$ ›Ú­ë|DY~™ž3xs/ìê2x3ÊåŒR¸¯¥t—ŠR$3ÊÏ6ÇæùÎ(g”3Jó±tL péTïµ>0ÁΌ $°“TùÓp éAÊšç›RASŸ}ûWià8.twÜTî¡uÉÔ­K±$S%à Ñ!ŽmÇîŽí HâhpÎÍ­®}ÁA—^lÓ¤à wÉñû÷÷áþp\YQNZÚZüåë\_Ÿâ?{™ëë­¬(¢­÷](U‡€((£D¨*cãÆéPÕô®¢(’u„¢Fu*ó"¡(/ÊÒ4¿Ÿ÷] ”EtӇ({WeÌÉE¿”[tgºP%ü•éö€lJª %Pº±µDi6)J¬”@Yë‘o”<Ü;ádΔ©Ðƒ(-’£Ìã}¿(qûʉã8÷mÇ%2(—MÓ§F7 +Ê]  ”[iF ”VͶxÈK‚(òÐ&V쇜åß”xfJ J ʃLÖ`ù8Fu–ÉÆi>F•B ”Œ®ë +£òhQý¸R(rD×E¨.iѸbÛ7¶ï:]u;FuD‹˜q(æ¶ +PŠóÍԙUB‹:¦¡übïŽY[…¢Žg>drÊCœ,2†êž)’„Žo +h-Bï]âÜIp» é˜Í¡p²¤S‘|ƒ÷ ÞÔ¡xíp[ºNn.ç7ÝÝ?¢÷(÷ÿ´2$Qúð!A³Tð!7.ʑ8™Q†Ð²r4Œ­¨<³(9Ê´vH£ªk¤±…Ö3’â(®@úƒÊÅàÂC +«H3ŽR•Å±Û—«¡¶Qâ=å¥ó¡±¦©2Éã(UÓNçÕn·/úF™]:õJTp”öe–eÍâ÷¤§o”¹%w) üql Ÿ£T]6¶\ŒR£D¥o`”94¨â(oöû_M“±£s”s²Á·zŠ-¹SyÅQ~6,ö®¤Bë(å<®D +¥EúíÇ‚Š£üÂ=:ÙXè¥Q…$–²Ê¿„ãï{ä(¿ê9ã¢(zÇ¢¯m”øHø6P†aè!‘ê»GJŽ2>ØBh~§Ä.@‚F +rŽRåLb´úG‚å¡‘|X?q”ªáæ.ÉMuŽò"4Óºx<ûþ¹:š£™òÝì<£ä(±¢¡‚«3’£LVh¨‰p”:c¥þGi>Žò¹;4„Á(Œf„ÌÁ.hö舺‚@gl¯¢"®¦¢WÃ3Däþ|3<ÿ¾-Á(ތ§àüléœá5ÊB0Y1 mSÙÒ½ŒÛaèb׎Q]7Ú Úß`«‘ +1˜áe– p1Õ  ¸q'N›F•×F…ށ1¸È +fFâ)” ¨N‘%¤H{ìCrν¾EàÄÇ×ñÛ΀>ñ=å$|Xÿÿ(×|X?ü»(k>¬ååå¥ñ€ o¥×ŒÅ½¡ÔžSóîòT¦QB!;pž‹eOOO{û¡(ML™†EËÅä§1[ó­¡THí-ÄÀÅÆO ¨ÿK(«[XÖ HÍ¥æU¾ËEb?eօaH¡S\ªÜî0­í7†Òç` +”Ð_]€?-`oï¥ìMÀB¤º(B³ïm°}¾¶ïNg) RBè8µqÀZdWBٍö<}=0v2ÔSªýH&áåŠ,t–Së +hE¸]”2Ó!H€ô¼ˆ`²°[e‚ö¤ +ÔùJ/eH9ç6ÀAt÷ˆ²ÎCÙôO±œj¨Ú2‰bX)¡VMµó˜M'gH«$VÍ€uÌ®†rŸ†ršÃjŠqjÁ%ËXŠX3õQ -EÊiÉ"M”$k`þŽ(¿ÿîQ¶‡¼† ãžàA´e¦˜J‘•¢l‰´*‡f›£‹“³ö@{§(Å^ëc¥˜<¦uPm:¨F”P'yγozÆÁ“ŠÚv±å%Ìò`®…Rì”mIY[[àœ$k€©`Haђ;e|#IDF˜F^ÂæN¿ʟߥ˜½®¬}<€X)|R „†t\Ֆ°‰’Z^B•+s—(¦j±èþ„rÆç(OÀzIÚt°j9×훃åZ(§lYjQ¼A™,w‹r˜–n +ôÂå.6õ JWŸP+ã<Ê yYÊ×(UóçäµPVUtÂ#›ežÇ©=£ùxB¹Ü³hé?5ó¥†ü¹þ†QFá–ÍH8- òg”M.O(ݜØ +—‹„×(åËÔ]¢ÜdÞ÷€ò>“¾Ç+ óµñå3—ÀÜ{ óÀ˜N] åRzŸž?Üw>傒ãa}c”<¬oò‰ò‰ò‰RÅ +Kcˆ›ÕQ©  ôKIÿ±ËÜ>Ê6^§ÓXٞQ¾¨B¡‘@¥q« cŒñP”m`lÁÏÀ!Ä­¢Š1f§ï ¥¾AåL·ÍŽŒ±8ø¡´%–øû¦£•Ž³à‘(Ïó:Æ{N¡šÈŠï ¥$,E,Â{ñX+mbµG”a¢‰ºЎˆ Àù@ÌsEŠ[CŠ§@éÈi`r-ÑEaÉ€†ï„R¿¢1¦‚¨˜®òŒ$èL³ç¨$j¹® B"Yc‰[!K·‹²?†D—?7 HŒŸ¨léì (JÔQò HœÆkÞ8²`(ãMÌkÌ${ÏKU)O•ŽX¤Éɜ$¦ùE:& g'+v\•Ý©½Êð䏽w +™—Ò;ÀS"‡Y +̓´•F1àÀ†ÞûUJ‘B +Öf[ˏ¡cKú®(s0{ÀqÜÚЄŽm§†2n€r„$ Ø ·–‰Ð±"ÿ\mƗ5o›Þm%\•àÝی<Ç[³Ýî飡tâ|J&ñ֒B!êvO‰ÒÕÎû£\á½Hâbô¬:J/¡óòØ=ùÅiìi¿õõpñt/”“àދ˜È{â@ëj_1o°M=«Zì ÔÁ{q£ñþµ\»±ÿÀ(Íl¼¯´[¼o3`»¾ +~ÊýÞ3¿à;Í|~/;ö¨}J”¦"×S«‹¨D”óΤ%+Ó¶æšNlä KÁC2fñº!ªÜ½PöE“ [1qA‘áQà9BÊ+“"±°ÁÅb‘Øø—Ç=áuÒyûÀ(­§Þ‰–¬á=í&߼̙ŒYœc™T±+Ж ¦ðºÜtñs¢d°g="‰KÜiómÜIh MÀÃþ*ƒ×3&ôÝP²=7àwª¿éè haSièÿ3x§ÀH=2J¦€‰t¤p‰;¾;Å@ÆöhÅu/b¬Æs¢ЭÅ`Æbû ^ôuq Йaön( ™!-¶ßÉà%Wű˲ž5Œò¨Mr3þí ž*¾.Ž:;0óÔmÆa»~þá6£šr‚îÝf,‰êÞþx›ñü˜ÿmÆ܋¹o~¸Í(§á‰¿)C ar¤seM +º×(‡pôQ² ªˆ{Ä·QV# ;{Rw3€ä¡Q†ÈBj„ìM”yp@âk”YˆU<)J¶=˜¥Ö®3ÎtKúŠÒæg”ÇÈ! µ›Y|s7»™¹û¡ô6*ZÉÃÁ9_.(ƒSg”›‰ÅY'ªá%lhœeö‘Q²Å¶³6UäL ì‚ré/(£˄º3n)pI5º†Åω²‰vú@4GdЦfJ$Iô´ÈÝœŽ$& mØ/Ó;"Áïw:Õ +:"jY4(Û%‚È1Òíˆê 0@›áezCDñcǝ¢†²D£!ʁœ¶§œ ’Â"9A[¢¹F”tA©k¢öô¹ŠcòõiG'# ³De Ø|”D$ +*B;K)x4[“HÌ)ã€÷ëèäD›Ð[¢­Ɠ " +H- p@µ&*s “k¢c…Ë„iº£Ó¹ +>$¢1d6DDFQKD¥Áʉ¸À”Â\lŒî9Q&×´NTHG¬0Ÿ”ÕCAÅÀRy¡aR¦ºÔ¢!©ò´ŸÔ‡½5wC™\sàq…ÍY©óŒc®ò¤ +¤Ãå¶à€ußDÞèúLuÔb¾æ=v¯çØç+êTë$@®QaT•¢:Rü„ÒxWÆFÀ•Z1U3º:>mV€" SÍq§ýÛâ˜.G“Wƒ j{÷È(ϼ8!NlÓû)Êdד|ž¦ÐÙM3£<Æ”B{¡¡zΩ¹F‰.qàtÇÞ·•û­¬Û´ÁöfFŠ”²èt cY\£Ä)¹ “~d”ÉNkü)íúã+ÊÍ®~A¹P¬S¬À5JÓ9¸¾}Ö'!æ@3‡œ5¤ø§Š+4,ª®ԑe”°Ë17YîXÓÌkæ®á¦¨¤Ð8ÈøŒ,æiô €Tó÷1sÄc? 1ïbÎ4çà°bW ¿vǯ™³ +(¸ÆeüÄ,Õ÷•Áóózì ž÷ó~º žŸ—_ڌK›ñP.q§|ú([ù¬(uxt”Kql)Ž-(” Êå‚rAéþaÞm0 +#P  ŒÆ pCÔU"1Ä4iHN‘°ˆËÏ7ó`NÆ1M0^6JG0·FYçۏ23N21ÎXìØÍJÃ@…á³öB¼k/EpgՄ6i¬? ÅèH¢eð‡RÁõP7]9óùžev!ù8'”'D™^B”b%(A JP‚2˒@™eFQf{oJ'}%€r.ÝeQ6;åÏ  â+I>z”å­¤Ò"ÊARÊ µ$­¢G9Õ?BÉù¾fñŸï›QQ.7Ò%(ÃdÞ/(:…÷…Í¢Sü˜„˜„˜„@ JP>öýÊ÷¾°‰òªï?@d9‘ªâÏPÒ¾Ÿ~oßLBŸ¡deÓI›øÏ÷â[Ê ‹(ëJځ2LÓ¶ÛŠN3o×6‹ÎжSPÚ7í” eáÜ4”÷Îmm¢\9׀2H±‘ÞâGÙäV‹Îº’ºýÇLB/¡dåõDR™ÀŸÒ*J_I#(ÃÔ]÷š@ÑÆq°Yt\7«AIû¦}ƒ” %(A Je|%(A JP‚” å³thÍ lÍ(MêšT"1ïšNPÍ +òÜ ·Áã÷)xòiÊO|šò°wǪîÛ +Ç5a.è„—»Øx–É£MCÆ, +^4è%¼5àÍ¿Ž:(ƒ £?‚BÑ·èÐGèйØɹçüï çœ4ø;8(Ydû28 ¿ÎîËúG»C¸/ë£w‡p_Ö²;IJ;IJ;ė¡\P.(” Ê¥æ îåô­ï>eŒàDƒ{­ð.Ïåõ”÷j4Þ¿=%ʒ9¨¾'¸×qlö„lÄwìg¡t¬D]cuDCò»&²ž˜ï\ÔÝ£ô5@Ž;ƒ{Ç¦&¤*ð&ªŸ¥'y‰hà8îe‡.|Ÿ"^Šgói(âQ–Øoá¸Ã˜.ւw¤ÀKÅ6=2ÊØ^Beh<îEy4¯Ç5',y”{Á+xRj´Å¨,Q~,4MŠ+ o•*€s1*¥1ՉN)xŠñ`­ñ’PácPv¢VÊBM³qjw豃8faS7ª„•::dÓÜ.úD'”ꤠ¨À5W+ó0(ëb«˜DÓ)¥øSŠL©0XÔ5€4àšd*=JÛ«l\NÙ9­`û6kIVª‘×)š@3•FPsÊB)Öی&ÑB›‘³Ê¿Õó1(Y²Y¨Jޟ³S’ ©2=’Ö×õÊѐ´ÊNé5Ï­€6Ñ̦Í0˜š×†ã5û0(ƒÙfÆ¢ènjDB3]§¬¡B«we5Æ•aÙzý¿{Rƒ±Caº¨B‰×6πòDR¸ƒ ,»,ßjD4àb-ÚHÊ0 §˜½¬6B*BÃ' ¤@Nºr˜>dCÄe +uý ɵɁ®÷Ê’\PV0;°#„X<&ÊÐD{§+Ä/Ë7PvY€mPµ˜†SVÍWÁQÒBj<Êãå íS1 ¿G™)%)©xEÙÎ"J +‡6{Áæâ¢l/‡ŽUfBéÿ¥ ¸_Q2L(eF+¶bsú±Pó¡i™1Õìñ{”g€T«W”ÝŒÒ[à´õЩ;²9þ,(àè1š–ûp eh ¥¯“õvÕÎñDiœÚl-8¿‰rSÍ-”úp}œÌ¨nçv…²\(]ñâ&J +`¸…²;^'Y-Ú9ÿ,(«‚ð.pÈõ ”ÉP2êÞ£´ [ÚOX¾ûM´eñÊ<ÕhêJ¾GÉ4p²ܲÇ\¾G—òÍèp¼…R\Ù(i„CŽ]•=ÛòÝ'“Žˆëd*Ó¯f”©*Ո!…ÀeÆôãÊHPÒdÌÁ}ÊdÈÞu¦7¡¯üŒ²ßðºF—XCrˆé×ïQ 46™^5‰rº‡dLHtF9¤ ©KÝÎÀíé©2Zyè9»gC™Å81–yÌy €¯ržCQF>Ƙ~h"¦|¸(9”1r¼-çƒòãËdx”±à5÷M,\t@£xÌCÀ{×iÊé$ßÆó‡Ay¼\B#b”†Bò2jy=g ˜‡/')=|‹ÑãmQ>Êã¿âÝ7kŸõÝw(þÝ÷‚rA¹ Œþ_ràϊr—/(o·üumùëڂrA¹ Üê/럠´úËúácQô—õçßÌÒ¡ @4ƒ°5£4©«xÑ0¢#ÔT±†<7Ã}šÒÁ÷)xöӔž<íÛ1jó0†ñÎB“Ï`tëY<„œÀc¼h²é Y¼w5d6¤7ðxoó4 t)Y’èK¿ç!þûo}Ù}³ûþƒòv e| ”ñ?B Êrù(í”w ” %(A JP‚” %(A JP‚” %(ÝBÿT ¥’%(” egƒ·^ñ=„ÃJmY‡P~(V§ó¨”Ó¡]¯½_¦iî’9ÃZÖ¶›Ù*C å®pRãU$)Îû4tÒv½2ɹތÊ(Aé%%¯ ÀªO^g”K޲ %(Ïòj/SK:\Qî.F2JPC9&ïÕ «±.Ü7JMý86[e” ”L±èõY6º¢l'c¶rJP*Æøã¿>].P‚’9(A JP‚” %(A JP‚” %(A JP‚” %(A JP‚” %(A JP‚”e“îÞ#PÚô¼ +PæÍúÔéÞ5þ™òVD $P’”J"P(‰@I $%Ñ­d´ +endstream +endobj +1015 0 obj << +/Length 760 +/Filter /FlateDecode +>> +stream +xÚ ÒQhÜÇqøovB¶’¶'ÄjìB]¶^»Œå!¶±\ë #Æ5ŽPOˆx”µ»éÁ‚ÄqÕnD8\)F–‡À®#º<ä¡Ã"7¸‡T8áNœåÀ{¸Á=Tv¼—ßË÷íÇ@UÏ¿o|rëÖ©d"çÕæèä½çÏM."â°ZjÚÖ[,‹ Šà8Ûא ¢Nge{\¦¦Þ¶VOS£A¹Üô-ØÚúù[ýM_hð}_á&gÏÿy/.¡(|ü‚ v Ýq~Û4¿œ¦ƒ ç÷z© l–÷SþîÝn\ÈJœ¥¦ñÊdY Éj†»Ä¼’ôõì«ý²R¯CµJ%ˆð©ÂÇgÇHtÃß¿»ËË[_Ìá;%‘ùháMMæÑó’Ç|ôèûfS6ÍQ2>Yþ±Ó¹H'ÿº•D„w¯}EG7$-Kc©O—Î@"q8@P"oüú/Þ¾FYž“³ó3¾­âøxɚ³kÏ¢k7k5¸|pu•>-`©´<<­PÐl[Òõá>n¹ïåøÔ K¹Ætc7üáɳ\Æ `)Rg)\ZÚwÕÄ pœç£Â<ŽŒx7Ô³ÙÁóÊ2gù4ÏÁÆDLLÜü@Àîß°²Ù,?zrí—?À0žíëNFÈd±ÝžçS´ b{Êë&©9ß`ÝÑÝpœ<&òÌõ,ÿù)]\\ìõzNg}}ý(AìïïÿwxØï÷‰„®ëÍf³^¯w»]Ó4Ûí¶$Ižç9Ž†aÇårÙu]˲fÒӊ¢T«Õ vwwmÛÞÛÛk4Q1 CÓ´(Š¹\ngg§R©Ôjµ¡Á|>¯ªj«ÕÒ4í¬p†?=%Ëòæææÿ¸P +endstream +endobj +1013 0 obj << +/D [1011 0 R /XYZ 72 751.833 null] +>> endobj +1014 0 obj << +/D [1011 0 R /XYZ 238.27 162.452 null] +>> endobj +1010 0 obj << +/Font << /F15 437 0 R >> +/XObject << /Im10 1005 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +1018 0 obj << +/Length 1357 +/Filter /FlateDecode +>> +stream +xÚíXÁnã6½ç+t”XKR$%衺E{kô²›c3¶[2$9»éþ|‡œ¡"9L6YX´Ø‹GCgæÍPâ£Y²IXòÛ;‘¿\ž½{Ï˄Ë,—Z$—7I!’‚—™`Ur¹N>¤e–/–J±´³}½>ÚÅ2×EÊW—ŒnÀ‡J8Ï*¥¼–,E•åäá¯q!c°Ð Ó¬ñ£X×Ïm‡ZÛìîñ©nP[Zÿi!ÊÔ,D‘ÞŸÌÜ-”LÍîh{²¬‡mXnPtÓL¦[ðt¨‡º V£B€Áv;ëCݹ»v˜6¨–”Á­]Ýl`Y©œÇѨ¶Yµ‹%¤»†8d¤ÓL±»º?šÇvCgÍ`ר˜Í ª×;³rÁoIEÚº‘Ï_ÚW÷N7Íctì®;?ú)bøGÀamd31Æbà84MnŽP< Ï´~Ô{U„‚Ðm_ Uøíb^ð’bô8ù·Sþ|҅Y­ÚîAZ’[Šº®÷¶€7h<øþÀD{sb\Ûkß6ÔÚÛYeâ:ö¾ayŽñr™ú¡áç Šé¾ÕoJXA³ýÁDZ+÷ +ÈUXÒ÷Ùb)•N/}z`ï·`éɓD.‡-œ!(R̦½ÅÉƆœ›vÀjŸî}ù™==ùÄAî]CŽ»¡>ìhÆ¥kûsH˜Ué·™o!6²C«Ñå´ .Bý=—PÛµW ;—¥«ö©øšP°¬H… +¬ ­âÊÝË?»ý¨fÒ~6{{î4ø&õýÑJãçF³LÍhS¯ÿ>‚î3IðÇz³uèï³Â½ã˜k0_ßN?MŸC=ûJãÇıwoÇk‹áÒêñ5÷™ÂP ;ðå9N Tñ{:¿pÞ½:QYUڝK®2ÍJ:ÓeÁyȨʤ¦×Jàâa‰éä2‚ +ÀBÝ¡ä­+´‹5îºõŸP”ð½bZø~ûV»AÓ_`ž||†OÄðñgñ….Mð©>ý6øä+ð‰YǨUWç³VóYsÕ×ہ[Dà–oW¼.ᜠŠLR…DèòÉd>é½xq1*_Œeži•Ï*ÂY¬$U&4UIø+Jk¶ˆáQÝò¨‡YÇhñâÆ7ܳ{ «1-'çh8§ÊÁpzÐüîÎ?V¦uÒ¥m7lZ¤ŽÎ8¶õDÖ&†–å¥EÈ*ZǬ`8Ì»¦E¹jâpæڟ Ì‘/¥<‘¦,š°˜&,ºedžŽ‡ØaSÓaˇ®^!ãDØ2^â^‚p{ò09ƒ"`“^Bf/yV–2ÜcdäÿíSâ½¥J×xf❣"b…E;½A “£‘ϲrÎgáËÙØþÎ Wjvèê„R€«‘RÀÁÜáP¿2;ÓQ>¡w@m—źâIô·%ð±Eå¡Dy•2wÒËü”ÖAîÍL“‚Õ;pd›Í@ΐ¢yNÞ¨Œ$&•Wcµ6¾Ù0pBë$‘%˜Á]Oq—Ø-|~ˆ³˜Ý°m›-jë §{¹G_…Ž´›®ÝÓ&¶‡O¸{ "ìSÖXþ`oÉËk”ÿ5Ö¨"¬QþX£Š°FùÝXc_œ¼¼¸Eîw`<Ê~æ»7†^<Çz^ÎÕS¬Qþ`ßÀՔ5>úãö”©)²Ê+™ÈJ!è=TÑÅ¿^žý üÐU… +endstream +endobj +1017 0 obj << +/Type /Page +/Contents 1018 0 R +/Resources 1016 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1020 0 R +>> endobj +1019 0 obj << +/D [1017 0 R /XYZ 72 751.833 null] +>> endobj +294 0 obj << +/D [1017 0 R /XYZ 72 730.164 null] +>> endobj +298 0 obj << +/D [1017 0 R /XYZ 72 392.306 null] +>> endobj +1016 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1024 0 obj << +/Length 713 +/Filter /FlateDecode +>> +stream +xڅUÁnÛ0 ½ç+t´‡Z%K¶wÚÝmEnÛ^¬&R;•ûûQ¢ìÆM³")Ô#ùøHɂm™`_WâÍúe½º¾ƒ’AÎUn$[?²B²J.EÅÖ û‘”\§™Ö"qvh›£M3eŠD¦¿Ößæ0C3^ib–ÉŠ«áavÌE2¦²HþÒ —SÓK*ˤ'æîhó{ÛõÇíÎcG2ô´ÖC\iù“jÔ®Å çX÷ài–&y¨ÇuS≏íRH6ȹ6m·õ"øbQ¾<7Tí“z܏íaïcV"9ÔÃ`›¬õA*@~èm7cï2þˆ›¯«sŽxWÈQäe=ë;%Oŗ…à¥0È+ðÙì´ì^É B)8‘ð*ú„3˨ ö¶ÛŽ»÷C®¸–åµ{7¯ä fHíB,ËÑU!¡…’?änð „ÜóòÝ´nok¿#~ Ö]Ü ‹®ÇÑvt¢'7l[O†š€v/ôM±TÄ`µd +Å"ìr±J(^À"K.õ¬ò§÷Âh^jõ_Šׅž~:$·]‚†00ÆaèˆóÁÑÙÆÚf y•,ým\¨¦ÎÄ©3p6h†.ƒVerc—é¼×@^Ë(ç㊠“—… †fggç·½-'og©=؇CÝ?’g3¹zŒÔ°Ñ‘J½¸šªžû.ÍɈÓÿяšâ«³ 5¡Ý3¿¢íëÕ Sµ¬ρšÇ‚Üá͈(Q.²Ïǖ^-œ· _<¯Óz»^ù‰ ü+-EÁU¡Øæiõ¼¼‚Rèpzº‡Z3˵˜Œ×÷Oì¦_}ǟ¸ðu˜’e˜-;IG_Å”J\äÀ ”¼29‰}×nnRF~^ÔÄ~„ÒÛýþ8ŒØ>Ô¨ Cc¸}KµÍ¹Úo?B—VVåÜà{˜”cà¦Í%‰ÿƒœº¼ +endstream +endobj +1023 0 obj << +/Type /Page +/Contents 1024 0 R +/Resources 1022 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1020 0 R +>> endobj +1021 0 obj << +/Type /XObject +/Subtype /Image +/Width 500 +/Height 450 +/BitsPerComponent 8 +/ColorSpace [/Indexed /DeviceRGB 255 1027 0 R] +/Length 19590 +/Filter /FlateDecode +/DecodeParms << /Colors 1 /Columns 500 /BitsPerComponent 8 /Predictor 10 >> +>> +stream +x^ìÑ7Â0QîCIÎ9s4kÞ£Âš_n³ÅLVÞÁè :jcLçWtܬµ-Ñÿ…è :ˆ¢ƒè zyfW½Ý£f#^8ÑLuK—ºmu +cÝ6¥n§«LÁʼnlñÝE~–é0wÃúøñìC7ä¸yô';vÓÚ6‡\B>@ÉaB¯¡=äº">ô˜‚HÓ5ôV¨øbBN2îÅG‡ 0EºiÙ\÷fL½‡bzñEPXKM+¥Ø©v&²ùewöo[ž‘KB÷²vó¿8<™9ù‘'x~'¡)~ g¨Îìpäšá¬pξ\…"Ñ /‹7{„U EjŒ|gìâ8¨fùi+bó†~‹^¶ƒŸÅˆñ?ú-:1-aÈè§@¿E'Np,;ÿIÐkµéèâ@ÿèâ謲ÐèvPê]oîÐß=›z—š†®|aх(Bƒ~…PS ¡÷=FDF0:ƒî"T¦ÑOÐ`Lö¾`ÐyX¥Rè¦ÿ=¡Â]è 1ëR€.6âÃe(¨&tª¯æ ýÓÝ)ábî¨=]·Xt1qY¬k2…®·L%ë°èñ‹nõǹ¢Ñ]¯ëj +….90¹:…næÎe­O¡« ÔýÚP'Ћ•úy®nh…ºÉùèW޺̶’3» ;>è‡Ç´_⋃öCž·ÛkgûÉû¿`ü°ÝÞÁøÕê«Ã¡óç½[atéRcÑãP›…îµÂ±èƒ®fÍP½Ç?è°ß Õûy‚®wۖ¯:òDB<#@e?ºØ“á¬Þ½h—|tçraŒ^† ¬‘kµÂ´z7ÐèÝE«Ñh_œ-ôÇëgx?—Ú9z|go ?;Ý|{togos·KwÒ;x5ù$ï3_$Wv§Ô;bÑu‡'D¢ÑhYt#a2è:Wï÷ôHOï÷E¢«¶J£[¯WL}@ƒœÉGØ8s:œè>17ÄLLÔ»>@Öua„÷ܱ9Ÿ5}—³Œ&ל-ô]n?Îà¥ûgøÛÑ£t²†ÿ)Õ Þw4¨€ßòx•Û÷•á‹‹o[wo‚Nü5˜Ë™~K3it½¥Ë!ô†TñªzÔ¶¥NOgÑÍ(¡Ñy.û«'Rè²&!7]­kÑ}i§"ŒÞGgl.X&£ZÙ-ô‹Ó{ߒoñÖJ*•Ú:Þ;ýO¿ó¼áՍ¡òٓ|*µ¾W»ºîhaЫËV'х^—°è|D ¤¥Ñ5°iI z±T¥Ñ…Ž/{&…®Z9Ԋý8ºà¶:£G6-qÍ[2 ÐBЌ¡ã÷Ÿ×`ÁÖvæÕ÷ї¹O™Ì&÷ú&èçÒ þþҘD/sXV‹¹¡›)A£[þ¯œAž]0Õ9 +LŠÕ¯wÁ²#¨X:B`n’G´µ™ÆøÁŒk+ï¶3??ÔûÛA­§OÇè+ÉeX±ñþ誸 º-ƒ¡êçy³Ç‹“èÑÁY ‡B?Ϫ„X=^1Bè Ò§ÑãM‘ð ‹^-šã‘ëÐ%O ®ãÄ Ûe2ëè¸Äí`üúãÒZ~ïçÞì¯ƟòOq~{qécjŒ¾Á0w¹³ëÑÍ\&J¡Ëš«  +{9ªw%×TPC¥Ðń¥Z‘F‡rfÐÕFÏ-T…®k¦‹ñ,:14Wîõ¯E_ˆ%`Ê4ƒ¿sÒ9!³~|8€|šN,û/÷jx7½‚—Òi(óµÃ¡rÛ/ö—±èu—AïKƒ‘)tbH’©†Ð“B‡vªÌœÐ”$ЦР‹NxxDA¤ë½*Iž¾œ)ú+$©OFèU8Ëëº*Á6É‚V`^öx2œ`³ëÎß5ìíÝ; ³ó~÷~‹îÉÌGôéèÿ²kÇ*BQÇ[[Ú{‘ྃoââìSôwÿp”DD]„ë-j°°-‚ïaßo<ËþÛá¬t|vö°Â6è´$°‡ á3ä0¹oØ;ñdF¡ ½ÙÍ{ðë‘Æâa~±æýpæg‹B;ž«%â9%žª;ñÜòb)övÖDô‚m‰èÀ²¡Q19ô@÷¡mA=ۏ¡×Â048t`:HË;z‰Ô +,C¯˜†¯;zà%Pè%z]ö(ºÝ2"ýx‚žÊö$Š>hç§èjݕú’•¤·`3ɼ ¯ÿ…ñYóWüÃÉ0“ÃøåÖÉf÷Ióèw¼‘`ü|ûÃÎo~ÑgADOô‰Í’Ë¡·*¤‚$ §zmݗ±9ÝïG5’âœí:âЕ%Í6‡ž–iQcèUÇ"葕E¨Ýcôȱ :­Ð›¢§›¢·èåÞt¡^7![¬¤/“¡WÕõNr¶ÐÏðó??8zq¶ú&wÑ|8ú´>îé™g§»'ñjó—‹1zæââbsý,>¼·EtX E¥#Ìéê ­ }D®Vcè-Ó,ðèÇ­ªiˆ^p^õ²ÇùÞ‚R:ÖD '$H ŠN£DÐit® ï>EOª5¼ðêtuj>P¢+t)­úVz¶Ðw¥xûÓðáÇýMŒ7>ŒúÃækŒ¿=Á«[{xŒ.}C"“û<:[çC=èKUÝ1A ½ÿ(rúÝkGo  ÃVñè¡T.ê*‡Þªð‘ô¥è$`Öê\™»õ©yCñY« „j3†Ž÷WºG¯ñ֏kkkßü.›ÓGÿŽî€Ž½Žß²Õûë葕(ÙJIí§Z]1wE@Ï. ÝÏ”¶Â¡£e×­Õ¾½± ̜ëç Ì ú»ÌË!Æ[+ïI<£¿£åâèø½ttXÖCqŸ.ã^ơ˲ìæååëè!í䶀ޢ…ˆn. è ‰)¶O‡•Ð  };z!ï¨7õóžfýõÖÉŒöÏðOÃîÚð¿mžôÝ££óíO };—Ëí½ÙÇ·£7¬„ªª‡îÊ%­P\÷ŠÃû¢¢"-¿Ä¡G^k‘G¥„€žè7 t<½”×РŸÑáBå6º ½h§ÈƒÁD<ºê#†Îš0Ä9ßW‡i¬ê%:¸¼{Jeèæüq’Ð ¶kùc`Ÿ¶¬ÎÙ1ìýÙ;²çúìý=½ÄàkEþG~¢µ¬ŠLFËF0‡0z«x£`3酌"‚ðF킰A„`Ö³LØ4 ͞hBò]Z—ÑúyÅ»u +•°ÜŽ41Ϙúú§7éÏ*ã+çiædßQ„Á0 { AO1/`,v‘1ʱ`ôÞÁb̂͂ Ú“–‚Qæ÷Ä7lákƒá/|ctÀè€Ñ£FŒn˟©ƒ["̚> ‚G´¹>mMmE[ÞÑf:$5ŠãâðÝCA’Ç„RÏÊôb\¨0ÝgNöî´m쏸ì:xÈPL\o:Ú! pTèRc™€+Y.§Áž!^nùQ<”ÿt.ÔSŽCj¸ö2Y<B?øè^³VÒôDKËy:Nƒˆ®¶d#ˆG—æ@WâzÂL èl¥3i½kf›ùèÎô§æmßzy/@§ãތ¡Ó£‹?Ñõb‡f÷ËgÙF¯ ËO?º­$Ÿpè)@VŠ—Ñm)Ús•^ßñõÖxtLK è¨<ú3)ÅÖlm+v/ŒÎ úW£{y¥¥úæÓÊQ @×gýpsþvŒ‘¶w¶wæ Yx8aèì'6ïè¯viý߻ݫÑu…z èl+… ‡®[–UÑ,ù2:ВãѶftÕD!tv<ºÚ¡rJSDOí¢¦w:R6‡h¾;ë蓣ȯ„|<=X¿{)-B9­d +ÛiÒO•f’iìaj± VSŽ¤›f)¼*¤Jì“~‚€°EH=`ñ +)7,šì —ÜY.“Ù–ýÿZñµxPlŽ¤ÃÔW£S„N:Eè¡S„N:Eè¡}„N:Eè¡S„Nz_âý 뺅ËÌàʅë#twÓ{ÿZömrÝÂeƒÕOÎN³ÿb„Ž@âµ¾…ÛL~e ïWz¸Èø%ô®GèŸÖz1ô.Я\¸L~=ï„þIEnjˆT¬=Ç3qçV?”5zSu@6}-”f;s芅@ó¹üù‚ìû>7QçqñX¢îV´Û0û¤‘Ÿö”¡–‘¬Ñ Ío׃n+ Cœ#ÑC`ŠG -Öj@âäX*ÝF\úGëÛ 挓i*ó`íJ,¶ùxµO” Bo¶Q®5èk5ö`² 0”<ï( &ó€8Ìó§Ñs ¸9"¾AÕ$†5„¥0 Ë¾óéÅ]TǙÝM ù}‡ª.ks$åLG7óÐé gÌËõýÍp²óýÃu4H6ö½=Þ +ñ°Vñ¢>ïrØb¸Å„£ìp Î +ìrlS!¾g º»–€´À|ÊóCUÕX•( ²˜ÍÑ`nG@…¾xân„ºí=ð$óì Dv'"Q£sÀ„°ç¸6B^ÑïÚ¨{ñOè93PWú‡ŒÖêÖ[Td— gôÄ€ÔA]Sy8¡[‹­¿ÐÝzáȂWôÑ-^OƒIŒ’¹oÿ¨Ño¨k;Á?¡¨::Ñéô݃³Æûè¬Râ5ºé$¹vBGÙb™ùºTfâ©Fïá-û0(Q²è„¾¡Û}2:¡/6Èfð†¾Ú›P{ªsúqº-¡¡h,†þÞÞ#ôë*G'2sV¡ï4c3u^/Ê !9£9:+Ñ-*$[0ÛÉ‹“í4øÓ#zµ98‹ÃûÑ\hୖèÑ­Õ“•ãèç7½_ ¶qJeGm6rö Üsö9[ðò®£æƒ°CBÿxRçþsƒë²Ï}ó°€ÉùXJ†¢PE¨2àÜT‘_Kð8wßY€§‰ä<ßãQÁ—à†Â/`h|Ž[®#á¾Z¤³ÙL‹tޖœG8‡q½<®Ÿ —× M®B6uÝE)BMú³–s|A„þU}S +x|þB'ô`;.\üm„N:Eè¡S„N:Eè¡S„NúDè¡S„N:Eè¡ÿÉÎÚ0„qoPÝÚK¦s n’ِ0@ƒ8ÂÇ +goŠ«¬Á4©Ãaž!!©êó¿üÅ翨ßÞ¿›RÊ_A>£vÇÀùwÿޟèmŽÈx ÒoIz·¤ñ‰6!FÒ,%}L ²! ©«9› —iÕñê¡à„X¸Æم½ûiëÚ~Õ­}؂e²FëiŠ"ƒ@·:K1ðÈ´­ê[LikŠwbkµRhډëZå٘:©+î`ÑòDžýA¡Õ6)<´}n544¶šDÓ؞›Õ5¦xß¹ñù^ÎùúZكŠîñpâ—øpÎùžûGÎâÿ ýo(×- 4®p³ƒ†+a覕nvø „²'aèƕnvðÀa½é 4ëz` Ýu[“ BτX‚Epr–?C„õ`„ºxøí¿ èkè³Ó`º|ïªF_Cg½É ùׅՌ¾†.<â ÀÒ®fô5t!˜ ’ŸýÑè?m&:¶k~?ºiDÏ: ÑïÜ£ÑMCCn=¥®nžZ]-£Ðµ8”FO¯«SÐèïWW¯€þ¼ >,è©»)t÷.,‰~¾—Bý`5.©:þÆQSÙÏC’¹?ýÑ¡KþŸ¼Û“߀þl¢'~ +Ñwl¥ÐY½OÏIôµëÞÞF¢ÿx<þ¨êÎNÎáHôóêÞáo$úîãñzŸu ·2Y}ÿ~ +ÝÏàâ&ÑOŠ}ïè©b—ŠD׆B¡ðÐD§.¯0‘bŒ0Ŗdéo”DÐ%F^ì5§—Ѝ±s:Ò³ôAMOdq+ÈxžF†Fzÿ­€~C£>É +ã#ÙÑèç™~‹¾æ]÷˗cyyºç¥VxÆè…ÒD}Öp).ޙÀܣеs#ý½/ zÉq +?—M.ïúáJ…B¡'Ðï1©¹¹$ºw/~&—AY3`ÒxÅL¬ÉĒèY +Eú6 +]6&“å¾]ÒQäšàÑ"§³cÝî*›k£¿pÙª ¥Ù‹uEÉË? ©zÇø¸Ã÷8€Ð‡\qÑÕõŽª+Hé,æ.#¤»äØG£/<÷ôÁþ[ý³Ï:)ô>kP†½_ç[é-ýŽ\&ޟN ?=!7z]ï&‹å›ëú|ûíAæ; +Ýó4L£gÕTô¯T‡)ôvæØÓ™°§—£÷t·€+÷røø<´{âÄKë܁¾§÷dom£‚@gJTêÿüZôr[€ïø!À¥¡²žõ¨çôì©ʯêžÍ1ŸÒp9h;A×8›‘† èOóiųu^DJ¿¯ ý§Açm¤«ÒHàR´ c·–w9XÞñóÄÏF£ë·áGý\Þŕ½þ0•È¹Çç>§¹þÄڍԞ^°û†ü‰î¶jzbc~ðA€î÷‡ght©TÚJ¡W©ª ôàè¸ß¿—]Î)ŠÊ€RÓA÷hMóS$:“‚wŸA=ïã‚ÕëЛ™œ',v™1ÙDF¾¸Ù2/a<ŸÒv!ÞAØ@Å/ÚÄéo`™ÅM+ýŠ·2’®¡¢cvïhJäôwÕ5étöž p†Bvž£Ñ¥ê +]¶CÞP@ ›üÞZ£èy¾¤ÑÂnaœ ÐS†-‡˜»zKC,¾¾€@g¦²ûæO,›Á§gIo)èszî÷Ï¥Ïé‘EÖŒF¯P‹C —”àêF<þÊãñؽ=±²ò:ó§ÖhôԖ––£ª–÷£Ñg¾ÆUˆDïïÇÕ:}^– +Hô™QFšpmŸmzêbŒpMHŒå§OU)Ñ©žmq]ÓÍ.ºêkF¹¶.{7Êg–Ðy³y§ÈË£$ÛìÎ8Zo/ÃèWtѾct77ގ ~ö“»)ú/õwª ô¹V¸É="¹ÚCx¦÷è÷ëÏà™þ#8§ƒ=‡Ãì,ï'æMxÔvýá'ÿ´TÔn"Ðå7Ær/<ø˜ÈÞýVނ Ð)±r¬ÑQN†£'s§n.îC„ò>_’¡4ÎåR¢@’Óe+^BG\3¦Ïp¸tÝ(°ÙéârpoCiq.nÅ}ˆ ™½—FºÈìý~¤ÌÞM¿Zýþ]äžÞ?"•ö’{úÁŸå*ù†‚X¡kC£~g;™È®SKG\ª\U¿›G£»­óóGL¸qd=2†û~úÛñví5ìo!€üתz÷¾†® K@ÛKíjF_C‚W @fð­@7ÿ‹=;Äa†0<Õë k0˜b ª˜&¸Š +ì² S­ØšjšàHHÈÜÌoµßyÉ{òy¤@òå!oÒ2#­mNª[Òb%µ)萐¶‘tÑ] 7KjzþZ>ž™;&Š”ý9’7ùcö•i£…BßÓ¡{3ö49ìGǛ½EρŽHù±º ö×;dôaͪ“5j‰®{ ›5ËŠ(²L ˆ¢«¤5ûا¬¨Y:Y܍esêz$“ªá'%:yÕ>Îܪ~œQ¿òˆ­h"¡3±4m » ]ؓF†;ÑݐÃ(ŠL;aÙù+zӞ4`¬'5}äK÷ýìy‚)[¯ðÚdN6Ÿ„WºOYV±«¤‘}ÜÀ7"|=nèuÊ,±¶ ÝÐpôÀ3†C½ê‚9)w?|ôáŽ|U3—Õ { ëµ „ÆÎÈÒ뾇}•fïWpåPY…aWf}̉ˆÓ‰8vK—ð2÷úíq‰n^»œ·ÿT?z)ƒu&/uì;SŠ)ŽùÐÀ|×ÊãÞª®—(W“ÏϹpßþÒ5sf³í ¾“·üü®HG€)îœê‘CîñhH®ŽƒÇ>e×-ÜMÌtˆ½`±´ÄeQ5_MÓÛkHî¤ÿôT)ú³Ô½vyü”>º¼=¶í§»;˜÷èôBd­ã¯$ÈÙUÚO ²"XÙö´Wð4@.bš£”Pxè+X_S¢[w¶ýÐó˜>eè9¶}¹rW,%úðR‚+ê´§” úÒÑî zz±³íþ'BáæI]dÔ.àOô²7§ ͸ÜD’∲F.®ïr9¦ìE*xª1]l̛p;@Ôª-ÛîöÂÃGOE€]»D··hK€õåË 'Ñ-/emÑM^Ð)э^þŠÞ½â5oÙHº°jÄ"J2ªw€¼<§½ûúµá¡ý= |D‰¾þWè>Ìæ¼ä¬rÉtÏz^-Û°©Q–?¶—Ë^½œðy-šF”FµæH<«ZdUc@Ç°³E#[|žšÈÈ°ÂÏC¤fX.”Ûø€sU¢O£Úp c˜R–GFÕ>ô_Uö>Ì¿¸iH'üÄd7)Ñ#õÁåëˆë_[*v’¡ñÓv£súßk¾Ýnu_]q·Ý>Äü¼´§5€´/×C…®Rè/…žÒß ]¡g÷'Ùo†®Ð¹¿áwCWè§ñÁ¡+tÏËpÓK_n!õ¼ ËýÈ<ï`ÐzÞôã⾟„úÙà#$Ì?ËÁåÍ)0¸wµä@Ðz®™ò,&<)òü4#)$YH§h þnˆ ¼Óü@Ðúé}r3€ø$a0';s̓ôù’d§&R‹ ?$ã{“Ã@WèI¥ãJ଀¢CrÀý)Ïk`~Hižù)ºB÷?&é<$=uÍÝ|æ'ýhr3 ;;Íӏ>Èü@к{’ø„§’ìýkžø$â›<›psæA3–É ;t…Ž™„@–ƒLL0“ÄÂ$È3’$ç‡SèꃋJ¡«ºJ¡«ºJ¡ÿŸ¥Ðý±GçD ÄðÿPcæf­á€Ð щ@hGŽtoö耘ØR誀ÉÁþ +Ï÷˜›éHG:ґŽté½ìÀA„À® q¬aÁK` ý¸áÄkµØ1ìÝ1kãʆá1Tº0& T¤q¡v@,¸wå&“4ê×f‹@p•RBÀƒÁ…Ö2$â^v‘_`ðr‹à" îÀß@Ê+.ȉÏ:l|Îݓ=\œùwƒÅc*†Wª²ƒ*;¨)t5…þÏM¡ç&Ž]¡÷ÝQñ•<>t….¯Þ_rŒW•zœr¼¿Ó»#DWèÅ!VqºBçç\¹‹;ȳ ¼DÈÀÕNèwŽ¦ ºBç±Dp"ÁwпçpCx!´ 2æ ý»”'ޑ +t'ÜÞb„¹Sp ¢mùEÄi†/0H SO/ú8t…ž_¹À÷Ñ՝ãÙiÎ €èJ_y¥ãî$ Ž]¡_8¢“I‡x½Ÿ^„ï$Ä@x•ã{¢ +ŒÇ„~ªGÅU_ôQ*!BÜŜg}`Päñ Åàè{G‚®ÐEQx²€8ŽtN$ùãx²"”A!!ŠD×ñÑÕTkUM¡«)t5…~øeÒù O~ |Ø2‰C rÞá‡PèÞ×E|¨ÛpýWSڋðï[מ×eJ{q8¥= °[ü¸>·?8¥lS5:8‰ÿ甶ö«)m æÞJ¤–ÒÖö«Ê1óø#ÉqxsŽ½y MÒÉ\¡TJ[_þݔ¶¾ÜGw)¥½ùÔ)mnQÄà-:•ËÒô-«šo?K€WéÔE¹Ä² p·À™ +jôèã1Õå=S“—cc*P5³aœé¨wyHFßHñx¡£ÊrùmYVŠéS©î5¹¾„7#‰¨W6sv«C?wƒÛo]n2lºyyr™Ò®!ÚÈ|ØÀ|èrÒئ´™ oÝÍíÅÚØÆ덺ß¾Êýº}·7%—sc’@4w¸œ¿¦´ç³JŒíäxÂÝ,jóæåΑM44˜ÏÛ_öĄF¾V͕½3ë ;Ëãë ³Ú»æráÞÏ?úÌ8‰‹5¥Dë/2äÏv´”€èձÕdIé imûÅ!´—ªòJ–MÌú)mëœÒæKws‘cæb³¡ôb¥_w«]¢Ûg9‘— å²kÈÉtŸ=SºøŠˆ$ekµº—Ò!v)í´ö´p0^ç»Àn­~¢ø¡µ:Úo­¶V´>#Ò6/)½$Ù§¨*—èϗ°ŸÒö–Ò–gäAßOiÏnŽ[ÃnÑ*šüݔöðmJ»ù¶ªœìU•ÛÄ{7¥Ý_½Ii뭱Ѯ,ŠC)í^ —Þ6Ƨ/?SJ;ÝC_ê%zÅÞ¦´{ú[tèYf{èîº9oÚ?KiߧìГ?Ðћ”ö*þó”¶x¼Ðüö_Ki·» ˆ 8O¤~-ìÇϘҮø%ºQ©î¼E¦9Ä,˜ÌÜÏR¢•è´b²Zš{pzÖ:÷c7ÇÝ_Å@`£Ü|õèOO¸Vºy½LiwHȇízR1<6öÑ+ßräÚ.¥™æ +¼ƒ>´Dׯ·)íbv(¥íUÎât÷ZïN ?::“‡xNZî‚øþ…‡ ¹ðŸÔ{Fu€Ýšq­ð¹÷׌‹ë9‚ô˜x0‡þ&ζèÉjâwÏ_å– UríŸ3XäÖ¿˜Ã&-wŸ\P +\>`»ÚmóP`‡ŽúC«ü]é«F×¾?JPžð#zZ кç%zu‹MÎâ)±¼ô©ë-º\¾¢ß·Ìz0¼‘xî ^-üî¥@9}a/::ŒõÙQ™.7XÃ0ªS‹Ü`ÏÅ,‚×`/oC.³LQƒ™rÊ44˜…ìے…ãQfæk½š#-õ Æ4´ Q¯GUƒV:c/)mÞy¦è×Yã%¥ÍÌG›ÙBV¢³©ÕÐg¬ýb.§l¦RÚï?Ĝsiá7oÚçÂÄGî>PUå_šC:@Öÿí)m“#²R|ØÂZºBÿ¥ñqo½öüîUŸÖëæˆãÃ֞<æ8}òUJ[M¡«)ôx +]M¡«)t5…®¦ÐÕºšBÿŸBWSèj +]M¡«)t5…žý—=:ÄaÀ(¼s৑5ˆav„]‹AQÌL—^E/@8jbª 7 è’àš¹™g–,©Úó_~ñ7ß÷¯ÓZ??Ào(ùaÀG;½žÑ"îH ÒõEZå¤j¡-HeK:í¤6SÒ6ÉÙëôbIËo:N.ôÊ¡üˆvú›û iëj~íÜ:ZÁâêËg?´––PœM5´0Š¶o„íLëLÉÝІÎ‹]°«I©³ÖŽÚÖw0[© µ†A6Û¤°êj“®•æC¢¤&%#6¶'™‹MŠwçÆþñœg¯ïËHá]ñùp{óp?ŽÏsNà\æAŒþÐ ¢ýŒÄ,L †©ÎÂÔېÊ6ÃԔ½05sNëÝR%ïÂԏóaj~œ¶QR[Ÿð0fT Ø7¦ˆ©Á -kt ýÐWÑyo1ùܯ5ú*ºtªŸŸu½Îè«è¼»\ Õ+Ø×}Ÿ2€@ÃÓW~ta˜|òï£=†è§ ú4ºR*•Ò艂F—Ëåit©TI£+$5ŽS!:tuŠ geRèR!(ô 5‰.‚Bgqæ‹`õ@Rê}¥èðnUúä-Þñ_п¾ÑS +!zm&…>›ãFIô †FÙñýHoíî;¹$úë‚#B¢o‘ËŽ)Hô̦ڦL€®üc + ßd$ýöGú,ƒÃM¢7 ÏÒô áÑn-ļÃÐäòÿz™iEô§8€^]µ ¿¿‹¡ÑŸx•ü#N¹Ýnh딌·è¹½:yím=?VʺHôÆ{vÙ=}cS½îÛ¦:ëez˧½ƒè"‘K¡Wµ´´((ô#õõ$ºHIJ±‡/D*Éws‰Eî· ¤ûÑ¥'·¡nŸÏُыœ>ý5„Š9ç•mqtSB~Ûp°Ì6àñ#´–söL¶r}¨t2~U×þwœ©4úSsýfÛq€¾wo…>ԅ×Û#]Žþ“¯·ª«úõ&³N·~@¯¸gž$ÐoÈpI9ö~ËX¢;Ȝ¡ÐÃOb4ºâêÛ½Þx€Bÿ†‰€š~ƒI5ýPN ]ӕÜ7<ø +ÛaMHšé²>qèíÇ7+ô¤£ñÜõÑ=å­¾(8ŠÝ‘ïŠ?ÏjC#Üb ØٝǍ ¯˜8ú°µûj>kw—y•\1J/–™â—©•âw*ýঋ:v£ÑqdÓ+=Š‡±Ò-xUèwëñpÎBÕt×ãÏct#—vjÏ:ª¦—\_ߛA¢×tÕô”c-4úÝw¯Ÿè^ïç£4úñï «Iôكƒ‡Z ô°ã7¯wŠ}Þó^> +”Þ¹¯ŒOñ…4âx@ ïc.t¶17t¦¶U>¸{%ôkI¥•&ï°iÚ®±âåjC¦Ÿ1ž¯hz!±-ŽL*ÆWBh„«˜ ©?™ctOB~g?R©J:¥èÃ)º{?=.;Mwï­w²7RèaŽÉ§Ñ {캹7i YӇÂ<¾a|@·¸K£rOkþ!Ñ?ýiÓá_Ț~ö\ÆÄ®s$:óÐq<ûQ=4Ÿ·ºù8:^ +÷)ôqu§‚FïÀsEôŒů†mÏ/„Ñ7x<®¨ï½—5ÝT&È«dLÏ4ÜÞÿ¼¦_IEHTó‰EŸr,¸©î]²ÏЮ¦ºwù¦5wá–-r”BÇÿ¥e`˶1»ƒ@ŸòF£|e—£7¯K;Å\ø×rôú쉉۵¹ô–{¶lêÆ}`ËÖÊ!йžäXªÜ5XÐccÏ*Ñ÷uBô7þ'ô`ÞE_èúÝû%ºÂDMô«}ýzñè(¨Õ…•¬Õ„I´¤A( ÕÆk=~ç-%5ÂÂO–^hãŸzö‡þ +]:Ñ%[ º¹„Dg].°Ò%v;Xér³äJç‡\®!úDg*¨¹œ Oäø%@WÛÕ]žK¢óJ—«†§OäìöMô1l–ÙŒS tá ÅÌí  Òeçv.á£R]"ÁƒÜ²™⺗õÏ8{_={—þ.ÝÂo-¯ïïé«è¼hç +¿µü-ô?Ù­_‚(ã¦)ÓdóF°EdÂnŸ#¬Á ˆÉjôs‚)ˆ­³Ä1¦…‰"6ËWa“_ÿñ¼ò&;úÍ£»PH¬,Š¤]NšmHõ´-I$]…9è®!•Ò«Q¨H@ G>r¯µg*mÑbº£_úïûwvÎ¥°Ñé‡ovî˜Eu%ŽÃð §L!ۄ´â¶û­lÖ±I'[/é$•¥b—F[DG°Rû ? ÜBRá¤øR¹‰º®‹wÏ^ÃráÿƒbüxÑ2ò“è„J@(:¡è„¢ŠN(:¡è„¢;ŠN(:¡è„¢ŠN(:¡è„¢Šþý(:¡è„¢ŠN(:¡è +g®]xãEç¹ïBÑãîÎÇIeã3á_kMgøOöÚ߆¢ûì] +gz‚Kíñ ¾¥î‡…Ïñü^€?…¢C¢_›K|0û:úõ§ÔÆÃo)®ðgPô½yô +ˆ+1 W8@‰Uª€ÙßÕÅ1zKˆ>€D™"‚/t8";Ž¬ùB/Œ ±®ù,ÀQ|ž9]ª„@…¬.¶‰Èq  !E¿YK[¸+æ£bºÎÓ1cÛ´÷j¡Ïêmt…;*a±iÓE]ïõýŽ…ÁВ¡DáI¡²|Í­•ÕõýDžÁÊwøÓ|6Qaª´»G&›)˜ÛH…~Ÿ/Ð/ï݂‰ tÔ&Aµ“¢Çžµ—VOZӄ¢ß¬4󝲔cö}¦¬ =ÄLâ1”2d.ìðô÷>¯I¹Û f'h¦Àv¤P²âŽ”‚uq0º?.ðãBÜ €öËgb”Šè=û‰ƒ[Áó‘¦R>±hh«"L!è$€ÅD›  5uàÅýVыuˆž–ýLrŠ^=GßöüL{|ŠÎÌì½¥ÅM +ølŸ4#Qð3îEôê9ºX#³âM²q‰_xËryÖl»¢ŸÉï!—GÛT'l3H–ÓnGÑYõ½‰Üuô"rÑ«Èé4n¦šZՄ(àì*zAðÞ£wy„Œ`5ˆµƒ£mc`»ÚñÜ÷èÓ€ðÁœ u܌¢‡Çè‡_|õ:ú¦èÖEôPN»a‡è•õ<€`Ä¿F·Ö€ÉÞhsäŒMŒÊ+N̼ìž ½`«|8ʣ߱:€æý!z¤ãñ§AÑof¼šÊbƒ>ûéyeÓ/’=Êãž1Òa§è!›{ ÓN«º)* š®€¨SH½íì*z¾€çe î6~>Œ Sl4 ¹jè8ˆ–yhƒ=yŦj°‘÷ìaÀ,mÊ +ƒ0j³h€=¦è·+q^ç†Úø\Âéq³aÝq­­æüw<{³i›Iubב9>ç3³\@þ=[àÀà«àÂ2æ¦ã,Ù®Ì.°u­ ÷6ƒ1çÅèr¾ZO£=ôIÜ _âá:†¢è„¢ŠN(:¡è„¢ŠN(:¡è߀¢ŠN(:¡è„¢ÿQtBÑ E'PtBÑ7ÿ°w¡m[aÀä¸ÃÈA¥÷æà«M}(»öÊD²Ø°Û ¢ ‹1>yô´cK0ˆ"…‚Éæ‹[߂°{(b—^ …Ynbi!ZžbùÅ®e[^ÞދcËïI#fƒ“|‡ïðçù=Á>Á3Ø~¨ºÙp–í†35ÉÙù¶«†·QÛÉóQáíª~tí}÷í¤Õ@äõüF£Gÿãq8ã‡á „£ŽÎÃYÓ Eb?¼,٘ï«ŠJi] +1 „¹$}ÃÐïÐQ?ØT°Ú·ý=Ѳ§Áè·ý ý`y»z+ÐïБ9óD|ᖠ_\œF¡ Þ@þßèõzýê!Æ º.†<¦AÜ8ôåíÈ}¸WQè&‹.µpt» Ò¥z²Ï ;=\ƒž A£§{¤š4ztMÝx:ß ÝÀ¢—ä"UÈ艮D’.èjjÆ„oúço"ÂxñÓF½Þ,ºØË :à)tå£"Z€EWj,º5H&“….;Ȩ%)ô^UHzƗ4µA¡ë©ꤌÝ3ñ +b. ÕÂ]Ð3A7ò]ðšFOª +2ÕétI̼ÔK ~´‚[î Ü]͝@ø0—[9W‹àÉó\nÂòQ|uì¼¹úu5Œ^pz,ºÎé8ïSè\ãt¡ŸaÐëj'4Þ%«5Bã½`ÒãLƒæ1…ÎpèÇA/ɸ9UñÝs¬KtÓ Ð g@Ðä㵃 ªfÀ‡kW¡ÑµZni±Ð÷?ÀGÙ­Wêã—>Ÿü þrãoþ|7w¶–ÿ¸€±ì»×ÔËìãWKåˆñγèB·LšBQ2k ú¡[`Ð .ﺍnZ#×­#Ýð4úñGÝ®uhtòhŽ3{ÀÞ' ¤p”ŽÑIefÆ»AÐ „ô%åŠwØ NWZâ$å2žRã ý÷ ®îÍç8(¾}ºá‹õS<Þª»¾Ûƒ1õ٘ùK/8šPäk#ærÆ渍ÞéKèífÍ£ÐתVÛ¬ YôfÑèu®/û…ns +ƍ@±ÖõèD· 憯 )z!ÞY,ôÓ÷·ŠÛ0û!‹©ow^OÞé_½Ç´o‹0öýXùd'‹å~º7z§ÛÓƒ.kª7‹^’ëˆE Üú<.—²2 º- 4ºL¡4Pè¢Yéæ¿G7xÕMŒ]=́‚tañÐáÊúrÂìFWå½r‰^<£Ð+ÜJ<þš{8úy3Ó覆›ß˜E7|ßÿ¸ä'gÑ%ÏÐèn®Å óD£+"œúØ2£™×£²c\Ùj=sÆ\C Ž¾›}€¥7ÞA¸µZÁó¾PO0úöÒ2Þ§è÷ÉÏüœn®Ï®«bÑ&,É#ör†ïyò®”)t]•òyݨµCèæ¦Ñ´ˆ<®Í¢'zøQº}À‹“©¤j3æ#´èèðýRÂóÜÞÊÎSø¦øàK6ŸæÁ/Ùý½Üùýý>é1îìztó·.‹B×j¼Û²Ðuè°\À‹:2«®#4ºÂ‰ ºÈ§øµT’B—üÛˋ,:ÒT~àׯE_RS¸ñÌ÷j¢¯¡ÅG±Mú½rygå2žà?’¶[.ŸCX¹+?Ù"ý¼\ ¡ëCÝ°I):ÒIB7Iø“¡¹‘m‹ˆFÚ(@ŽØ¹¶í!ꈑAºgÛu4AO\í>ôtdm›”ÄÜ-Xô5MNÞ¼kØ»»w9Xid¢Ü<ô;ôÂáŒmûÑÿf׌m„(ÊŒâ²Uj¯‘"±ƒ[Vp‰„ÀÐР¤‹"}ÒGÎåÓéš×\q‘Gopwè,*Ý »èæÔv ËÐé ݎëT3ÔÇ!wµrNˆ=ú=ý3òñù6Óó–üDtÂè„Ñ £F'Œn^䝡 €0D1Et ’.Ñ Ý Ꙃ`˜¦¶®º ¢< Š„äJòuyòåò¿?sêg¼v£Î¯Ì^z9ÃËÐ1®CUtˌÎÓÎMŽöBDP£äyÄÐ<´Ag#7{w Ú6Xµ/ A!Bð SZLÖò +‚Q—4‘Å*.Ɠ©§ºøä‚@(<£,áLᆦ ΁– ³‡3¶ÀS±á†£C œ¡Ã x<¸÷b,ù½wGC7'þ!?YüO|ü¿ÄÃÂà¶/Îü„„(xâ؞"ŽiâP½(Ž­®ˆc5UÒ+bÙ¹YŠfRJÛè¿cÒÑt+äD1Ê· }‰Žv&Ü÷Mã. /ÑÑЌ’úΝ@_¢§Ë…pßÕÔ»€¾DG5õ\ü. ·’xõADGƒ„€®Ë¡g‚ +¢LN¤Hsèƒ 0XôB@CaÑÕ Hñ荠Á¢«t«“¯F覎hXòúN"E’DÐzÌeúÕ-Cÿã£0´Ù9999úÔÐ 3Σçªf Z ºñDóªuÝÈV8t[ê÷û } ™O4—A}’Ç wóñr%Å¢¡ Wæэ=¦‚šÝKÍЭ~f:3Bw«äX:3¡©û·ýø€n¾`¼½7>>¾Â/>ïc|p||‰ñÆþÕÛkô#zôÁs݉Ia¦¯5]¶'øòÁ&ޒÞ™¶÷Édrú\¼§#GGZž&÷ §{6Ûu;pt¨Á¢Î Ëq u½^C,º"emdнžŒ^ˆN£çÐot£ÏÚ;A§áÏ·wŠ®“³ü`vóÃFom#D/z%»Xèí{xôhúW¤§­ÃŸ1¾úþú —ÒK"}Š·:ÓKÙl¿xñb»ýîëè4ѝäÐ Mh²èµ"âѓ¤| RŽE—d”¬:z²ÒåÐeÍj +ƒîæã,üVt&f7(h…É‹Í +ÑUr™ †Ž6wI±—:£ÑèÓÿ¼Ë¶w<ùu|ôT:bÐéÇ.¬Ï£«ý„ãC§+¬œd}®Ò ‘is貏Xt¥¯<ƒŽ’¦™Ûûvt6gsÀbç"t}Ñ+­ocZìï_N0¾\Stú¶êþLººh#dÑ5gZesèiY–k@¶æÑ번žˆé$ ‡®k ½!Ñ9H ºnÈÐLÝê“MYÍ1èYÝÐTýX3tS ÐèèQN»6ñ¨ é™‚n£Ãltü)Ý®½ìuÍ»0FGôz§£Cg]>Bï9ï €þç)ÿñÕ*Üú4 ^þÃߚ¶œÿ«nl̃ޖÄ ÐëDkN¢Çä Ñ+€V ÑEäÐ7Å(‰[ÊDƒÅó–³áÆ¿Gêš©Žt3^›5Çè +¦‹Îê+#tg•þbÐáýïnqÈôÝ>*{Côþ4ôµgÏg?́Þ) €D¯#®¼œœD/ydYôÈfÉVȒè tð7(ô‚è›˜Îâ¨%›ªF§uï%”4=ÖíZù³ú¼yÆ|6úuì|†¾âœ,ú`kí +„¿\B~ÿõç°º…»÷UnÂTzŒ¾Ã]©@ݛ®–Ì:]F¬Š¢æ½LK/4l§U;èn›.žèªØaÐQZ‚Do.Û ÉuhtAóà-‚YèfCÑڙ‰¾Ýè€yÑ_`瞃îl¼/:|É!Í£tê`í*¼õúÁé}øîë|z3•®ŽÑû—¸×wïníÃÙèz¹ˆÊ2Þ)çBÛ˜…^3¡l#F Ûf7¤—Û$z›ËS豆–ëˆ5]k¡pV¡ÑA½œ«É»3Ñ=aü ø2n; ?˜No¿;èο èƒÛøxÄó=«<ÿ „þ6ìð|Âutê¨ïð<¿Yt+A¡ïê¸tt`¡ˆÂ ·#$: _*Ԏœ×õ( Ñ-Ù‘³ºÞ¦6g”œnÙD‘aŠ…SÏÐÝIIlºè1|ú°¨øží±ònñÌßý±e}·î'úwH_èm؋½wöž}Ùi .:»ýþ›ƒŽ7úçý}ɽ¢¢æGwfì¿ѝUúyFÿ`J焍m×٘Ɔr67٘”`B%™MóÏWEq“ ùºi%©EÝ>#˜^Œ·sǦA…Ý€1܆@5L?[Óæ—m +ôR6,qB˜Kœ™ÿÿ‚iàÃÂ(׏рí_Gÿ¸‹yÿ¼|Ý_Xó·j`Qxì`ã@K…趡ÝFžºFt+<íÑmãÒD¢ÛÌ¥¤\t/õA/º—ú¢ÝNcªD·•SՉnœè©w¥èV9LJÑí`ܕ¢Û  ¦TtkzÃZ‹VtëÐR,ºAQ‹n®݂U-ºmmW‹nsI¹èvsô¿0G7G7G·Ï•y +endstream +endobj +1027 0 obj << +/Length 694 +/Filter /FlateDecode +>> +stream +xÚ’A«Û€áXµàÛ蠎2‹«¾Nr¨ìmV‰C‚•U¨¬Ì2ì¡Ã7ÖAsè…õPGä±rˆRxã#`Ä:«vÐC7o‡‚=äP5Œ +9Ÿß/ø>ø€­­g¯}À:º®#@Ó4QL–4Pë ²š—G^T¯×é­Êè4›ÍùUU11týÝK\¼rÝ÷ýÇívû 6±yÌ<8ˆÖCÒà°rév»y;¿»»[,7‹.F`ôûýÈK„žwæ4òùŸñø×¸¿?a0¨îߜÅqœ’zlL@d8þ5ÅYE‘4J™Íƒ÷T¶ú[œâ›{hšötF¿E$¥Å”ñx…žåíÉSs$©V« ‚ Ërl;q.÷3êWùu:-JƱ»M6shÃ5V«Õ­*ž¦-—Ëýé¿Ä)•J£F–ý'7ˆ®kk\®¼#‘H<4ÉçóäpÛíbŒ4m¸æ+7Óé4Yæó¹Ò·ˆ‘Φ1@foo]Žm¸Ã+gùP†“N§R©«ôÌ(:iZ_ýüëDê|«ÕÚN½z˘¿œ}sG|¿®ÿœÌ\Pßm‹ïm»3‹þg2Iƒ +endstream +endobj +1025 0 obj << +/D [1023 0 R /XYZ 72 751.833 null] +>> endobj +302 0 obj << +/D [1023 0 R /XYZ 72 730.164 null] +>> endobj +1026 0 obj << +/D [1023 0 R /XYZ 256.805 197.41 null] +>> endobj +1022 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F32 532 0 R >> +/XObject << /Im11 1021 0 R >> +/ProcSet [ /PDF /Text /ImageC /ImageI ] +>> endobj +1030 0 obj << +/Length 2199 +/Filter /FlateDecode +>> +stream +xÚíYK“㶾ï¯Ð‘JV0 —/©Ê&ÎÁ•rMŇõz 1²©"©™]§üßӍ)’‚FÚqUN¾ˆdãõõýR¼Ø.âÅßßijç_Þ|ó.Q‹$ci–óÅÃãBò…Lãq±x(ï#ÅòåJˆ8úÑ´¶<™å*ÍeTšM o1¼,?<üóbcÚ5a…n×x±âKÏ{²„vÝ]šæåMa3q}³ô;ðÜïÀq+$Èè±ö#z¿§—n×?Ø !} ”/G·Ú´D³-M´¥©–\EÝè=Clß¼ãùB°BÊ­ÁòXÁ3g¹’,¡‰iº01Np"ÏX Kb?ãçX Ò$zïÁ|\›­­>ñ;z4À!½ñŒžkÛµô¦Ý“G§ª]&‘ÝV¦$‚…Ϫ3[M¯Ç±*X– ÃoÂ带*ïË# ˜Îxí!x«>ïÁ›šô&Þ4€÷¨›Îv¶®à°­ýՌÑó;Dt;AÜ4M©Ñúð(¼î¹3„Ä’Å™fo4¾‘ìJ< ò-i3c&e6ÕfUwäça«Ò>XùOžá>jPNÀKô°b Cù“YØ×%L¤âUrð^ô+­£[Bi>!ìµEoN쪔 .¦ìjºÁõYZoC0Sɤ¸¼FCììg¦b2ÏÇ8³$÷VŸˆÈÉêtÀ_ïM@OŒ3{ÏÕÚõÞ¯¡s/×äºÝ–5>ïlﻑ¬‰ýbHä”ýs2WDFí^òɾ¦‹-¯…ª$…€ÆEX0„Ã"áª9 œáANþ[A è•ã~?Ñ,—G_È N-¹ I‚íƒi¡V ŒBÎØ¥4ãü­Üõ®a¦lÁÏä2‹R˜Nyð,-„¿9½¸0áÎB&‡©…ȾZ´ “éàgÊÁsg)Ô;3Æá†à~àIÁ\jdæ™>ÚÙ%Fî4HçŒý!ÎrŽ¶M}òδ$Š÷ Ěš-D‡½_5>&žÏ™i¢)Yȇ{ߟ½ïOûВª+— f8=ÁÓÇêƺè+(’ÁÈDƒðí4ϙm†4C~›µ¡Tj¸†2¨lµ»Š>s¦ÀMTùl»]п*–ŠWú­”ÉBpˆ8%øû¦4g‚d˜®`;¬\]¹'0àäŸËK #Ÿ¥8K25»®ssh]ô—Ñ÷! @J“ õ;D0„˜_BÛ ÐEúûTÌ&&™Šù¼1¦ æ«TäPÌÜø+ÏýÛ¾·á›XuP0¨ÑîêÓ¾ôC}š„Ùj0„’¦¹T}:®Vʾ¯ÎX£Q$óö&…ÔæsGk)µê›-Ú£éúHïG݁1V†s÷‘r,nuQcFù©\}ã–q?û©³†x=1x=¶~Íyǀs:ºýn7~Ô+?×èû\l}õ^?õ%¸Ó©«ä±Â¯¶þ+¦QÆØEó&—cåú;ïe0êN„º-™€êD†ºC;»Ý}D#œö†â¿Ë@vó°qkg_?Î:· R’Ø;bC'êvÇà:Jq½Á1E9nØÂǽÞ^‰}‚‰¶ÞMQ‚K€\¼ºSzùM\£Æ‹}¤'Pb:ô= jÖz¡µ¦&'ƒuV/ëüÌâ£}2×ۗØ|µ*äM–ó3æ'ß ™^ÝntÙw©þïf—ò»+œþiҖú³#Ö/ƒeÞ§9`Rt)‡ ö[h'?e,â¦ ’g”CSopB]²w¶r-!¨H1·á®~V‘K¨S¯ì,æ>SƖ¯ØÛ¶#¥Öܗ£âh<¯u§$£†NÜÔ (Îg*•o`Ýå0q cæN´5Ý$ú؀Û÷6îÃx[ %ûOÈ¿Ö<Gš7ªE¢P /óÌ*ã/ÔJ88˪Z"û. Öø®4rïýÙ|šè„ÍŽÆZ0©Æ×C”9$ÕÓN µÞºÈ Ãè1‘]…ç¿— +> endobj +1031 0 obj << +/D [1029 0 R /XYZ 72 751.833 null] +>> endobj +306 0 obj << +/D [1029 0 R /XYZ 72 730.164 null] +>> endobj +310 0 obj << +/D [1029 0 R /XYZ 72 710.488 null] +>> endobj +1028 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F26 612 0 R /F33 613 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1034 0 obj << +/Length 2331 +/Filter /FlateDecode +>> +stream +xÚµYݓ㶠ß¿Bo‘;kHQ”ÔL’i®MŸšéÎôaogG¶èµº²äèã6›Nÿ÷¨ŸöÖí4/ ‚ ?€tè=y¡÷—›¿ßßÝ|ø(µY’hïîàÅ:ˆ2é%" d˜yw…wïg›‡»¿}øE^|¡@¾$ „ Ärüg³#ᛪ3Ôú7MYˆÞ¦2Håm³@é˜&ŠAŒ%*&Š•3H%݂ñ§0´TÞ¶ù+5ï[ӕÅ`wMóÜ=8¥ÌÉÔ=s”÷ÿâ?Ñg¨‡Îkúò’ }嚾ъ¾¼ÙÑ@WÚC­ˆÒ"ÐaôUQ̲Ð*^¥T µþª(fYh¥×v¬È—IÈÌÉ×Ó)Mmˆ_ĞAǒŒSo+ašýí»z³•I⛺Ø6‡í9ßodâ?odꛞ†öM]”}Ù0gÎä¼FÎWêœñã7¥¥1Ci'hÿhò´D+̾±¬…!B ›¶£Ndj×·&?Q{¨§Iù®2³PRš¶ñ#¬‰ÔÏ Rõº2´:¦¨#ŽY!)¬¼#eé÷™­âà Ùw– 5Ɓ'Фwþ˜×®e¨qÊ)í4˜¼””ø´iÁå' ’U 2¿C{#×p^Û!YSÁÂ¥µV43’òóªk¨ÕšðG›*gS5cVlºU°òwUE¼o(Ê"I•È¢ÁèjDÔþ懻›Ÿo³BOx*SAœ +/Îd "áíO7÷¡WÀ ì@0õ^,ëɋ‚X òTÞ?n~"Ì\:±ÊÒ Ì"´H’q.Ô|°Ü*©-ëŽy‹§"0ÔÏCIG£¤ß7D=Ú}ÆC#9 |ÞÄhæ¬ËNùù\ÖOh»TùwG&ŸÁ ¦Þs¯9”…EÓùÑà ™gÅîM’@§úÿcP¥R}½A°^ÊþØ è»R[cYûÅ1Ë•-Ec€S!z™gŠ5bƒ?¦ö¯¦mÑ°7¢ + Ðªóhl¯¢Ä˜{aÏé|Ï[QjÍd·:€qè>o0“ᆴ,Us)1¾(3H?nRé7í ±8ĤϺ † Ï„¶ -¨Ä!‘€án¿…!t-÷yE$óËޜyÞ¡ii­Ž°ØìËO¡P{·RÛ3†[Y$É´•qþ§`=9œ+¿‚C`§bߪžÎTÚRõœÞ¢%Œ0rg(«žÈo ÐÙáà¬Dñ†øsKˆ¾7]ºÇÀsw´èÛьÆÀ\˜nߖ EÐ>m·ºËÑǖ‹JÌj‡6ÏöýÐ2ÓåÑÉâ DU9¯m ³ÓÞº1‘Ù|œÎf®ÂåÜH +–b*F¥Ÿ†6wƒ!jdº´'œöÂwbù.¶NX63!Kãï9ï: Ž“¼p-·­YOSÆ)Ãè¾ol2‚Í1gOltð€Ú;ˆáŠé6Rlc. ôEaD¢E2<Åò§Žú°DœDo!Ç.{pR]ºçÏtùB[›*°Q7ëNÂg<9ÕÒa + ¨(öDç–ñäT“m5a?|k®!榵64àK1ÊêٙüØÓ,¸À2Ó>ޑ,–rNyKuköMѬíaë”ÙN¿¹]s1,jžËsGì µ /ˆ£ZJ ó¢ê 9§¢³5©ôÿÚ 4Šoܲ +†ìTÓ<ÜUekZ¯moáÖ®.Ê!”9Xrð°žÌ”8»SÊ"û«¡ýgÃÈ å´Ýq‡‹zFÎ5"ÍeȇäÙ1ρ‹5O8ïiêÊÿé:fžÊúa­üÏ Éeã­Õ^+e&ÑRAçU™p5͒رãDn=)n 6×ìlŽ)›wet?íۖPï©L—geÔKpî±v÷Œ–Ð) +« ꎈ‡)d¨rÕvƨÅÙÖþHu@ޚł]Wî*æ½\"™/Ñ ¦R³kNfa1ŒÔV0åM‘Æ…tH9æSÍn²M-él}XDJ,5ĆuÑÈ1±uÆ´b}r^̔“BÃÜâ+ºƒ`¦U©ÀôË„´j_+:~íî&غ0&’z­¯¹crzû¸ÎËõt+~ËË£@ +qµ—§*`uì£Êc¡uxåú8„Jèå…ïVpÑÍë'CM[Œš¼R׺|_ŽÍHcç|EÃ60H$'…ß9m*¶„…£C½Î) Sÿ{ՁYHÓÕÖ ¬^Óc\Øs3{ªbعÒõÿŽ~}ùï½Û‰ééiáÌMÑ)çï,ßâå?„¸ííSבž"ÎÛ$ߔΠ,¾¹­ùŠˆžü‘×ämUÚ?¢ž?&p_æ %L‡ú€®˗K÷…Z( +4"+”Z:KÒUæîn~pQ[ +endstream +endobj +1033 0 obj << +/Type /Page +/Contents 1034 0 R +/Resources 1032 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1020 0 R +>> endobj +1035 0 obj << +/D [1033 0 R /XYZ 72 751.833 null] +>> endobj +314 0 obj << +/D [1033 0 R /XYZ 72 543.323 null] +>> endobj +1032 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F15 437 0 R /F18 434 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1038 0 obj << +/Length 1446 +/Filter /FlateDecode +>> +stream +xÚÍXKoã6¾çWø§]3âK{hÑnÞ +½¸†¡HtV-ºz$mûߗ‡2•X.öҋ%’#ò›™of´xXD‹_¯"xþtwuûÅ I²$‰w»…Œ ÏØ"¡)aQ¶¸+ë%½ÙÜývûóEbä"jå˜ ‘ù"‰?#IoV’Óe¾ßë"ïŒêÒ½¼¨FîåInZ7è>æ}cËçê†. [ÞÃ>êú¦V¥Y"Íõ +à¬2"bé0±YÔ섺ڹ§™‰Öõ¶ÓÛFååۓö“wnØvúøƒG¯ +³e­=ò¶*{Xì`²T….Õ¬&Âá䳚ð@“N5£ù×ǼmA ý¤š-`ËëxjBˆ'îñéBc +gЄ°%[HÂDâa‹lƒ´éª®Òõ¶Ð}Ýè÷ö +aÄŒd†<ÁxþXíÕYDž {՞¨[¿þ¤(dØ:°è2ð)>CÀÇ14õàã7HxÞSòÅâqv¨w“Èx—NÑF±´Q£óؒ·hù×[œdKk4OKæhibX¹.>nVô 5áü x†ÇbŠRf,Ë=úôk˺”õJ‰SÄwnâ7 +òÞu !?®ºØ¿>£„Ç1Ñ‹0Š…åœÈTx-² Æ:u8NËf9÷¶kôÁéq̍ ŠGù¸oÍ°ªÜÈ`·,º×úÑM¬–9n[ì é쒷 ÄE[äûÌVèºSÿt¨Þ€|¢wŒ©È2ÂåX|¢·hVm¼ÉÛBÕ%(1— +׃Ϻ)ÛíQ5[ë.££Éyr$(îGsâ±$t£×1Åt”‘ŒŽJ†%¶iòC¬Õ®2%צƒs〩½:XØ5¸ÑÐõÝ ä†jóýWÙí´ý{T€3QËN4Nˆcn 9WÏ?xËtÙï!6ÖM@ 2PMžþŒI¹.0"; áÔ-Xíf¬àÛW¦Á¾i5ѯ¬žª¶ÒÖ—Ú“Q„ ëc¨ˆ KÇòÿ=d&›q$‹0†˜$”Îœ2“$vÄ'™çO™É vB)#I"Î"“ý3dŽ±+–$å#Ó)ŸKCv`A÷™È°(HFC&rR+÷ v0ˆ@‰ÐœÎÓwAù¾Õ—÷C§–úӜ3¼ÝœÏvTüçÖ#pÆ·õºÀ Ëù¾ƒÊÿEãáՈ15’ùƃéúéïÊÓ|{¦ŽàPÄênÔûÝzhNæY=i%¼&é “ 蠗A0ûÂ`¥pÄ^m[y¡#¿°ïáÙ`Ó7zÿ pª#®ûºoUy}úøÓ¥&BAÑÊ+H"O=ZІ:º÷1AŒX«ûîØw_“¿î÷êã_q»¯Ãy7i;ÑêëÐMtC mBIœiEïv­òÎÝW‡ªÛZØôly ªúUke–,G¿ÉrZýZ?  +\@1±:Ÿ‡kíì;õW¦›RÌÿÇïó=zÅ[NÌöèŸçúc¯š£”Ð$›éœÌ–ºD2[ÚòvÉÄE ÙÊ˾rKørOCq>$:û¶´ÙÎ~`S±]è´ß«ÊMšÍM†PÃŽÒMåN¬Ö‡ªÎ÷nÎíX}Ó¨ºpwˆÖšT!b§ÊÏáÁœÅp}ÚÚAâú7Ûöûνë[|°CÊåÃ&¯v돰‘vcwwkߎƒœ6ùÄ.ØÆ»fÿ\0ã¦ØÞ}Qã†Á!ƒ£2Tú—»«/h~«¶ +endstream +endobj +1037 0 obj << +/Type /Page +/Contents 1038 0 R +/Resources 1036 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1020 0 R +>> endobj +1039 0 obj << +/D [1037 0 R /XYZ 72 751.833 null] +>> endobj +1036 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1042 0 obj << +/Length 1138 +/Filter /FlateDecode +>> +stream +xÚíXMÛ6½ï¯Ð-Rfø!~(@-Ð譅ыcŠL;êڒ!Én“¢ÿ½C‘’e-m¯EŠžÈ¡È™÷f¨Ñ³q°pðӍ?L^¿#* %œÓ`º +$ $Qˆâ$˜.ƒY¨@,špŽÃU1VÛ´‰&LÈÛ¡ÞÁˆCåï1‰³:šOî#€{>tƒ MsÎßEŠ†¥õHÁÕg]•v¶Ô™™™ImWviÕäM^ÎÖ¦Y³ùd´îŽÕY•hOê¥Û˜V›\WÖÈ ;6µ¼úU×ùrï¬# 7Ñ$Æ"¬ÜSàd°“ű°àñ+àMEXëÌÀBp€ñpj3¿*7›2¢*ü#/ÖviWëýÒÒêÙY;ˆ£‹VšÚ®4Ÿ:ݺMéf]VyóqëB}_×û­~3Ê7eÃ|‰bCÒ ÂeÊ$G‡`ËðAŠxÔnŸs³{\IJãªÛ”a"Îñޙ÷ÖÇi ɑ¢½™Kö¢/õ¢Î?ëùE‚B0BŽ¢ºâáŠÝÝhW¦xpÊê2\#¢’/+H¹ZÕºñBæ HÆ9ÈîÍXçEán¥¹âéÒÎJÂÀs_²vµOG‰”¢%’H”"P.ëÄ՘ðLbÒBOŠiˆ¼Çœ@7>2«½›Ûù[·T´6 _;;+—úC‘°|Z,ó­.jóþ{á¸8“Å"¶ÁèU8ô'ot•6Úΰò`‡™µ)4Ø*€“kgaû!4d5qNÿº†”[¬ë/ô±}Lળ=;¢?؛g!袩>-½¥×z¼}U•[;ۥٓ)¾™ïëö~˜i¶¯*p錶"å“KZaÇß~±ÙÈJØG 57>âý8¿J2>W¢ßϕˆ^¨OG`8WêbņÀ]uÄ°bŽŒô^÷¸#ÃÏTìà¸èÞö©†½¸{ÕáF>åïf»½bGOo}]Ü!dåƒ'PLúw&Àc`0=z1Ù`Ô%LŠA×å^LÏnö 8s%ÿÌ㟠DuÑ¿Ûrâ?öù÷½LT"I{üâX¡eYh_4wà$šKºÅýŒ +8è:uT±_5’¯ª™Ä­G ŒLçiu•²ªÑ<ªFc÷ªÑ©[«Ævc§Ñ~ +a´ßQ˜U£±ô!óa°Â‘SvI8’oN8ªÿ¾pLþŽÿ‚p”÷Ç|(kÌ'þe"ë&9øM*æeWI²›ÕUÍ{¦ò(ö¨à›âíú劊ò(VqЗ x|¡ü”~©’Ü$› Z­èåd=Ù««ì7/²j(Ïòù Ùµª:ü4ù= E|ŠÞ"¡òÕ±œ.]k2ýӌ]×Ý»”'¿rÛs¤kE“{÷&¦®*µ)ÞYƒ¾T¬±«äsøìŸÁg_4‘¦mŠh÷ƒ_`ïá§ÿ” ) +endstream +endobj +1041 0 obj << +/Type /Page +/Contents 1042 0 R +/Resources 1040 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1020 0 R +>> endobj +1043 0 obj << +/D [1041 0 R /XYZ 72 751.833 null] +>> endobj +318 0 obj << +/D [1041 0 R /XYZ 72 730.164 null] +>> endobj +322 0 obj << +/D [1041 0 R /XYZ 72 433.983 null] +>> endobj +1040 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1046 0 obj << +/Length 1519 +/Filter /FlateDecode +>> +stream +xڝXMÜ6 ½çWÌ-ž4£èÓ²SôТM›žŠb6{ðÚÚ7³öÔölýï%EÚcÏz³@O"e‰"ŸÈGÍÈÍýFn~~%/Æ®^½û ²R"wNo®î6^o¼Ê„–ùæªÚ\'™H…ÛÉ]»5*éŠa»3©O4 ýF™„²þ$•-ûíÍÕ¯Ó `ÞÍÍËÍNç°ñÛL'-[tY´è|R÷4v¡:•õí!Ðס¥é»i‡O”ßt–|d Å´/¤ÜnwÚ'>á!4[˜BE“EO+‹­J«ªê¶)´¤‘¤cW·Ýä +D‰Ñ(+¬M)œ¢A³:G?ÙëÑL£Om?ìªP¶Q©íâ“pßÝ:6ECƒ1³‰)~˜W4Ìl‰Ñ3­Dš®m\†=x|=)¯+Ä×ÀYàn; †QÛȯiåã6ª’rh»žÖ C˜Ð1Ƈ/´zØG8@êB_W§@Š¤!" +£úF+“úŽôâp˜6_º°þCÑ}ŽKá´M)Œ…H¯ß‚øöäMV–§®ë!Ŭ̓_ZL­¿ãäT­èè3n*âA>9„¢ç3ۆ žÃ sǁ=¸‡'îToÁ:δˆNÛ÷{ y‰TFHÅ/s{MªLòfD„†vtá¯S@ßqsnÌ\P§´ƒuŠ7¶“ýY–ðáô©¯›ûOÍ0X¹À.!A8y` XÆHQhOÃ9 ¤–¸ 2« ‡®Áz ‹éè3%]4@ÃÔïF!%Þëþ‰YÊç>ùžj?Î`|»Aj¦—R­r¥Ä²ç¨X箠ΛÚQ«‘D‰>]îÈq&fSÍÄhb½Zà Â2 a ÝZ¿kO÷{´ñîƒÑ󦠌)€(頒-;‡ÒB;5®Ù)>6¦8˜§òÏbù£Nlf •? +åol†Ns¡C`ƒ (á +;ž£S/~§Œ9´±Åý/ó¢´óŒ2uc׏7«Qfº ‰ÁÕ¥¹V¡³™ÈswFîM³fUCwf\ÅmJ'ýçúÈ·; Ü:þFnÖ £[¨êâL¥°3]?Óì@%Tš/i ݸÈ2üž»l™Šz5/ˆ ‘asË sÃn„, NŽt†KM-»LDr†ïcàð k· 3#¬·/$°‘—¹ÒÓYx×8>×TɹV/ZI‘{?.ɳ]JHr¨Ñ¾É´È¥^fï“g…Ož3c§4†;%83ë”0MrÖ#ã>›eÙv’±–vnÉZCûžœÕéÆaý¥èëê=•@\àtšeÜC9t³ñ°PªñªüDùê“tp~iՐ3±/¡r]ߐÐ>"Á¡“ÇA(¾Òš{Ö$}BðÎæfÇÿYó“ÏßåÂBÆ¿Ž¯œã(͊ëÖ xëç\ÿó»^î¿î;;0÷Ý®øîV|OSaÕD+æìûøhBù‘Ÿi(7§‡ÛÑÿ)¤Swô…ƒ»ñ]ܑŠ¥út,§oÎq“ôÍt^tpŽcAº_À8½þ]3N+涳;&Þç_5ÄKæå܋âÓd~„’kUâ…×Óö|]–öœ›ŸûëAeà²ø„YÎ^¤juóOW¯þ ÀFú +endstream +endobj +1045 0 obj << +/Type /Page +/Contents 1046 0 R +/Resources 1044 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1051 0 R +>> endobj +1047 0 obj << +/D [1045 0 R /XYZ 72 751.833 null] +>> endobj +326 0 obj << +/D [1045 0 R /XYZ 72 730.164 null] +>> endobj +1048 0 obj << +/D [1045 0 R /XYZ 72 592.596 null] +>> endobj +1049 0 obj << +/D [1045 0 R /XYZ 72 542.036 null] +>> endobj +1050 0 obj << +/D [1045 0 R /XYZ 72 505.921 null] +>> endobj +1044 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F32 532 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1054 0 obj << +/Length 1291 +/Filter /FlateDecode +>> +stream +xÚÅWKÛ6¾ûW{©Čø¥¹ȶ(PmŒ^6‹B–i[XYR(y)úß;äP¶ìUÖ H/Ão¾‡Ã8ØqðÓ,>ûÿ¸˜½½¦i@aTŠ`± M ‹³`± +nÂ,šK‡?몍æ<u4§¡f’„úÓ>ï˦î¢ÛÅ/ÏÀY.f‘ã‘,“˜P„þí^›ûR?œ€ÀbPJ2)‡Å,#ܓZlµ%“¸î2š3ꪉà÷€c¹q²i¸ïô +‡Êÿ;+¶¯ú²­<^[å…>€Áì¶û­ù3Jiؘe酊Ʃ\éû]‹ŠòcLEáȑh.Xþ‘Š±VZkÀ1B$hN¿Ík„/ª}ßkSÖϹ=Ó¿ËK/ê4¥ƒ¦ˆ†¨ åWH«ØïtmÍè»70A¤~:sÍJ[Œý“†@Óû#¯ýÑk¬ à÷òÁ¯`I˜·­iZSæ½&ç;z‚’4=„Ãp¸Ž8 ÷uq)°¾4DVY5›¯Ž*š…WváÇXƏð¡Wv0 מŠÝï ;˜ê‡…¸ùMWû÷i©‹NØ0ƒ‹,>E™~kšýfëX(Ò¬‡y¿-7[Ýõ8ÛéG—¥o@hLlŽ[Í2ö–ăåÓ|×áPÑì öw6&0Np¸ÄŽÞèÈv;vIæÕ^[o¯¹;’¦Œ%@µSyóx‹R§î†¼"d2¹c!ðDY\G‰[£'Ȕ¤\^ÀgÐLB•î¼•x¾,øgms±o‡F±ïdÆ vþ„]£DñÓ3k‘’`I I¦Tb9Ì©$IœÂ?!Iš¢0õ&ñ@`LYAbupÅ]—û7¨ú¯{ë”[{‡¿ø‡)iž‘„c²£Âr‘¶ÅœqªÃÿÆh8Ð;èNÛBwúµíïK}Xò!VG´Åm! j ÍG´ëÂhÈoý”Û&å¡Æ,äEâ¨²BYävºm¹Tîjj w$­'ûfð™Ÿ1p„û7ØnóÕÊ¥ú‰_?,±ñPB¶>úù‚AޅÉEƒäÑ £[ØWlÿ®×-¶0Dþ›ÕÄn¦T P*¨ü3…îEÆèžCNÉOTÐxJ‡M‡\”Í]Ùý™ÈsʈŠH’øÛàýcnsc÷ýÙ ÂøIJSD@¦:Y ùD½xí@3åt 8\6±Oüp‰¾³?åûuÏ=*O_¥œ>SN¿Fùë,gϔ³o§œÿŸÊÅ3åüÛí¹zò×Y^ë Ô«÷¶Îð•ãD¥tF0y~"N+A[Í1HsžBU— B_[WÙä=w×ãìýböif‰Å…ÊTÆíS(ƒì»ÙÍm¬`Қ{p’»€“LØ"£ +>Ì~?>¡F‹”Д;(•Pd±¯Û¼¸{ÑQs•¸uãšôê%ʔ“Ø‰TôeΒ²3Îg›” –ÅâjÌÙîÊÝI1,¤«  ?Šõʽ`Æ^xv¦7yÝUP4øîÖ7bÞ¹_áز¬só„ëáJ2ºóÕèð¢W Ã|ŽÝÑ;Ì] °{–þIá{x›á³{Íü¸BÁv’QmëºÞª{X?CcŠšLJ¥]ZӞ°}XoÁˆÁ©ucpʓp5€íû÷Cy¨ÅùèX¨áyk:2ù. +ƒÒ^ÌJ’î3¼ÿؤ0DÒ¿DÙ1 +endstream +endobj +1053 0 obj << +/Type /Page +/Contents 1054 0 R +/Resources 1052 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1051 0 R +>> endobj +1055 0 obj << +/D [1053 0 R /XYZ 72 751.833 null] +>> endobj +330 0 obj << +/D [1053 0 R /XYZ 72 730.164 null] +>> endobj +334 0 obj << +/D [1053 0 R /XYZ 72 703.022 null] +>> endobj +338 0 obj << +/D [1053 0 R /XYZ 72 603.879 null] +>> endobj +342 0 obj << +/D [1053 0 R /XYZ 72 573.327 null] +>> endobj +346 0 obj << +/D [1053 0 R /XYZ 72 198.441 null] +>> endobj +1052 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R /F23 588 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1058 0 obj << +/Length 2204 +/Filter /FlateDecode +>> +stream +xÚµYKã¸¾÷¯ö²rÐÖð)J‡6H&@i fá,Ô¶l #K^Iî¶7ÈO‹’%[~ôô¦m‘"‹_=øU‘bÞÊcÞߘûýËÓǏ\{œ±ÖÂ{ZzFx†G`±÷´ðfþÇI$ü²šL¥áþvWm'Saü²Nkìb~¹¤WÍ:s=é>ÙlóôZ0õu""?¥1¯YžÓ˜]±MæôÚ øL‹=“(îÿ¸.“F +•8¥)sÖeÝL‹¤É^z+¹‰Y±š|}úè:å*P*$œNÌ¡oŸwüÿl_§U€s?|¡§ƒØ˜Í3å:Y¿aFÉã4PJÏÀ@Æq Pƒ)̍ø…i>™jÉýÙ&)š¬®“¯Ôþ³ëÞ»ösÖ¼fuJŸþùWz`{¾Ä?j4¶+êlU¤ ê©Òz—7v•ÐÌ4T¨‘¸‰Yô0ãR£xà€÷[ÈÂÿ š„Zêˆ1h3ü£.„=ߋ^6y½ì¡O÷Û²H‹f¨ErªK3Á0ít9šß,ÓV“V²ðkèYg˦Ó#[­z%àï¤Ö§~ƒ·4IòhÃ7xOÝÔ_õϖC…út.~æàeñ{Z•Ýh7¿Y§…®’&=‹ãû|¦obÖÇ5«´ÙUÅøŽùÓ©ÿ©ñï3¿ž8~J?&Š†* +¿5}nj@‹QŸ§(Û^FŒ ÁH˜¯™Ÿ#'~ÛmIÎߞ~{à ŠyÜã*$^½ùæaö•y x Ü#ïÕÝx2ˆ•†§Üû×Ã'ÇÏ \Ë@¨d± ä%ÉwÀÇ'øõ?·Ó¦ 8jÿQ#^@ i çh˜Š¨5'¨Ës¦ºDYJ:Ô­|@Ž[¡F§ÍNä/R"àÜ92ÁÂÀù‡ `G!õYJ‰¡ÊÒúqN0îk0׃)'sû˜Ù&æ( 4ÿa2U,´W1íïj$ìÁ䈿ór³ÝáVÅ×°ÛÞªJçÍ‰S!Œ]eó´X5k fE©IšŽ­ÇRêϊEº§7K[!ÀCB¯V‹ŽV³/?£u?Ñø^RG“<çN>­?6(‹»±< a¥§VíÓ¾ eŠ±J€ª!b?ÏêŸ"?©Rêr T¶(Ø5Ž²ñ Zç%9H’¬0«Í7`íd|Æ¢ä=¿ 0 #+·j_5;‘ÔG¨>vÕÙï©£NՏ©4°‰jÉs6/ÁÜeùíW < ]ÇË'ÂÝÈnR@¡ ´ŒeÞÐU5֔ŠëŽ‹ñ¹Ø´~Ç2¤íÚóâ”ZÔú ´TeÊæ|챑 +#ž[7bãǦ]tU¥jÐ'V íÈt•V×q¼®3[W®Ç,vâü)ö«¥ÏQkEðLÔËzGιܴu$®÷j}[Q?xnducmä¹»Ž;{Üc’&í<¯"OëšVkÖIA}¥[?ým—äk9…s ccqáA¢ ZëZTA~\·â~ ®§R7šritÌ¥ªË¥›_GT :ž +e`Ì;Ó¨ˆ͌•¥†"…ò ÂV·ªëU‡VÂiFµÁp†’ƒ‰bOI…ƒß“07@ñ„’xÜ~<¹”fӗǽËv›Ýz‹šDèðÐæ2»aÇÅ@ÅJ:ÏcΏƒXva ÕJ«Àø² éÙËhPAÉ dWÚdÐÇ~$ !ßÑ=½¬çIžTôœæéÆet—øL JÅ.¼]uJŒ£ó°¦¿L"š\‰›1ý ‹riÒ +ɨ±CˆqäóýE«(ÞJŠE«?~/Ù[› Tú{%ŸXí̃2àòÝF¸:l)þÐ/XJ_ȉƒ,y…ÏÚìyJhšm»s„Íàl¤”'¡ÈÓ@²ïb3)¡”‹­,©ÌwÑYÈ­ˆ]@ÎT ƓZ\‡ï;0 1ÈDRcŸ¹Ï"Ö㳈;N€Þ-U›–Ï`_ 48sFújìb‘ÄĀÓ`™^ Ú6£]ÖrSGÞ« ,CÙÙG†‚fÇP0üœ¡xÄpn$`b(-¯×8à“^QxI;y,DìÖ©nkjy™Ÿ 8”ò6?…Ç=ñȼž4äÝÞä=É·7¹Ãï0¥•ªg‰;ðs®!)Ä÷(`îTŠ°8õI \£«ðNºrƒÏ®2Bb«*…c]5v‰Á€Ñ•'"D°ûßÅW +d@‡²ºóƖ¨*+šëDe„; ª‹ ñÆÅOE+cÞGUà)+K˜hì*yjÏìqÏüñ‹c,vµ…»æOö<¡9qÐUÛmðð3ýôˆ›IC¿½•#ßõ}qCò²X „%e…P»sí<Å ÕüÂ*7ˆ¶g{ΆÑaìƒZH®ÜÍèáÀP£=Ž{‡ÜþD§j˜u< ”ýj@sèýà\g_䫲ʚõ†Þ[Aw]洝ØÒ 'õ ;·ô-2¼ìÈcÿWX£Ü¹» âù.§Ï¶£…UÑ¢E÷¢;vÖÔv–ÆG"Ž–¾ýéÀ¼ñÓg¡ðg‹ƒ»²moá|x·9;°{ïcßö YìO?p‡¥]z{iõ=×÷‰Óº[:y†xصÑ/´7ð±\ºûmœqŸÞt“>K«êÄ +Iç’ÞµôìˉWÀ4o¸ÝÓMù¬\.O0µ(…ÿáÌ{»Ú³ý.P¸‡Eö’ÕÝ)ð¦Ù›ë  ¼“ÏTÐ‡ÄÝý}øϝf4íÆïáŽFp+àsÕåeÓ3íÏ}ÃjÍN¢Þš“ÚÕJÈër€Š³1X,PÇCòi¹4o? ŽZÁÍé/ʇ6.¥U FvÒPKî|(GçBŠý­D¯ +endstream +endobj +1057 0 obj << +/Type /Page +/Contents 1058 0 R +/Resources 1056 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1051 0 R +>> endobj +1059 0 obj << +/D [1057 0 R /XYZ 72 751.833 null] +>> endobj +350 0 obj << +/D [1057 0 R /XYZ 72 630.717 null] +>> endobj +354 0 obj << +/D [1057 0 R /XYZ 72 484.253 null] +>> endobj +358 0 obj << +/D [1057 0 R /XYZ 72 402.019 null] +>> endobj +362 0 obj << +/D [1057 0 R /XYZ 72 305.34 null] +>> endobj +1056 0 obj << +/Font << /F15 437 0 R /F26 612 0 R /F33 613 0 R /F18 434 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1062 0 obj << +/Length 1312 +/Filter /FlateDecode +>> +stream +xÚµXKoã6¾ûW{’›÷$ÛC¦@ŠæRx}P,ÆàH[Ivì.úß;|Ȓl&R±Ø“Èá<>g†Cá`àà×vߟ÷T¥q,ƒÇç@P³4ˆI‚(NƒÇcA–‘`$\ýµ¶ƒOúCÃÕyIB¼¶“;ÇS=?¯­Ê‘íÈèŒRÄ¥p–™f3†È‘ûà`ÄíýëÕnYFú…O¿ôè§1ŠéeÃi¿á¼*•æ¿øôþ$!(‚» ¨N‚ˆ%ˆ¥‰“Gàf8¬U™«Úhøåqñ÷‚€€Ü”ñ@rŠhÚ¼,Vkä°€ªWÃú0”r£}ðçâ{¦c„s”Ä)èÒ4f1ì‹[àb<¦F*¢)˜³BûjÑ8¬êeÄDæjc ¹²„v “óCs$í 384ªq\;G*JÍߪ­r + *«ºÎôÚkQn-!Ûo«ºhw/Ní³ý~x˃\`DhHΖ„^ypä .’à­Kȁ!ð (R†çnp"M`Á¡#Ž8—Vî «•$<ê0úc.¶²ß äKU6m}Ø´–’•ö;òå<üŒ‰èÃêãÒz^OŸ+ǹ©¬l±=T‡Æ.~)ÔF½ã݃]ã{=iÔöEY‘-!s’ð÷ªu‹í.k»´n«¼,aá.kì ¬ …†O ˜„ +4ši­öê¸\ïL›°Ü +ìõºSµÒnLãðéЩš½ºíi=/z|hOgAxéøzgÚÚqÇ¢)ªÒÎ:”uu(sdÃ-¹ú0 ÒFh}²>ow–lƒ½jŠ¶èœ¯ÉY™[öRm3³”Ø% èñÁÀ·ºTÝ؈óz=«ü?ª®¯ $†ÊB$’‰«,ÄW»8 âj±µ‹ˆ”‡«ü<,×PšÏÄ¢Ž€½¥ÚéÖM:iš:ÓXÂŐå'w-t¶O׶OÓ¶ÝA±IÛllû<¶=5Õþ¡¢ƒ\ӏ™™º™>yƒHËÍóŸDÄ·æSÖ¨«“¸@¼w„ÎabÞE=,JWÌ]ԅë<§‰IˆÂB¤„ +8+€§Ù‘!' É¡¡›˜œñ¤¡xª®Ça€gn(¶ Îv:i{Ð&. ôõá¥\wJNÑØå½jÜŠnÙaì$®¯^ж_õ5؃šø +\vZÛfg՜¯Ú;À|‰]Ú%.ñ!rJGˆ¨›ÑÞ3jߨw\0ì÷F­ãµA1ÑÞü¦Æ©{g½@ÞïmGmæ5–øÛ{ÛN¿/H‰7Jâ©¸ì– v›Ý\=%²»Õ!¬Ë§¾¾}ù4Óëòi|Õ«ÿaXÙ|Al.<½Ú[8ªM[¹ê¸:®»¸QÐÝ´]»~°LBq¾¤Äóx tԁVÕY«® TÇ®¢›FYê¬Üª>ç öÞ;E0EÈ-é+NÆ-}»ß3‹ò©´^`])í¥§¸´°¡CÂg=ýèdVŠwË©éûºòþÓ§›;t¢~Þ¤+õ¥+õ¥kÌÃýi˙^Š.^ò'ƒS;”L›‡íÞÍÍ:> endobj +1063 0 obj << +/D [1061 0 R /XYZ 72 751.833 null] +>> endobj +366 0 obj << +/D [1061 0 R /XYZ 72 662.958 null] +>> endobj +1060 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F18 434 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1066 0 obj << +/Length 2231 +/Filter /FlateDecode +>> +stream +xÚ­ZMoÜF½ëWÌQVL×w× $ ä¶XÝÃpì±#¬ìÉJŠó÷÷59²Ø´‚éâƒ%֐ݏ¯º^½»ì>íÊî_eóóÕÍÅ?QÝQLL¦»›»à]P¸äîæÃîõ%•«k³rys•|ùî×»ýÃ՛›Ÿ¿[iYF'Qç¶LÙ]‹O™ö´ÊDË:¿²ÃÕµÐåá +ÝӼ܏7ÿ» 9|l ðŽä!3× Nq6’æ·e¿üx¸ÃšXòÏåA„¾^™^¾»ûcÿ°\ÿR¬Üïß}hW@pE—ûËÅãa¹åþöÓom‘Çå«yºá÷cèxç¯ þÇÇÃg¬Kÿ\ˆbß!“~LÏä¥â§O^ãXRÇdÈ.pc¡9ý:†Ç3ê{ÙqÇëD"µÎÀÄ3Û¯©eÁ5o€™IÕR»˜›Vª4ìX2,œÅ¶ÀjxÅuµžÌZÍ×`y"®aRÎaLOã‰=JÒ&• ÁPÅ5et ,H˜¥‹Hd’s³`I.‘`2Q±Äuá5;2¡,C©³§ŸuÆü$0™ÂÈ¡[`8w1æ\Ð‰Ñœ¼–.†¿íX>£ŒÅI`:UöºaÌP•é­*s}ÐmҐ(n]¬r*Õ8‡±z˜C*kp ’C4ÓuÚm•Ä’»ä&ÁÅ9ŒåI`ˆWg|Ô«“c\»¬Ó–S±Èʵ‹¹:ƒÿ5°˜‚³c ÎçdË}Ï +Ë!6•¯õ¢ä¬°(ÎöÉ7½ 7€ .ÆZ•¹ÄN ;RF4€LàèêüÆ2ÅÑkœY¬%NŠu1KÉ1dOœñ²(¥Dµ-² +ÉÀõr¤žQ$W¦\#cdXŒŸxäLN"ƒvWÏ°Ú#cP9·¥¥>£ÐZÔ,º˜+¡çÆYœé²J"”e‹,ÓÛ9ÓYMü›¢âÎ +9ëbð‘Lå<Îì$2:dQÍ™LÕ´Õ¦”5gŠ¶ H¿v1 ÔI”³8ó“È>³rLá>kË&Lë +…Á頖µt1˜䳜ÅYœD†*|Cla艙z®PøÉxu†1®µÊ4:‹³z.Š"CÕhã 6åEá®PÀøqõ9Ãøùe­gq–'‘%|æ8áï”Öævnóɶg¥…¬Ê¬$«–†][bcœñHÀ±©Q[Îl >²qƳj<£P˜\/ÞÅL29xّ3é®ÈØ\m²Àûµ +ðYuèò†³¬%-ÎãŒG”¶¤'mÁåª7ΒÖل£ ”Â] þŸó‰ÛAÎFzœs–%?kd5Ëì5lL`S@P©] ' âgq¦J« ÅdÃ|.ͪ±(Ý3ŠÄ1ƒéYÅ`r FÛã,Îl@i¬”¹;ÙZi.¬qÖÕ¦Á‰GHSd>…ÎâÌ”6"˜—“³VZ‚}hªá¶Bá4Yûl:V®hbvg1 ´*›*=2ÜN³ÒZ]#«à§é_éb‰³8«Jk^XySe‚’4¯Q0uÃÅQ,áRÛÛh#Sä_‡9;Ý–u1¸a€ŠIIÐ +tIÌÖÅc<2:ʙ”AdVÑ&M^@æµíÙ£ˆTÁ™ïbÈqš ÷M¡1d\ڌRyƒ¬]“ĵCÁÒÆ@–.¦x9¸¼aÎx™ƒ‡4{œqx‡"›FX]ÇC>7†9“1dÒ4ª’nÉ\›îR{æ‚ú˜GŽm؟‰Ž!S¤H|ƒlžêe¥®6!ÍxíΞ1&ŽaÎl †!)³7ÈZv›ôÈ`æÐ úlâ4R”äÌǐ.d1{€IIʆ-EžUoýÔÆ9‹1dÉÌͶªÑ¾;üèØ+h–ÈB¢—AäBy˜²:Œ0 ‹»u[±C²Dº˜´¸µaYÂ8¥¸¿e~˜±±ÐZw³$ÂÐÃYL ÝC«‚¸µ2eLÇ%N4eÇ7sXæéè9Æ ƾƃ¸2ʘŽé?¦Gôâ 0¯0ˆ©]¬ºB?b c6r̍É?J ÓcÒŽSÖ䬠”b ,Yiþff¸cê˜ú+ºï҆¹ ӑ•.ÚÞb ̊V<ÝJx˜±1ñ7 o•¹q³PϢà +™ËöŒ¹&:UœÅؘö#‹p}ÚB':°ò«5h¬ +l7`4Ìؘô× +ÙÆø¸‘È›K3Šd9˜Ç´¨%¤ÍN·à>Ôï0WCšO¤ø3;èoÛ3¼›íát¡*õ9ZšðÉü­Â¸z é=¦ÌI^× Ì᫒6 Üç¹c +FiÎ]wGÒzªí›ñى>âÒ:y3¢kP øYmÅT¶†5P2̔ é<+NªÌ†á(ìih@Pá0§´N§rÌæv¸þlHã…DÒÙW D ¼=Òb¦Æ¼%Ù¤¤ ÿӈ é»–Qæ +ÆXŒ"¥ö ´I‡¬@ajK_áa¦†´Ý žð,ëƒn͚Úö [Å8W­¬@`ؚÙg35¤ëð„“±f*àõ`ë6¢ŽúóUR!OVç¯Ú~þ¥ÿšÓý¯ &›Ðßv×V'TÒñÿìÅg¼¹ø?{x ¥ +endstream +endobj +1065 0 obj << +/Type /Page +/Contents 1066 0 R +/Resources 1064 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1051 0 R +>> endobj +1067 0 obj << +/D [1065 0 R /XYZ 72 751.833 null] +>> endobj +370 0 obj << +/D [1065 0 R /XYZ 72 730.164 null] +>> endobj +374 0 obj << +/D [1065 0 R /XYZ 72 706.37 null] +>> endobj +1064 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R /F26 612 0 R /F33 613 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1070 0 obj << +/Length 428 +/Filter /FlateDecode +>> +stream +xڍ”ÍŠ1„ï~ +mXûÿçXrž[È-$ïÿiÙÞ¸"¨i©>J5‚ñ{Àøz€ÇûË~¸\Ɇnéncÿ5”6玱äØŽïGÕӏýÛåÊ<¼ç ù攵Ëm6 By;Q“§”Èèy—¤¤!Ù]ü©"°óüøv·za:?¼Î¹‰éƒÉ˜°6ÎL.'BÒ©”ºº°4‘”P2šÂ7š’õ¿@òò !ÀÀ€Iœ¼‰†à†]qԚŽõ„b(È-^RÔè)x=ÑƈÀjÒYh9¡\"VÀWï™P˜ZÍT«=M ŽájB @ Ą܀f3Ó<På‰ØZŦ3K—)®%d¸‘PÍ|:É,µ ‡´Æˆ ¤`ãKŸYÖòå„hHažŽ´r̪2yz6J5¢d óp³º¶œ/™°še+Ǭj(GöÆԚd€–™»ÏÃ5YNH€‚êß!ƒ§Ó¬jÔÇÝ> Ðï×P•ýˆÛÜúï]ýñ¾\Q▪t3C­ë¡¨Ô©nÒ.ûtñû~øYá> endobj +1071 0 obj << +/D [1069 0 R /XYZ 72 751.833 null] +>> endobj +1068 0 obj << +/Font << /F26 612 0 R /F33 613 0 R /F15 437 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1078 0 obj << +/Length 1888 +/Filter /FlateDecode +>> +stream +xÚ½XKÛ6¾ï¯0z‰ŒÆZ½%÷Ö"n‹ A² +$=p-®M¬,©"µ›üûÎK²äզɥ‹‡Ãy|3t°Ú¯‚Õë‹àìûÛõÅå«°X…¹…i²º¾]åÑ* ? +¶«ërõÉûu½IÓÀ{y¼YoâÐÓeiê= ³Ìû¸Ž¯Yµ»1i¹gj×𪪙òv¿çuVÇõß×<҃•Hü8É"T"XÁ»ME?d-ÞÞëîÞ臙؜®ÂÐߦé°9Úú±è} Õ@É‹ro×u½†Crà•Úî:sCkZX{˗„!«ƒªÙ›ªx“ªK¦¶õÕK¡ç:UۖÄ5œÁWád 4e½S­í+å4Þõ$IƊ\H`Ë¢ÞÍ±í´µOŽÀ¾}i¶j‡ZÜávL+•S<2|ۆÅ|Âd ·Ñ<½mº£?…~–ƒÝH«‹‚U·_ñàýë‹Õ'°oê}Ð;gp2N™G`ûsDÞç0Nžã]±f;¦ì'ÉÀ8xAîiiå쌟˜£…ý°ýޔè>ÞÌ_¦“U8l˜zË_7„AæíÀM >:)!×w8åi'„°„Þܶ۹m±ÆÝjý‰ÖÃ­„]x7ÆIâýѕæ6!´Ý·ÄƒT¼§¨~|9Ðo; …çÌ%¼õîÑé°Hî(ÈÌ]j§L¥Ë%{–'̙[ü¬aBá1Ï'\$-A££õכ<ÞJ–#û¨›ÁHß)ö(nšçá‰,e-Pd·bÚ®7ÝÞxA뻚Üð—ÚÃ%“4bµÓ˜ƒ + »¦ÞéÖÙa6ñf0M=î±²«VG^½‰'0'R-ÔG †(ÂØ{WiÅRbŒ3·¶à(tä`EÛtÖùç@Zœi\# +8ü^ƒ̎Ýö#X¬À¹—³TÚ~Bö_þƒkO]ˆ<»¾ëäÞÕWæ/A @PâÊ=}Ä †Äø“2²#m³äð)œƒõ(³] +Š¸('gîê½®u*=gB_Qá¾r¦­ô—¾xy'ú·†ëˆ›$NÁNJN2ö—3ûFñÔ¾P¸“8™#7-ÿ¦S`XÄCÇ“Ž¥›Žî*¨2¬ÚÛ=è¶?®Ù´tY¦PÜ#Û!3r+Oè¾uö›—Úˆ‚3ÌüÁ[Q¨%±´8 ÇG…z|åÉ Ov¸pP¦Ö%ø/ÉRÏøÚ§a‚9M±§(sQÎijg]µdG +·cǚdñ¤ÉÙâÏè¦ÍèY ²»aÀõ#I¸%Æ.bØÈõ@2rÒBä+áyèŒsºF§oóӁTVÕbìK€A“Ë]Fâ%â$ð¸4m_¹UÇk“L$s*¯U\œ7ÐÍ óêQzDÂ+`urX@õé/Ìý_<¦áEn„€6‰Û…;P#„…÷;+Aÿž@¯kD`S¸Vö~6Í$\ágL¤°žñd`sŠ;ÌZ¦ÂkŽ-†"§Á…ó‰Dýe¸3-T”¤8Ä4"R-7jCY¦H0Ytëk Òð©R5tYHz6Ó*:iö8¦ì~Æāòþ§7Ô;áÌÉ^¼·† (`´[èlßN+98CŽŽnÈËY(µ VÏzI!>B±“…ó¬:euȝ;?dI Ìlx_fѾ8F(­•ë;Uacy‹x¨Z°òØѓÐšN +¯ê¤"C±n@Ò~è<œ‘qÙp +œ›pùQ>nxÎÒ†;»PÏöü„ӊõÆDÕIžT'‹üm>'}J4õÁ÷gz ¦F)öƒ g/#ƱÈ<Š"®ï;•ÞŽù,mÑ¿üÏI™Ãm.ØÁQ›#>=P±5–7êqè!è )i¥±Xväø·Ä‰‹ß¹X‡†žm^ÓºÎÿlŠ:ü|+ï®ßé=ô⒧çRœ<—=é¹m胝g6¼ ݹóÜÏ£‘ûçEèÀlIà2êÖ,º' 3¿(&þYú¯L‘§~Aó›oý<–èÈòEî—×ÿ`r +endstream +endobj +1077 0 obj << +/Type /Page +/Contents 1078 0 R +/Resources 1076 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1080 0 R +/Annots [ 1072 0 R 1073 0 R 1074 0 R 1075 0 R ] +>> endobj +1072 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.694 612.389 143.139 625.008] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +1073 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [153.855 612.389 304.252 625.008] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +1074 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.984 576.274 218.491 588.894] +/Subtype/Link/A<> +>> endobj +1075 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [242.998 576.274 446.316 588.894] +/Subtype/Link/A<> +>> endobj +1079 0 obj << +/D [1077 0 R /XYZ 72 751.833 null] +>> endobj +378 0 obj << +/D [1077 0 R /XYZ 72 730.164 null] +>> endobj +382 0 obj << +/D [1077 0 R /XYZ 72 703.022 null] +>> endobj +386 0 obj << +/D [1077 0 R /XYZ 72 519.529 null] +>> endobj +390 0 obj << +/D [1077 0 R /XYZ 72 232.065 null] +>> endobj +1076 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1083 0 obj << +/Length 2190 +/Filter /FlateDecode +>> +stream +xÚÍˎä¶ñ>_!ìeº·VJ”àÓÚ°ó;È ÇN‹£¢–Ú’zדü|êE½Z3È‹O*Éb½«H^éÞï‚Õ÷›‡»÷߇™*?Viä= wm÷Xõ<¾˜ãfÿ½²xi?t֜yÞ­œ©Ê®žÚî¦+ü—Q<ç2Ô¾Š°úi*¼þ+õ«¢˜Å!LÑò‡“Ý"ã>Õõ@ŠÈIãI +MRð†$Ü Š8THç(úÁ™“5…í`qø 2µûtªŽ¸ôÄóצúåjëç9-t¬oø#záÐ>`p¥R–ÂÀB ¾ql®EÕ¹J©Ã]js´…Ì×mc¬þ’HŒ +¡M¦4Ú{±®nK(Z8w?Œþ‚s̱¿?èPï`â\lðßYpª]!O‰“8OÈ£`8òöD˜d†E_û«9¨GœN2F>¢2ŸÛ I!CÌ#ð‘ü²{v«hà²jšª)—䇰/»Hdw.I’8‰_sۃ¸àoó[9“~€wQË,°Î¦c·-x|Bf$$$rÂ<Çq*Ü ‘†'Y_Ύ>›˜² IéDp{l›‚aã€áTu’-ÇÔ³ZAbÔÛóYÂL¨¡& +wÊp½0È¡Ûcì2âlȝdáÅ4 Q Ðm9÷¹í0K@d¢ö0¤!ENV` ŽR,㬀“Øí•eO«eÎy 9Œ¿?µÈð'rò¤‡ŽWM#¢0mŒY»špÊ3Ÿ‹cËCЄ²ulp+Œá›” 8tÕ¦êON £Ì¥ X ¡$JM‰†•±MыxncHáI Ñ4½a’×^FSJ0‘²'åî 2×i +½7‹†tWvlÂkíB“<ªM‚vA]¸*=E7h¼·/ä Iàr¦rÉ’`C‰ ‰ ÞårÌl×¾¡è ÎÉ¢/÷3Áƒe݉L–îg&֓‰Ó©z[ÿHMÐ\&Ñ»éœÍ¥–K®F³‰.Ú²¼±låZ¶Ž¢g¯ÒµÔ«> endobj +1084 0 obj << +/D [1082 0 R /XYZ 72 751.833 null] +>> endobj +394 0 obj << +/D [1082 0 R /XYZ 72 730.164 null] +>> endobj +1081 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F23 588 0 R /F32 532 0 R /F35 751 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1087 0 obj << +/Length 1295 +/Filter /FlateDecode +>> +stream +xÚ}˒ã4ð>_‘£SµñF–;pŠ¡  +ŠCŠ pÐØJ"Ʊ‚$ïøùí‡d'Sf/¶ú%õ»{»:­¶«ž¶ñÿíáé㳨VBäûª*V‡ãJu¾ͪM^l÷«C·ú={;ëa½‘Å.kí0è6˜áÄp°ø¯³p֌¸˜®ëãÙ™øâ¬êZå£}pZ]òõŸ‡Ÿ&M>>Ë56¢È«ºYm +‘ïvQÿމ¼×œ$¶Ìû ¾Õdƒ>©`>­A ÍÊ|ZWe¦úQ3ƒ:Óª }²C&Ø1\Çxöêr홥ɮN·ZwÑ b.ñ®µ³QàlǾãóËzC¯ƒî ÜF”yYîXÉÎøV¹Ng¹-²ntt+ukIúprÊÏÔ [4é<˜¿ÑD%ÒèÓu›r+ÀØÞ"÷£Ù˜ÍÉ©±c¯œ kPô¶¤"ÊÑ.ª=ÿmÖǏX¤R’ÀáÌ •!üA™*ˬE­=e4@&ʽ §ÕÄŸè "3ªg8)<¿~÷3(ú\ÀaÁVéu`šñüì€%ò¡Š®_ˆ ‡Ä°tJIŒ?맇á8{¥ÉèÀÍ1ŒÂÕèÏ °-$wŠ';ðÿÞjMW×+§‹r>b’ZÓeP®[2â!fà:¸³Œ­Ô=¡ÃVü;:zâñª€û¤!ûëRd¸æ‘9•q„I <Ì­j‚I6‰P†)üÜü¬1¼ôúQ$íŽÖ]–,ã€WUd´Úy»j÷xÿ¢©Vƒg¾øܧ™k˜š'Pi~Òé0ºqܗnL˜ÞëTPŒ::{aœ¿ñSØÆXª#ðìØÏãŠ2$ZëÆ¥ ?sǍ^PÑ@@¼™=Ê š ©‰@G¢T!8â´~®éíÉ´ïnjػÙZË&—û†µþÅýÕ‡]Yä².Ó°{^7E¦L?’‹2Žå2ëâߧ?Í%,ÀüL†È؅ 3E|«FïQñò•¥ì¥$C¤¹\ÛëïÉOóó1ªÔ°¢ÆÉd +EA”KQå»(@>€—Aƒ×‰Ó^¹¾v7ä÷ŒWñ~®[8ÄÞ}c(f(Tåü(õÌ(²Ô¤W˜B>®0"o¤xlÑДê/o1,t·ÅÈ:;‘Eq\kƽ¯?¹ãŽ&Ó2êŸÜµëÔùd¬YStånâ,JÎ"¦y1B®†3}> ]*M–Ê0z¾¸Óê’MšlŒãdäåIú¾¿1qê‚÷ü󾃼”u€ÑÔ§á0½:YgÎ"ã‘2™øT¼Tsf K1?:E[M#cÆØqè`wÒ´«Û¸«¹38þ´ƒe‡0EJ±yèk\¨‘’jȎ¡3º…UÓsF^ö32°#h1AöbÏÿ“°0#`Ï#OU pÝ©h¦XSÑP¸áÝ3@iiDŽË]S†Gè{¸¼ÛŽ‘dù×+RÇN£é÷ûíâuLoµ÷…–þ+±/sÙÐ;+(±’åvûEæïOŸs]pà +endstream +endobj +1086 0 obj << +/Type /Page +/Contents 1087 0 R +/Resources 1085 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1080 0 R +>> endobj +1088 0 obj << +/D [1086 0 R /XYZ 72 751.833 null] +>> endobj +1089 0 obj << +/D [1086 0 R /XYZ 72 540.251 null] +>> endobj +1085 0 obj << +/Font << /F15 437 0 R /F35 751 0 R /F18 434 0 R /F23 588 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1092 0 obj << +/Length 355 +/Filter /FlateDecode +>> +stream +xÚmQÁNÃ0 ½ï+"NÉ¡Yâ4I{dhCâ4MÕ.À![;¨´5SÛ ñ÷Ø C q‰c¿øùùE±7¦ØãLý‰‹j6_é‚i/AۜUæy]HP%«jöÌ"³Vñ­0ŠGa4ïwí 2ãvÈ9R‚<+ž?$Ä +ÍQ&ÏW~ói(¥öH;ѽh“o„·UdP:¾ŸÇ(pP§ÂŠÐ؟˜òCìÓe›€iGʗݞú¦æº™ÎÜ °üR·ñ.é¹Ý¬“ ý”èq…ºö}{FÃp—Ž:шÂÊr–é\æ¹Kñ€F‚ãï‘ øHÉ)¢ñ'*îïu¶¢€«pzH[‚¦OÁºmè)YCÉ0ö(¥ 'yóa×Ȍt¹g™S¥4èú$Ï«_/«ÙÄŔ+ +endstream +endobj +1091 0 obj << +/Type /Page +/Contents 1092 0 R +/Resources 1090 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1080 0 R +>> endobj +1093 0 obj << +/D [1091 0 R /XYZ 72 751.833 null] +>> endobj +398 0 obj << +/D [1091 0 R /XYZ 72 730.164 null] +>> endobj +1090 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F32 532 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1100 0 obj << +/Length 1081 +/Filter /FlateDecode +>> +stream +xÚ}VÛnã6}÷Wè­)"u5ú”ͥݶ@PÄ(Øíƒ"Ñ6IT)ywó÷áPŠì*‹!yf8œË™±"ïàEÞ/›èbý°Û\?ðÂãy(xšx»½— /çE(¢­·«½ÏìV7º?êÎÿ{÷Û|ï~·á°‰<ŽúY‡E{U»ùwÆñÿpý±å»ӛ?áo’`%X˜!¿Róp›¦Âù•qò8%¿?yÎÔ@ké<$›/ó›¿o¼Ï ±Oª?†Ú¸k~Á™>ùœuu9ª‹í•œÉ/µéʨiíeeÁŒÉa/@ªÊÆéÉNŽÎ+½'µ~/ù¢©1I[¼xjFÕÊZ•¤¹7ºE_À€'a’dp¥ML›r”~'œõ0–Œå‹ê ”Ãψì‘4Á1«ö¤O¦rW0]q±ñèp槁¶#Áô0: ·`ºy;¢Ò ú,eO¨üjæÝIB/`&\ ãIÊ*»y¦‡! ú‚ɵފeñäŠøNQc¯ ©Ör,U3Ì> fÙvÁ¥˜çì/¿ßg›$N܊yæžø› @çkå©Vš°ÛÇ»ûېàË —ÆÙhK‚­þÞHÙ¼’à48²«IZ«a4êù4:óƒž^I.]Œ# „ρÀyp„¨FPÙt]¡H°oG f 驎ÖLW_ý4eÀ +§ÝŸžU‘’M-hUX)KÎb&'ˆ«²/+5R°WÈJ’äìWÈ7KGž+²ƒÑ­µèÛ4¿,¹Ålظ±ùiá¦Cj{Õ҄ýC ¢/Q}w&aÏIÏÈArç”Q‡£í[:Ú®ù 'àènÌo.’¿ Ç ®µRE©z «¤Õþ•Ð÷õ+Ýö*»J®²zÊvw’nÏȍçAïG ̖¢4’PK`ÜLyÙºéæÞµ¸3ðÆΚ¨ŠD*Щ¤åÃÓ]Ш—Z¼ß¨`uÀÉnH’8a»£e®HX­)|wìôH(<^¹ÓxT¦¦m_Bò&u;LÉÎä¬ê„(ðvš“µ‹ÒIlàر‹Ø‡5Ÿq¼c)Îú ‹fs›/r‹(æǍ#ízÄ <¤lðÓ©˜§ÓµÎÛ+xkDÄÿk Ä,§pï)CÛF4–"-±\’ö£)kٖæe 5l”±¥Á3Æê,ýh‚£Êì×JÊ, ߙÙ8$rÈÉî(IÏõð7ykVéގêM[·ÉãÛÉá„ñí6 Dåþ¹SVxî†{ö¦iHw6¼ZõÅ°¨W[o¢o6Ñ·:µ †¹ä‰5â%üxþ¯Dêåá68~ýð$ 3˜ "ÌELoܐÚùWR¦E¾¼©í¬Y˜Â—àiž~?ãÜ[ÀŸÂ³ŠÌ•Éx˜pøP‹cxB8圯*Ã×áís´i +endstream +endobj +1099 0 obj << +/Type /Page +/Contents 1100 0 R +/Resources 1098 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1080 0 R +/Annots [ 1095 0 R 1096 0 R 1097 0 R 1103 0 R ] +>> endobj +1094 0 obj << +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./xifish.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 1104 0 R +/BBox [0 0 60 61] +/Resources << +/ProcSet [ /PDF ] +/ExtGState << +/R4 1105 0 R +>>>> +/Length 1106 0 R +/Filter /FlateDecode +>> +stream +xœíWÉr#7 ½÷Wô9‡báö‰>A5ãI•û`çàßÏ@¶Ú¶”S2Y*å*‹ˆÇ õ²¦Ödãóº//˗_t}úmI·rÅÿÂëëÓBë¯ ÷¶µµ$³Ù—Ü3$Iéyê6JÉDÚjï7í·Ÿš³Ãáë´5rÔ÷ˆ!M›{ÔÌX;ƒ8Óøñ”A¬„?ó§Ë–WMbFœ·¾ªðVͨ֍W-¼)$1]|©ÃU³íS–ÃFkǧ4r›Ìm“U²º¤ Æ+·Kç@XoƒË"ÙâͬξHIÀ§Vý¬ŽT™…¡»IUñI8ÁP¼RŽðêϝDEÚ}ÑÔ±W´›KJÀ—Üq¤b!`Š9ŸÈœ¯Í“µÛÎ)W=ì²Z %5ç’h萌ÂT 1¸ˆŸÐ€ÂMý2˜è¡Ë¸¼Šcrq|)¶/ÉÉjzFÈ^KMÅÙíØ)ÝØ2ç,ÅüŸÒêÿÃrËe±ÂNVڊƒA˜,ëv/î5ŠÄCÅÙ\78 Köܝå/Gç¨dpbßIÝ)"Ù:gòp2mú–7õ΅Ò4=QõK¡yÀ+ öžwHɈHÉî3‚d]ëÖlMⰌªFÿÅ[!Mà–ú°¶f(­û¾(F©îräúŒkŠ1(~wҜòp`d³÷®¯ÿC®\f6ø£)ß-uO4r<Ζ/3A™ì“Z%øÈ©Ž¹³cÞY7â¬Î'˜³Jøa5s”"cz•ãHV+IÎՓ(¢}„‹Yã­âå‘9ÏÙf£1@÷t¡õÔ Ðàù78õ­þÕ°v;O¸wë•æÙtô¯_=WBÓó'MœhåöɆÛ#4Ä0›ø¤küÈ*4w8^̋,îY¹ÆÊï¾· ¹ãmDW$ßá0tÞħÔGáN˜möHÓx^†d¹˜Q0`ƒ‰;OÅ)e¬¯ á^jîSÇå°òµãaÖJx*eZċ.Ðb}]æI!‹iwfxuÚæÁÛ¿Žù÷Qdýèà=¤Z¶¢x%àۚÁ¢Ú+8zH¬Á¨àõ‚=CWälÒäRǝgÛ9ìðH80}ó¼Ð—iwây}ÿÛ"š$ƞ=@fËlñ`cgõð|4^Á£Ùº í2:Ÿ(ÃuÈö +‰ý.•-¹”rŒ¶zj(ð)züx~ÝÞ,:çÏüòÏ'{™#É\ûÒR€Í˜]g 0ò×åÐúO‘:†[¬Ç„Œ}Ãu¿ô‘—ågüý”ú +endstream +endobj +1104 0 obj +<< +/Producer (GNU Ghostscript 7.05) +/Title (xiph.eps) +/Creator (fig2dev Version 3.2 Patchlevel 3c) +/Author (xiphmont@lips \(Monty,,,\)) +>> +endobj +1105 0 obj +<< +/Type /ExtGState +/Name /R4 +/TR /Identity +/OPM 1 +/SM 0.02 +>> +endobj +1106 0 obj +1025 +endobj +1095 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [115.465 608.814 223.351 621.433] +/Subtype/Link/A<> +>> endobj +1096 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [91.814 579.922 256.867 592.541] +/Subtype/Link/A<> +>> endobj +1097 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [485.46 442.022 531.996 455.97] +/Subtype/Link/A<> +>> endobj +1103 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [71.004 427.577 131.036 441.524] +/Subtype/Link/A<> +>> endobj +1101 0 obj << +/D [1099 0 R /XYZ 72 751.833 null] +>> endobj +1102 0 obj << +/D [1099 0 R /XYZ 72 703.022 null] +>> endobj +1098 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F25 589 0 R >> +/XObject << /Im12 1094 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1110 0 obj << +/Length 361 +/Filter /FlateDecode +>> +stream +xÚmRÑnƒ }ïWÜGL* +ÂÔ=6閬o›o]³XDKjÅ¡¦Ùß MÖ®OÎáÞs9C1¼.â»uU,¢’I1%œAQCJ!%¦qE[ô.kid'ä슷l9BpÎ9Ë9Îxa’`g®Ã–ìnJa²> endobj +1107 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [247.015 666.602 531.996 679.554] +/Subtype/Link/A<> +>> endobj +1113 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [95.066 652.156 170.882 664.112] +/Subtype/Link/A<> +>> endobj +1111 0 obj << +/D [1109 0 R /XYZ 72 751.833 null] +>> endobj +1112 0 obj << +/D [1109 0 R /XYZ 72 706.37 null] +>> endobj +593 0 obj << +/D [1109 0 R /XYZ 72 706.37 null] +>> endobj +1108 0 obj << +/Font << /F18 434 0 R /F15 437 0 R /F34 639 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1114 0 obj +[963] +endobj +1115 0 obj +[736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.5 472.2 833.3 833.3 833.3 833.3 833.3 1444.5 1277.8] +endobj +1116 0 obj +[610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7] +endobj +1117 0 obj +[562.5] +endobj +1118 0 obj +[531.3 531.3] +endobj +1119 0 obj +[514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6] +endobj +1120 0 obj +[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] +endobj +1121 0 obj +[611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1] +endobj +1122 0 obj +[826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.7 501.7 826.4 795.8] +endobj +1123 0 obj +[777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 761.9 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3] +endobj +1124 0 obj +[555.4 505 556.5 425.2 527.8 579.5 613.4 636.6 609.7 458.2 577.1 808.9 505 354.2 641.4 979.2 979.2 979.2 979.2 272 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 761.6 489.6 761.6 489.6 516.9 734 743.9 700.5 813 724.8 633.8 772.4 811.3 431.9 541.2 833 666.2 947.3 784.1 748.3 631.1 775.5 745.3 602.2 573.9 665 570.8 924.4 812.6 568.1 670.2 380.8 380.8 380.8 979.2 979.2 410.9 514 416.3 421.4 508.8 453.8 482.6 468.9 563.7 334 405.1 509.3 291.7 856.5 584.5 470.7 491.4 434.1 441.3 461.2 353.6 557.3 473.4 699.9 556.4 477.4] +endobj +1125 0 obj +[500 800 755.2 800 750 300 400 400 500 750 300 350 300 500 500 500 500 500 500 500 500 500 500 500 300 300 300 750 500 500 750 726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475 400] +endobj +1126 0 obj +[571.2 544 544 816 816 272 299.2 489.6 489.6 489.6 489.6 489.6 734 435.2 489.6 707.2 761.6 489.6 883.8 992.6 761.6 272 272 489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6 489.6] +endobj +1127 0 obj +[249.6 301.9 249.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 249.6 249.6 249.6 719.8 432.5 432.5 719.8 693.3 654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7 484.7] +endobj +1128 0 obj +[641.7 586.1 586.1 891.7 891.7 255.6 286.1 550 550 550 550 550 733.3 488.9 565.3 794.4 855.6 550 947.2 1069.4 855.6 255.6 366.7 558.3 916.7 550 1029.1 830.6 305.6 427.8 427.8 550 855.6 305.6 366.7 305.6 550 550 550 550 550 550 550 550 550 550 550 305.6 305.6 366.7 855.6 519.4 519.4 733.3 733.3 733.3 702.8 794.4 641.7 611.1 733.3 794.4 330.6 519.4 763.9 580.6 977.8 794.4 794.4 702.8 794.4 702.8 611.1 733.3 763.9 733.3 1038.9 733.3 733.3 672.2 343.1 558.3 343.1 550 305.6 305.6 525 561.1 488.9 561.1 511.1 336.1 550 561.1 255.6 286.1 530.6 255.6 866.7 561.1 550 561.1 561.1 372.2 421.7 404.2 561.1 500 744.4 500 500 476.4] +endobj +1129 0 obj << +/Length1 743 +/Length2 989 +/Length3 0 +/Length 1509 +/Filter /FlateDecode +>> +stream +xÚ­’{8TyÇIHòìnT~Ú!ªs˜¡$Ϛ1$ ÅÔä>fÎ̜:Îgf0¹­\›EÚn.¥ÄnExHtÑŖžZ•6·$²©VEºRiÕî³õï>çŸó¾ï÷÷}?¿÷÷Z˜ûúÑ\Äx8ì†cJD‡Ǜ-€lDgP,,8,T"8æ*TŽZ±.*)°eÈÞюéÈbR,—« D*S+Žõ„ȸDÀ"bÀ[¨”Á¤‡Hˆ?\„ÀJ5¸ (X7qBÖÁ +˜ˆ‚Åt +1"R‚pXŠ`› "L‚‡i±Jþ¹ + +X‘Ö€DãªbXB±áád/˜$ù? ¾4wS¡(O1a?9¥¯êÂURàr•&€7.† ìKéø#G¿jã¡¢ˆÈ“¢0`|L! +7$û"J‘ H„¨žÌØøKrl“6îZþÒOï9Yô"˜Ò_-ÿÇvB=CÿÆät$2è D +Éïó_ð͸˜#¹,{ $¡šBn±@,L Ç8†$¶¡c¸’<ȑÄ NP&ž²µ6ä„ +ÙDòõMØl<&–Ʋ4[ Ènp`1âÿ#©Ɣ“KBš}Ž%9=ŽE”Îv\´2eÓÞÚ´£ Ü⛥Ӗh³¥u9¼ãZÎê%ßÞ¡þú»g䒞jÁXYþ\ƒifÑïLšú¸µ×݆’"srÛÆ¢Âò·œ2Œä{«ï˽Nœ}¦¶õÅc–¶Ï­ž¦£»6–4î¾ÊOO­¶´3_g˜y4ƒ™Þm¸ëç©ÝÍÉ ›ÒuO.íz†×«ŒÆŠuîÕ__öÚóéµ~_ÀXε×FU?Ñô©zçmÌ.x×lˆŽd´.~¾L”WqN~§¢µ°$`ÔGw³Ô}Û}Dsúl‰9_«*§Ò2±¹®ûP½,,€÷jáµâöù2O÷'2¶¬|Ò[Ób}ú<ȝõ=dùÝ A¥U5õÃ;ÏÔÎíí©Ü÷å5‰y 9U7¹ýR™!¹`¸È—Úv?æÑsâöã¦ÝìäFŠý*YIN¤ëzÃa§¾°™Ü9šÍŽ—rwòÈ}¸œ¹ÆýÍ̎¯‘Xû¤WµÏydsíMG{Í*ù‹_ö]Së3R¤žÎ–Ö¸³Ž­i?˜*Ø Ùö€IŠ;~8^Vµ¸™= Šݐ¾ê ×p—Åa–²¤‡îC æeëq¦û7'2ML»œ-£vEñʍ©/ +ŸérƧÌ>p¯S+K¢_¯ ãÐ"¯*”t$šžZß7ST°óʞ“þÈ ½qd¸ýNHcÈ·&ԖºCÅ­‰îâGWª ³’‚FŽ•¡n¢‡ŒÔ`©Ó#MÝöЭY–mŽuŽçÅõ´Ô ê3XÆYG:ǘ«™ÆïôÝ-DÝ ŸæÏ9èŸxU7´DdòǾGö½³¡½ ñðŒßÜ6DT4Ðò÷¨¨ócµÊc¯¸F{óLƒµå ·.Êҙû.NR-ªWë-½¤q:Ï>…-8/˜–ç7#Bfœu¥öêºXGåø¡Í?3W#½{³…z6Ν¼ÁëýÇn-gþÆ.åŸÊí?GtE vS¦dþµ¿æb¦zòý@Z²Í£ð©üe[ ¸µ§‡/2ÒÙV /›Ö¼æ?1 Òý‹dr?þüXü3àÉ~ÞÉW xVö¼7~5Õ//Y9r¥‚št½;2–;½e¢œÖåÚ7U©1¾{Äü¾¢e:)ñ¾?5ëz•éöÛ¹ ¾9LùÓ2‹R-ͨÜÝÄÚ²/Oqyxѳ8ëywÂB¶ëõú´h)Ü,Ïꧻ®®ouêêg$mžãÇÖ)£6…&ÙníŠþfõã´°¶è´ÞŽq¯  n×-‹ó£«úµè#±6!Ô¿aãր +endstream +endobj +1130 0 obj << +/Type /FontDescriptor +/FontName /ZICEQU+CMBX12 +/Flags 4 +/FontBBox [-53 -251 1139 750] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/StemV 109 +/XHeight 444 +/CharSet (/endash) +/FontFile 1129 0 R +>> endobj +1131 0 obj << +/Length1 940 +/Length2 2176 +/Length3 0 +/Length 2781 +/Filter /FlateDecode +>> +stream +xÚ­’y<Ô{Ǜ‹2Ó£ô´Úˆ†Â 3öêZfì²TC +cæÇüj6cÆ6Y2Ât-Õu³•ÈÖXJ) ‰KÄ-KšTŒ­PQH]W÷n÷ynõïóúýó;çý9ç|^ç|µÔÝ<õ¬ÈŒÏ ³õÐúhsÀÆç…Fh} +¡¥eÉlˆA·%²Asmff8r¨€¡`ˆ6744ǘ"´3‚QØÒFgYdXÑ@D"Ò"›Ò$=HD*àÉ A ;B°¢RåŠÀ Y¡ YFdˆÄÀ ˆŽ0X¶ä@d&¥Éæß(d…HLÈe—:€Ä#™A§Fd0aàʐ %Vþ®¾mŽçP©®DÚrû•=}lj4ˆñEÁ 19l¸0È ‹þ­”þeÎ$CڷԁM¤B$+zP¥ <’Ý 6‰©!àJ¤“¿5!Ù܊‚µ½«ÛÎ/7]nDˆÎÞÁüoÛeõJŒþ_,Ù +|P’ý¢%BÉ÷÷ߑo†áè$¢†Xc€Èb#’×#‰° @t2€áÇút[RH–2Xˆå‹bP€A‹H©` Û + +ZÆ+ÄÈ0¤2¬ï‰É²rÞ¯‘!`À$²@úwEhӐ€¯jŒ¾ïÛ¡Íþ‰¾ª2]F,™Cb“¡&•±‚¾¿„µ5#œ«gˆô ͌%«Á`1€‰‰aÔWJ‡%™Â^y蒃þB’óƒ`8HB<{ YÄͨNDã +ºKetaÖA·N»V5öÞYË{zF-îp +Ö¼îõ©,{ãºq™qµ°ÏJ!§ê»?ÄOŸ>)\õώ¼­äõ>Û%bŒ©1ϛ\_WýøöïÑào‚tïÂ{fZ'óݐ¶û'Ö ¨¯jò ½Ñ”olâ…ϦH3X„I…ɧŸ•uñ¢&ÊÖììŸeÔsþý©@6ïç¥Ãk:ZKnvk„Žmøóªîˆ‚üàÆv´Jz÷ñòfÍ9ÿ¤Õ|%QÉ٘9Cï„Åʲ¡û©N?NdòՅîS²A“¶ 3göpQÒEs#F\(q©·À¿?@k¬ DŸÞ+Ó-´–Í»ƒlÃÌ¢šŒnÄk4ô>ӋíȄ -ù…9ãÙKµ—ÿ@Ød´5šæ‹§A‡-Œþ-•éçÎûUún>sÒø´¯¶mû#ßëÒüˆè¼7¸Fد‡amwï6ø\´ºU\¢w`­ãþK$}Í"Œ•…3uÐ1‡ç9YÆ(ólƒffrvÝ>\åÌᜨ–¹k¾§IŽ&à ?%Y:¦WgÇ÷5òî)“ü^¸7Êa]†Ú»q󘗰V,‰'€¥?èÕ¸R}Qû&R”š/J1Û9§â;µîÏ¢+Ì ²“Ùêqr.žÛövµày&m[\,é?¯ÖC6ë£ÿe·nß¼Æ+Þ§ã—ØÄ°Iß#Cws[‚€mЉý¨Ç? +o»õ*ä÷Ø÷Š¼Üö2ºS¿ïhBÍҐSÁ!æՊÆOGˆw§º\Ôí,=´™ß‰ùÄ-nÃuÊ#Õ:bÕ¬ÏÏÎòÜ=mO¢(Ò\çìzë´ô0ÃľžKéC#xÊe=}_OÓb‡­°¾…È‹YO„–„Rì1Ð*&¹Ä1>Ê8n4îF/}§Jè$®¶È[Ú g>ºêXÑq»NsZn ûº)‰^íúçç;,-νBHÃ]¦¸ۄkÖÏ×O·¾€Gý6-$ˆÖŠ®iL!Kiž£‰=ʳ%g{oþÙ@»?kÈaÍƂíðÔ‹…?c U”tjP:£û:âО¾¦~i~þrðO·'™·SŠ{s‘É ‹s–Jåaýž¹Çfñîê[ɂEw—õӃÏdF”㧋ìö¦¨šÚåDèfÕƖöÙÚÍaÇë7–<¸2ðŠÜÎKáͼ õUšõJ…<O—*몍Œ9ÂÒCHíH÷UõŠ¼Hš&¥¨¶¶|”ÎW¡ÙÿxO˳~ÓË~íᬇ҅> endobj +1133 0 obj << +/Length1 1005 +/Length2 4605 +/Length3 0 +/Length 5272 +/Filter /FlateDecode +>> +stream +xÚ­“gXSk³†¥k@º"=(ÑHM(R¥7¥H H/I€@H(¡£ ½ˆôÞ¤#ˆ EŠô‚‚)Ò0t9Ñý}Û}öù{®õç}fž5s¯™w¸´õøåXk¤ +ƒã‡ +@%Ššš÷ B@€@Š.H+ +‹Q²Â!%P ‰;Àûnh ".)*&)* +±N^.([;¬xû—I (ïˆtAÁ­0@M+œґPn…êaá($ÎK(Fu½á +ÔEº"]ܑ +D à8 5Ò…þbº‡±ÁÅþ +#ܜþ›rGº¸ €àߘ·Hƒö"6A-,¡’Àòÿõïâ*nh´–•ã¯ò¿'õòVŽ(´×XG'7Ò¨‰E ]0ÿ¶"ÿ‚ÓD"PnŽÿÎÞÃY¡QpyŒ- 䇊@DþŠ£\UPžH„6 +·ÚX¡]‘¿ãH âß$„ùýæ4ÖSQyxŸ÷?«ýÔ¶Bapú^NH äû·†þф!¹ <&J0žÿžÌþÕLÇ"P[ è •‹‹•B(%$* +ôQÒˆô$ +`°8Â+@Âdm°.€_{%¬FÐêWè/%´þ[‰JáXGÇ?y(D(hó·¼CP¶¿î)aÒ,¢@AÔ …1ÿP  öo),LPŽHÛt ÌIÐéȉps°ˆ¿CB„úNÿl@¨áü)üCs‡ÐÎmåj÷Ç Dòü‡$8¼~Ëÿ»D¬§¿0È/$ +ùõñw€b¢GÿËwsqAbp¿ÂUø¯¶An鉄&?báRAöÉ5!ŏ•ó†KÈn»²¥ 4W§J ¬‘¢s©}¯äØ¥ ¦³G•Ò&mª¿D؈Î1×Èûvûè ¢ë¾Ìx;'Mb¾njNܓÝÕF㘾2ɹèTË»=uãǬ{3Y…Æ*T,—y3‚´xâãÙÞc¿Á¹IÊč¥$€YvƒF"ÒàÛlLÿñ†*6;™ßÃdšöƒáç$sŲ̂ÃôåT‰ÈlM’E;&ª‰ÛàâN«ÏÓ)¾?tµ‰Ø™Wï`jήܕ¤¥*±¦ÿ:>)ãê%ä(âóxZ1¶wV‰8¸îôJ&uÊ(ºÓ3nºÓϋD)‹"öAs–­ô•¶+Òäoäñhº•-ñ _Jºù2-{±û@Y)*~kDÛà·G]–SOɳ¿á{K:O.¿U‹—¯Î=Ô²ƒ›Æ43ð«rîoÑöœ[¤åî/U¨´‰¼7âaû¶—Åšó:?AÔ@lwõñKÍäq–¢ÔjÅÐù³xI!ɳ‚·82‘|Új'SÀ„÷ÉޒdÀ;¡Ë“¶zðôÅ A¯œ”0øv²?Uæ›j D›LJÏY֕šdíú¹ÏëÖÉGÂg•M<–•|þ¦§1õŒ-{Û»Gýâ}׌„f˜!T.'ëû ú›9+Á*%5]r ø}a¤œ4£ M%×Dh¶K½ϯ€ ÛÉ h1eⳜ•–Î_lí‡Ùuè%c£<žmÃÑqëÒþ:ÍÄežHÀ½ .zâx|½j‚ú‚~¹kíªwU +IvayÁŽÓ[®¦¿:‹X Š6÷¡¨fºâIrڜž]yHó©pÓĐ27Á‹ôÔmˆ/pº TO co¢[]ëúfÆKÜhô°loofÝÏôÄD~Á*K}\œÂ³âô³»+j)ô‘òU· ™"¬Øۜ¤+|AŠtÊë"Õ¢aF/õ^$ bp’7Æû4®½mÑAYMG:v‰d9Þ~ï8”Пòµy~`(—øçʍ†¶Kj/ۇ`%§¾IЌwa‡œådÏWÌlô罟é/õQ´Å$­OófۓĜýŽk)È+÷±Žðz¾]¬ãŽsj‹T¾ +6o»ÉÏc{ÎnÉÄ9$X¯axu³ý™ÃT’”C¼”>­ñ<¶“~Ÿ.Š±²/YÌ¡/pó[ÀXTUVü}≠×&'u¦ _ç ¯L&º'À­8eÜe¿[ÆVÅ`=éDC‚,û˜³¦^^ùôï®Ý¸$éloø{v#_G‡ ¥[½Œ;¶ªé’÷ýZæĝ=°þ}ºeÄZFh*ai}î£Î­â¨ï T‘CzÈù!µAë+qó²rÅ·ìõSV›?ÓÏn´‹èÌ<&ãÛ¡™k]˜Ÿ\ á*Á3fõ·›»\bLäÞ\ò1É=x7Gæـ¾–÷Ùªø›ºü€±½ê—¹N© zdl!¦»// ‘qÚY…«¦¢³z©/äѪù;MÊ£Pþ4&~ª«æ3FÝ[’)²xÛøP*ÇR3|e¢=W‡íò—šÍB7ö»n´ÝSIÁS ápx¼øUt6wü÷IÅêýޅïþ¼ñËÀ($Lë ‚PÔµ¸J7¶4a¤m"Iì¸9ktñÞPËò羁lšºä)0¸‰báé»A×Uø˜¬z{*¾Q£ÍÆËõãOƒR—ãz·“äŒ7÷4Fs>“(ðÕ«+ÀÆVî‚]¹e…¤‰èð*ÓBÀªµYÍ?>ZJ^^ãê s«\‹@×Âv$ŽSÌ1ëߏÊX]Û¯'+ôc×¼ˆ.*‰E0™&IƙrÈE%=Qalûä*LH–ølÊî|XÇ6Qùb„ôüòôÍàǬώ19ëD³+Ù(¦|¿£[~ú"}™+p~ÉV¥Þ4âžN¹g—ôUÃôý ÆDQå´­ýF€\ýŒÚ‰4o©~•;E¯= Ç` +a-DmÄ!dë]¡?ëúlQô…ŠcÙrÔVøu‹rpòóŸWc}L—3ðY|´ãó 7<è¢ ´¤B¼”Ï^Va0X +Ҍ½XN2Èê­C¾;Á +)¤ ýÞÄB÷êƒz‘†@JÓûƒõ¼* q­„Á ÷rËy+é7†nÚôY ›¸}|u1öûSfÔ+,zyZªC=®¤,x¦áÅ-¢Ó¤¸ u`VøÀB=„ ¥ª‹ µüìÀ¬×fÍ":xí7ùø^G…3€ëø6‰t5¶Ks_ýRºÐ4¬¼&ŠóF?§3gb,ŝ’|ûjš§?K÷>›Âcåwu°oZ /•¿õ0~V‹›³ýtƒ6aUgULŸ"'{Vrêy¹g)x¶DSûÔäÝƈòºChßòpx[‘·Ê¸¨oðŽúÙaÂ㻅›ðd %Õ6Æý#|ÒQ²ö`f§Ïa)IšBšFݜŠyTɛî +ÕñþbÅ¡+,ïWrNh› Ÿ.β˜Ï–Ìx8¨¥ƒŽSív½H©¬÷›»:yï#7_6ïãˆ÷{¯Y^ïm|uá…GHì[fxµLÈ:vaÿd?5õτ>¸âa›ØÕ¸+èÏyxitýؙÌï¯.2 ÔmgT“̐dHH˜.X ÄòÜ7ö1Ô[Ñ(•™;ïR­+mq§¤˜dÅǨ6/Ë_+¿™š¼xNÌe9¡läÒËn<ªÇÛÚ¤&|° Ó¦9(wT7¦?õl1ÞÈН¨µqà‹¨‹¾BÓ\rñ‘›8#™ X®Ð¾øÍ^X;¤,%vY)|‹On¤›jõí%Ísƒ5²ž2vr² 3ƒÍ•Ö  ßfe‰ë +“#.sZY¹úàAD…•u?Ô?ìRFÂÛ?1,€º¤ …V+%+]z¨D+îd|Ц2°*­0*€wuè§v‰ßÊ¡ÑËÌc|Û;)üýËÇ#À§¹æ gŒVú‘ÃÎ$nÖw•ÍµjW(ŸlâkM§X<2“[å÷R,<¼;Nãâ£Oà‹›Çšdlr–æOÎ½¤ â)*q-ˆ~{ð½YÀ‘4ÅiLÒû†iږ¥'ƒh# Û ÚÜM +að,Ս˜qwIdõE^h‘ÝUÂ0MÐÞ}ԑAït†Þœ +“Flÿ(aFiË05xFXÀ¥³Ès¦écÕÁ+«ÙAA–¤³ré$êiIr‹¼áFgîlëwuæ‹6^/ßÍ^yÀÔp{ 8Ñ­¬#tç™ä°û»]E—·ÊòJZù>òëkõe¸Þu‡´ÛÚôudæ'8û õÄ:ˈß$ +|I:ri+ìÎCtòþí5˜W„8˜ ¦Øœç«\­îŸ×ëùòHå&—llò´¨F¶âÅN|Í šu6ôNËgÇ-‡¯½…H+¹„°ñÚ©ó¹Á¢[ «¯yÙJçö¤#½;Dé! Ï1šHJÞÚOžv"£M®Úڟ:וÙHÒR]cxÀ©ÚÐE?jŠýîM³µunÓtëNc=º;wç8ßõŽFÉÓY½$È)=é×iÏ6Ó¶¦@Üp« +‹m‡|kNùÃ'êǏ ó,ІLhHCŒy”°þø$ôǚ‚õ9e¹û÷ +€å¾ÖÒ-LíÇ_Ž[ÏtpéEÊì2ý.k'Ûé­7Ì.愜[§“³Ç+.ûçÎFEJA_)dŒZ;dûÛÉZ>ø4P—V òåûB– öÎèlÂ3¿¦Sy£.‡B\ß˲šüÉû½[‹m-×GG!›#0ÈÒDƖò}Õ³Dë[›‰«W˜´°lÕ`O\û:ŒÀʈ”8ªê£îeâóÃC…@Q½1¨°øŒæ®|Ÿ :ga•k¡ÉÂõ¹Ü¦J£}ZD8þƔïN¢¡¬ƒ¤÷nÁï_© I \ɞì+Äúd3û׆N8rÇÑe ò_:E矫ó[‘•ƒæbýE9F\ÞÜ {l*él;â~ŸRH·3#OL–'ñk‘žÞˆ¨¢ßiOÇ>ôXOï˜Ê“<6zsëEº48㨠+sؾ·ºùÆÈþû³8ᤨ¨^TY‘Wj¯‰M{ߓQˆŒ(ŒƒÙ?Ÿª[4()¦†8ôèô„GÍ Í#q¾÷Þ vMÝèAý}2vF›Ÿ—ï'4vDžï¦Â4Jg›J®kãw %óîÏ¥šì>Á©C‡tÖ(!¯ôbº½ˆ³"ØûWÌZüa0Þ¼C_7}öå‹Ÿ÷.E¼vˆW9 M+Š^•6¨© ¨§«üÐPD.·.›‘€gi9üä_í'j¡[ +‹ª¤P;¿ Fäà¹d¦Íef›šGó|ꚋ¡˜pêœhž¸—‘óòCñû ]#‰‹Îå†Ã}ÂԈÜÒéÈڀËj ±û­È¨,–Ú”ç ‘¼$FŠb;íËr'3#¸L_5"z_;½ ,·¤)g(Tìú ·pˆÕ]×9Ó{ +Oõ¨Ùtʀ0w«†…•§öéjC6ۘqHàYï%÷ê}›í‹*LJ4quáç8aÕä*ÕÐf–kÆ·7+ +Žr¾¹E­„_»“p©-I×ÿZ¡ì{ó‡äsÖX?±Nµ¨¨2v#µ5†ÇŁ/Ch­¾Å,nXGXMŠó†•žƒZ¢óTNä-¥‡—>¤0Ð4Ó¹nÇhžâh3Æ̉w&{SIBÂÒf²k0/‘—Qè*õx8ÑV²³C4ÇÁ”]*Ç+Ëbó‰î‚é§ãF}µF£d‹¥†Ñ~+_Ç7 +¤ó$”ëzÙI6ڟ(zÕ­°p 4-T–ñl°I~ñ~µ ¨óÕàÿ`AäÈ{@ÂÃÎ$:;÷;¸º¶sõ±!Í3¶2ñCn† cº{]Ê¡f¥²U°€Áúâù¡ŠÛŽý +äù<6ɞNú¨6ïe§ìáR-Ö"ÒYÍd³¯?zD+ìeÜcý”’têyQX¬bx´ìî4ÄÎ$·4J×»ô³ŠúàÂÙ®n'Ã(¢Õ¾`‘s5Œg†¿Ðÿxß 6³·®Ä¥•/^ü•÷º¥ºáë~K}'ìc|EF÷Ó*óN-FŠË^í檚ªôRIžë^Õ£RSzEGë×fE"zežR²md¾0Å(EŸ_Ó¬ùh¡?>»Ïÿcw†ú<7ùq_aÌâaɌ ¸ê¹uqèUÕÙké£rM€ñX¸gŽLõS û…v¥êyªc^ç7-í»ŸVӝ¸õޖÙRq;РͬËÉN=·½;‚Z¿»êF|®9z«“{ÒY3i÷¯ öt~?iRºðLø"¤RcÌ=Y@ߚþù³ø­ ûd^ÁZZ +à|I»¾ë³pÄÅÝÙ0:ÜàU]€œqÌ7äI] sbò¶E®eWҾѦÈñ÷s¥Å¦‡þuf{ˆ!ÿ£ï +ëïnÔÑãɓÄû±0oŸž't©-Y+gI‘R’zØÕâÄz€¨û.Œ½ØWXxXúÕpÞ¢5S,õi½ðC·ÒÌT— UD°R U½–,=„áڟꇎAF.œqÄUwí˜SÁ”ªþ +Ô8Xó6g6½ˆEE´ŽÉz¹ rŠeä‘ٿ㬘<ªwÕY7>¨þa’/::Ðö¬èv;‡(ÙÌé6ÊîÅTöm0uЂÝӅ„Ö¤££É°¨z25›‡$Nn§A_1”qa3ÝÜ´BW¨òpw 2¦W÷" å\v~‚îü¤\…0ȃGà!ý¤-öp׫ÖõÏqŸ<íf[" ¥wt°Mµ°ß°usˆwݹH^éO”a›°V?Êk<§»ˆ§¾ H½þvåg¨Ç×àv2ÌØsݾ‚‘/qgŽx›Áo·u@SŸò×Èx¸=j`/D8åeî«ÞU·é½çšæ66Žv±BaUƒâsPíj2ºE3¡rÀ¢VÆR¦’“µc¸‘ȰɧXÅ-׆¿ùê‰0âC‰ð6²ØÀ,¿<þÚ²=`¼ªºI‚N]ò8Ðô(#­&ÒrÒ¸°˜^¼sø\K˜|iú‡ÚL´95Óÿ„Ls +endstream +endobj +1134 0 obj << +/Type /FontDescriptor +/FontName /ZSFFXJ+CMMI12 +/Flags 4 +/FontBBox [-30 -250 1026 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 65 +/XHeight 431 +/CharSet (/a/b/comma/f/greater/i/n/o/omega/p/period/pi/q/r/slash/x/y) +/FontFile 1133 0 R +>> endobj +1135 0 obj << +/Length1 776 +/Length2 1478 +/Length3 0 +/Length 2021 +/Filter /FlateDecode +>> +stream +xÚ­R}<ÓkŽHå¤S·Ê[˜ml˜:™·ÅLN^RRÍöÏm¿™-JӔT*Ñ(I”C¬*y;彨¼¥&F)y«Dz‘óŒNÏù<ŸÏýÏ}}¯ëþ~¯ûºo}O/s" „\׃€#…âjä[4ZÍÀÀ‘Q¹0Âr¢r!ÀØÚ⁏°–mMÀYpVjÀaGqàà.0v4™Y"âÀ4* P¨Üˆ)ïA£2€Bƒ!n + °eöDØE@œ=¥†Á:Lã‚@(f©YÌZre!Àúk™Îc£ö@œ¹)` ’{ùØú¾¹ Áð 2gÛÏõ/šÊ„Q &›Ç…8€‚Ð!ë{éVè«7 +D‡yÌïYW.•ӈ¬`Ì1V(´Õ×:áó!º'Ì¥…€ *#š«C,ú÷NäñÍù° ¸{88“L¿>ìçI…Y\ï(6Ðÿˆç0æ,ˆó?…FcäBùú¶ øn–3‹†ÐaV0Àâð€ÊáP£ÔÐòVXDcÌ¢C|ñå†-P,„+?äÁĂ „£6ûª4XÀ³µ¿!X„þbå$û+ûï:8 ühs¬0Çâä#14°Æ¡cÿGHãq8‹;÷‰ä9}ÃA°çœÖe“ˆ•éy[ª…¥év¨Q©v'çæCoèçq-¡V(|E3í5¹È‚„ë_~ƒÓíe!|¢Õ¨¾Ô$;ÃKEFݱS±)«¡æffâ+‰Þ öMSY÷šÉ¾=ÕÊW݇1Ö—¿>¢”ÿ¸ëË»}aûï÷K‰èk^¦©dU¸§B¾C}'š?‘Dr©iَŒÉ%3’å5½ía=êé¶IY”ù]¿ýéOºš*3ί§>íÕÅLnñTXµ|ϺñEgAsqA öÀ#‰í‰ˆýÇ°L«è}=Ž'ïö9) +˦u25DÉõüS½S^t³G†ù¡º‰€Ÿ¼º¸5ké™ÓƒÌ¶B3S»†™úÌ@Ä!æ‘øœwãTr`-âZRórpÝgߞ7‡œ¶kç;ÜqÔm›Y¡•ÿ0«@KÞvô¥ò!ú×çÆS¦}QzqœÔ§2xôàp[ë鑱‡ó:´Oˆ©C•J©¯ºmP‚Þ߯©öҼ̸Õ;ë}.,­¬-Y!HxŽÒ8…$¤Å/à”é{œ P±¿Ú§ö…T—’lã5Ü;ù‚yXºvP ­#o9òÁck§¯‹ +Öó‰Ù³¹b>KWxש©içUrwð©CW‰‚ÎûèLxÄ3tJYàXõñÓÏê%g!åÅUÊîX×@ŝçWélÃÏ`%㫽Æs8?™>ö{ŽRùԖê1|Ó"ŸPÙ؄wyLEžWt³æh&ɒ˜ˆ'f +c$“çËÁµI¹›ºeªe˜{7ù²ó +e û“¤êÊÍñðʕŒM’¾Ÿ·#b~²¯ªtý¦Î½Áª1Þ±¢eE„˜¦‘ºŽ]Y ê¹Êá®n#_Ù\lËY¯$Vþ8àojv«ñ»Öæ­ÙÂ&ßõê-ùãÒl(áÓI›r›Ê®z§ýtئÈè4Qri”¡÷œ!ªR܅ìíùÍH¼îCûŽÜ8LCã/o*Ž”“ÓËj“ +¯OÝpAKX"Ôvó Šo$cø#7>‡"°bûOyޟK´ŸÄ¾Hä —Eúïþ”â­(c^µ[üçú*Bñ)”(?(lù£O!ÅWÃÙÞÏiµ¸rH§wÚTpn7lÔÒzò¾®Mëڒ·AÌR¸':|÷%±¶OòÝe˜ý7Ÿ­µ¸¥II$Ô¼mÌ^ý¨Ñðºª]ùvq§8¾ë†ÛÛk•vñoÏcعj<¾{ ƤÖXVZo?"üÈ{@J."¬ssâ O6E:}Q’Ò²¯Õ +,xÒlw| ¬aožõ‚„¡õ ‹Ø5ÆÓª&©ïîY>ððM>Ð3Ö_13¯sg{i%j¾ÓdîopßxÌM俗[X¢§4ì²Ê\W$ªëĽšjn*Í[LêÝcívÿLœ•U†°`«<°òä_ƒ 6JsŠÛƒê–Q,nôŒê葎ç>+Ú3÷1·…¥\a« Ug•*˜éX7$Œ]аU?˜=í÷FÞYÞXP–ÊŒÖÍ"3ÃýŠ'¯6[š;þ€Oíß^Ð6jv;âV¾ß¯á>_Øo©^qªá/ R(S:¯uhÅw{¦ïõæ;è +eÐDžœ5ø–Œ‘óõ{W–£ã¢dwâØÌ«r§Ú˹BZAÕU|_·Xq«þ_8q°àÙõóמº¾ã,gueY¦Žl>»s~K(0e2¯_6”ïòT¬QIZ¨'N¸w¹­­£?é|=d¦^WûDKxásy‡ã(4¿¾Ô(§oQÙ¨:³þõŽ–ì­æQeòâã—vx>Óýq· ;òðƊע{7Ó÷Çä*½¯œ©ì΀ê57[ëÙ¦Mý¨_RWJšx®Žmäý²?Îø%¦sIài⮼1áùUnµdï öû ÉôýCIE!‚lrëíyÓþ- ŸŠ<žôHýßEnJèRùp¬^*ëø²â; +endstream +endobj +1136 0 obj << +/Type /FontDescriptor +/FontName /MLNBEG+CMMI8 +/Flags 4 +/FontBBox [-24 -250 1110 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 78 +/XHeight 431 +/CharSet (/i/j/pi) +/FontFile 1135 0 R +>> endobj +1137 0 obj << +/Length1 2148 +/Length2 14571 +/Length3 0 +/Length 15715 +/Filter /FlateDecode +>> +stream +xÚ­·eXL¶pÜݽq·àÜ5¸mww Npw×àî‚»»‡ A/ïÌ9Cæ|ïÃVÕ®]«ví¢iJR¥ÏŒÂ& # È։‘•‰• *¯ÂúÀÊÄOI)ê4t²ÙŠ:y¬<<¬ag3ÀG+'/7/ <%@dçî`afî ¥ý'ˆ lt°06´È:™mÞrZ>ƒŒ-€NîLakk€Ê?+*@G ƒ Є ž•`baì0šYØÂ3ÿ#$mk +pý{ØÄÙî§\€ŽoRš7IZÀ›¢ ÈÖÚ`4…gV½í|3ùÿCêÿ&—p¶¶V0´ù'ý?Eú¦ m,¬Ýÿ'dcçìtȃL€¶ÿ7Tøo7y ‰…³Íÿ•v2´¶0¶5³Xþ=dá(aá4Q²p26˜Z;ÿ5´5ù¿ouû—³”¢”–¦ý¿ïó_sJ†¶NªîvÿÉúOð¿˜õßªã`áÐaabaa} |ûùßßôþÏ^â¶Æ  Û·†àà:8ºÃ¿uÆq¿Ó›‹ê;½¹¨½Ó›‹ú;½¹h¼Ó›‹æ;½¹hý‡xÞ\´ßémáˆýÍÅÐñ­=-­ÞCޒ½Ó›¼‘ƒ¡±ÐÉhêô>ÎöŸñ¿¯ÿL¼ínüNo'2¶p0v¶1µ~ë‚ÿæxÛÃdýöxÿ£òO ÈÆæ]Ž•åÍÜä?¾©›X€ŽŽ½ùßó¾ ø_:¬ßDߞ‡¡£ù{ãü³ÆÞùíÕ¿§y«„é;¾˜þ…ìÿ Å_9ßø9ØþA—w Öޓsürvøk··³¿ð-ÿ»ûÛµ›»Û™mÿŠxûk–·cZþ…o•±ú ߊû÷ÑÞ.Ä毣½Uõ=3ÇÛR[ Û¿Üÿ9;è]æm1迦ßc÷>ý–ÌÎÐhû_½ÁÎú?£ÿÝlo{ÙŒ¶…rþkÌô~Ñìoű³vþëŽÿ©§ý{K½Ø;ƒœ€&FÖÿµ-ûûÄÿéIÎÿ™ùïxžÿýï`Ö®û¯Ëb}«ý» ÇÛ"G Åw/Ç?1@—¿®Œã-‰£Å{dz¿ÞÑúï.de}³zߖã­hNæÀ¿šù­¸N® ¿¼åpþ ßîÙå/|3sý«GßV»ý…oéÝÿ·"z¼Ë½eò:ü{«ÿ÷sDDäæÉøV^Əo–º€@7 1üÒ<Ș/ÈòÛ÷RñüePt`"fM± +õÝ3‹q`ÖE£²ötëušåiÈûPû$®OŽí^Êþö±)s/û.ûi-š¿ÒäÝ÷ìÈîOPÚ¾Ïþ>åSü¹>Vš¨U0y9x’«D#¦z³Jú¡GÇ¥¡'=ˆ“KS"ÍZ-4¸ŽŠT5ž4Œ=tÍ51rm*ÐÇ2¶™~å +ÔîŒþ›“ð¢ûûèç'ìŒ9N=ÛɹóyksÃÈ()zv’¨ü¯é-­O•ÌB?ؾSŦØÎ +d$rŠ7“Çύná{5dú0¬Îåȹ~dªÛ/Ît\ÅSÐêä-·¥ß11üR_³mT8mÕô+_bkô:Ìϙ¶¢Q^Vt„³¹á[5m»On ÝHeõÖ7D\‚I‘F‘¯m²ÜÕ¹®¥BéF¢eTe¤bEôo)M<1˜žÅŸ4ŒÃѕÁDmIæ²iÏ|\.Uú ‘TÌ-Çöêpœ¯îbk¬/Þßm^éshÆá_ãÕ"Oû +ç­õšj8T*µ³èÅ@ŸThCª#œそ«i§Ô7D  ªÖÆõKm¾Žk2ù—ªÙJnJ°›þïXóČq÷_÷Uswé-S_ÎôR4Z’½Ó“'¦çæõï´ÚL?á¶n›h9†³§Ý©\dÀ¸5œ ÓâD…Æ̣œç­ÕâU… øL]ÈÚïb³'­r˜—ȍÛ‡ƒã£òâ³Û)=ÞÅ +™ýÄ Bô’”‰ýb›¶ÿÅâckh1gÈq XBø½Wqj=©\Ú¯-‘pL –q0ôŠI«ÛK@šö<ÆH!‡méŽ\à`ƒå:¢A+ô ' ³À¼€ãÇ+«Gëºëd–ÂF6\'"b¥#UÚ´¿w¡ƒæ«UrÚH…|áwìÁoŸSê ¯ªP!:îñk’^LÃ&*¨iéÑ×í‹$‘^qÃ^.W<–©TRîƒ!)ÓÚ TóœÐè¶Îü°q†%Ԑô,5¹([ÐãEn:…Ôᕁõ˜«ì”q¯uc~Jh ‰“Ùð +M÷@Ç[%P¸ß fü~= “°V¦[Ë e1ÁÉSRà*4´[Ò¦Â4ë‡~j´DXÆâ#†½ÄzÖ§pÀ )‹w¾¾°ü@ +èVBŽc„€xjvV.²‘‰ELyV£ Ãíú,ú'(BÛï‰Huó(ʬsØC“Ï•fƄÒÎa$Ûý)“§rœš†•a˞õ„†Q7T%{™„±ÎéO`²ƒ£ˆ‚Myήìs%]  +8˒§‡µB2£­OyäÝeí2Ëú u¬ðôŸ€*7ý\Š¶AZšyѪ*SóoCSJQenK^ñfIM#=hû&EÍH[ô¸ÍZΜ‘DA±jßü4($¤MMQU98y<¬Šì‘/5ƒ (õöMˆ¾s*ôÜ,ÖÔ!h‹üY›ÿª2K‘¿kéížBúù}ƃS֙Rèz—a3¸Ȩ‰Ã5ؼ Æq”¯ZLZ˜k… ?—ag7+—G?ZÝòùÃ3°›«HDàÀ¹WÞ¤IýlH[ïFøYˆµŒkp­«–sªcª®y_~8ç‘5h4ÆÛM6¥`±p&µØäðÅ7Ì=~§¦ s—S×ÍýhA§Ðq’HøøÅ4®Ï–·û¹ØåÏ9?ê9=Pr³mju؝sXG«V"7tw+›0Ç;âT‡·!YAØÈ×L~»å«Úµs³Æ²¼yØuºØ³﫳ÚòD_À¬Tûô‡9LânŽÅ(úEï¹v;.î¢/lc¾"¼v_)Diêû¾T šÅ&WWÜô~wŒ¹úœ€\Õ'¥'É8Ž2oésÉûE%àK +¸WN | B/²VKóÄYÔt‹_±¡7‡¨%•fŒâÉ)œˆä3¬¼Pò样翶©†ÄŠ +Q>P 6ˆ{hâ5{ߏj‚©£O»TðmþXºÖ\¢†]hk? ’Sô#Î' %À­-§Ôã>+5ñjž¤h&Œ`u›œÄ‡N»gc”ðrCNrã&øãH»¥9"¡8ƖPÜÇ|ÒCª’Ü«uUZ=éŽjS¼Ã2¾D:rj(‹­I¶µ27xԋáðŠä†2?oÔ/=I´µ¾œ$EE¼µ¼pSA^ž’A„M«µ b£zÓÙ æ$ =ß­Û?Œn1£š6Zîyö69†+ùȺßuñ^º.W͐ڍ¥“™`rŒœó„²Ðû¦ ++H¾ D$Ýí2k“@õêŽÜvˆ¥Ò¼ô¸Ž-køQñjràlÆNgÎÀ_Âç‹-»…y7Ë.´¡è«Ó¤Ë-Ÿ› á +“Äì©!=ˆáÊg;`>mh û.čWIÉL ݉c" áu=Tö÷Åa,=]NÇô¶4Ép˜%{@Z-×ä=‚ÉÏýŠàüΐÖAóÍLÈÿ¸¼ñ†qëÛÖäS[ìzç±êJý¬¨vp\ezÙ"U?|ÐFøÏmœÏ|1þ8u:çâ4x§ZÙ¦Æ › ­‚¡©Ð Éøvêîív~#AÀÌ[£õräÞBtƒyÁ +oÇÅOÆEÓkƒ¸œ ĄYf­$?¬:_ikÒÁý’ÅŠêìºÙâDÞ0±ÊBßçuCblŸÁÈqŽ¡Gº¼Po,zÎ:›½s*-Ïø€vœI Eꤪ†ã;ʘf3,Z=šþýׇÀўãþT~ý–Þ½9¯æzb 4äm^™††„i¢ó ÑoZ‚㐮è¥Ë¶ŸÍ®; +¹ò<œ > ¸½2*ÔÉ/³Hš§±4kè@¤WAîl^Ý'ìý·Ø†Gü‚¡ûWƒgìPªÇáE×uà‚¾8ÌzûxŒeW‰íQàh¨záÙ¨/óóç'lä´ÖŠ0±ê±n‰ÔW¤1$Pǎ_uZîÓÚEj?–pG. ã©CKhÁ—ШÓEY.µÌñ°F)Y“;ƸâÍ£±7]ˆ@·ècœÉو¨RÛ*ڃV檹1°Ÿ¹ëmlXaö|Ì숡äNÎ6„YƒI²z>Û뵏Ü̯Eýó}1ËS¬ZÄo§Ígแð z¸ Æ!ßÝwÅo)Þ§]ĝٚ'I¦U˜ ¥yp`ØÛ*nbÖÖÕ94ΠՍz†ã"5öÌ̼­Ôx`±]£•§ûý9ì¼\0Ø­$û%ÖF÷0‹*Ýå‡Q!×ðø ÷Ö1ÎØ«IÜFæø…¼FúÛxœÄÊ»ý’™k½Ê.Ø)^Sݧsź‘hÍ×ÖP×W¦mìr±¾çžUCÕ*‹j‡UwYDÀ`ò¤¼ïfÁªŽ>Ù=a7þœ/Ò+Ëj-Ùcuùy*n4bgsÑÿxùt[¾ú…^)ÜÎÀ„*oÔôڛK ™!’ŽË«àOÆ2C$ê*³®œ5BUݞÔÌ lA:/Ú)×¼ÀºŒw³K8(k…·æ?*”—=:Z¨ # +v/Dš«J´q)i?zUÐ&×±¥ên™¹½–YYž”éð Özèù9ÚN"—Á´SMnåo¨¤%Ô2ñ÷Ydjÿ·T™¦po¨«©9Tª¹þã ¼5œ·÷ ‹æ¨€²I¾Œ= *!‡ºØ(ŒŽz #Fþ¨V#Œ|¶ Åy}§'º¦†Æ?ÿúHø9ôÁ!l‹Y۝¸ Õ\›ÙGCi©é–ux¹;[ŒuÈÿ«£&¶¦V„–{Þ³Û@o¬¢ r>thÉbü\ε¼ ÌõW>:a—]63²mb±h´¤q³ê©.–…=_Ú\n` t„ðì>¦ˆZ/Æaõ]Ë#l橏€5k¥F¢Ó;j§k 3Ž¬ðÂá6r緟_£Ž·Hoú”ymDÃUÃ|2sºtÜ4§k·ÒáÇ^ûîfð‰ú7rUhâ)Õ ÔPâ*fœüV1Þñâ𝮱÷3zG¦ï«øÞ òQ¦Cç/C1j(ÂÓ\Šˆ17ZÍì˜8ùûn¬-ýYÄ?ûL/ð â6é/ÅAIµF +_.VÄk„Ó%DSŠñˆhúî mL™I¨X2Ÿ!!d4Fu3È6Š2˜¦¨ðþTì³vÚFB¶°ôŞÂ|V‘Gc’¦¸<Øyš‡åûTÞÇu5xE`o³~ÉÿÈ NS73ÿ=ÇÊTFU<™Ãº ¨{Æ +Œ&wfú _ûü'»94ÚX2ržå¯µ†ø‹ù¤`Ú£:Á¶Kí>¢’ÍI Ž(hÆ­¬¥uwlÇþ8¨ï_¤x°¯€ïp‡º þ° &Pã•SK$Qk1d؆Üéyù¸dT×"ODjÊ[ôªa4OILaYMëUîQkò×~V™¯“Q…Ý/§Êýqä&ãádrŽrN‚1ŽvÊ;{2ÏÙye÷ÕïhU¢0Ú+§Üx¨ CËL®'ÌT;iØ¢yA½öåS֐ ]Tÿj8X¤qôÌÎj2¾TÃÁJ‰ä° ¡ƒú0b4½DÙ0Wô³ÃP¥N3„¶}ªü‡À{ÞÍ€ŠßË´;T N¹%_H²Ï lH4~û®­‰Ÿõ'ÏoÒeöÃyžûy¥ž1þ˜²o/ +¢Š­QŽ2PÂ-id-ã?ò½=ÈÑáò¢®¹ Z°Ø¢bºv€ºÂàRx“,{ç r*°nŸ¶Ø¾‰”Éú-W{ç?‘û/]WSYˆ³XÇ6ˆ~©xø ï£Gë³ÇÂÏj&ñ]ÂÜ©Õýù@+΃B2¹2EZqý÷¥ï¤Ñ“Œ¡!Ò ·>,&­äñj¹ á“e»ê€Øz°àhCË÷`oç3¿*`ûdb…Ÿ©½ŠR•”œ…56·t¯8ŽÐ)ۋʉ#ØÂ'&Äa?Ý®yJý\O¾&ñôiÀ²x[×äÞR´I,ä|½×0xÖ(4‰8N¾ÕŠMú»É0>V *¸Ý9%˜ª"á8çȒ£t.(~L갖œÌڕŸÃä»ä8Ì] PR× kí*úƒ@tWñÐÆ#ª–ï±F» »dS›×=5 .8Nó„uF Dƒ0+/O>¼°~‡v‘_ƒI‘·Þ™=ã Hû–¶ÿŠ— ]«…³P§ß§YOTùê(´Ÿ·*XhÐH*ÿ¥Q<7 ªÎßl¹yi¾Y-P¦~µÛ•UN’|Ö%€òGÿ[¡i½ŽyWÕ™¦•*¡{"¡xîGz»ÍûC²k¹öN–ÛÆ)·‰í]9^³Ü¸.äƉ¦ßyÕ~L<ªô¯ï¹EÃòªþÙv#‘d‡.];èUm]¹ý–Ù‹kžŒ4ÙVVÀí©Þý  ï!{“QrjõW´¸U*æó9ò&Yb—ÕÀ"µQ@ñ#˜µb іû +3” ¼‰y=Šæ:ãÀ-3¨Æ°³Áx§£X„$¬ðéÕcç»Pó#Os}ÁM½”˜V9€ÕÚ</t´á•§äzA‚‚ã¦ZB‰Dô0þç!د ®û½ÉGbkۑf ýa±´¤%¦¡Áúvìý¦XÙð4ª½¢þ3þðjGb]JÈÖôþpÃÐ%®xNYºŸ„,³â˜<´0ÛÙâÉÿTúöYa£ÎçIœ| h͘;Ü®ØEc¾Rô2›ÂØ{[ˆÄÈå tK̛öU¶¤iúàÙæh”=Þ¯kâÕgyd¹šJ¬‘ýN€Gøª|J;Ì¿”‰Ü_g1*%l +Õ%ueúöÞÊ#©;¬Q¬BqüÄþ”ÛL€ÛDb²8$ßyš:"Õ´ÀíX(Ê+LWìükµ~ã½O酡’âé$Óç9]#MÂBÒôE+¶&©"¶ìQÏ֑ʮ)N8í!ê­#eõœR0c³`Øçj¼?ì7º»ZؾáiT•(Z·ÕËxž$#›rP ™^Újp8‘—®ÁÓÌÍeÃ¦W„éªë_¸lŠGm™8Wýƒ¢/·n¿W£ãrïlJË^E­d]ØYŸ.¾Iáÿ‰ ÉëáŽ2sÖëE|åy‡1·dé Ú#äW¡¸Ÿ»ÎA!³À¦¸¨©àˆFû#k˜ãÅ'ÙÑÆ¡poP®WËa¿«ÌÔÖÍ÷ÒcS’Wá2Ó©¦Žßs4VÝÝ!òÅ׋)=‰¶Fí¼2¬KH ¤ƒ ç–E™f­KïÝėöÔ`g/jšArÈè5Á|Tƒ.™Ôš¼˜­DÁŠ˜º»4Îù£s= þ.ñ1ՏüpŠÜ@í_'D֛ŸR-îÑð=¾Ÿƒ‹(ÅôM¹ ³« Æã–Õj£¬9l•W˦(”ì¿Ù›Òæ^;+íƒËxL܎Ê3SP39z¾JAZAJ#I…°}é䔙åïŸò*¤0’¾gxµ3̙¿"-¯zÍ2‡µ+!ûmÛÿ@‰±ù¨YÇ|xôѸ¯ë¾X‹:ŒŽsèv$Þ÷²ðË­¡Í! +Ii…O’ÊÑÈB"©vMù@×¹pdK.iÈUcD«Ú›&`ÜȗQ +‡Öz³ÀÎMæn&!ˆ5vª›bÏ¥.pfÇ%Žçö¥Í8Ù°aH.Ã[€£™Ñ®F?1ešvAp‹ùØNi+]܅™çÿQâr[¬ybEÙ6þÎ.‡ï³{œP„"Jº;A1ƒÜ±ôY9œe4ò©m2Úq—r[…™Óh–_͋W¼ÿö÷ºËßÂê—5–>¡vy0Uæ8gå6’ï'½Ù®Xmp~Y RE&žð›€rV‘N<ào`àø€—UǪÉb\Ά5³vÚ¤I.Ãُþ’s0›¿õí­Ò—CئẠŽ]#.˜Æ¨^ýt)4MüE +a4óHJæìä÷ó(ÆOÌù‰£c)»?–Mæ1ӎšm‰z ź.®Ÿ#;Ù~„]ØÇ!«Û”`«Hãמ þüíÏL•/ó¢ÎM”„—w§D6Þòá7SÔ.˜ɵÒçiÕÔq³+iË—ä§ôW¬Iá}úˆÕ¯dÛ!l3;轞ø=ýCÂÈðòL¶;+È\„A 7 ž1xÕ¢Uûž’ùçØEy)ŽøMQ‹hÕb£7…òÌ1И\/¿LÁE,„ +Yã$ÝäÔSx-ä·,gQòÙþÂÀ¬õáØZ/ƒÞÛb9•"sZÚø¸?q^«M‡Ê)Q„\^jŹe•X©ú`'M¡2¼Ö¹dHò»Ê?@ÞìÁ§âXç /ËZ¦rÍ¡úÇo¸èmDqÚ3;!Oµ^»#FßwDmg£\gúžÊ™yNh‘ٍùDN1–˜R‡Wø©±2 +<¤Hˆõ@îí€áÝÍÖqæa°($á1³,²íµ½ÜŒ ;ÄU¡ƒ“–%'ÞGWÿUä€X\Ú¬ûìf6‡úUÜiàð&R»úFà={Ž5Ÿ- ÅÖ6–=¥Èƒ ¨ÑDi×åXDo†G9±¡Ž¼" ²dü©"ÍÏÖƉ.±Ø§n3é3ty6%¤uA” +gàÞ龝¶A?²>õñ¨øÌnèçéë·Ace®¾|NÒ] wŽ½ÓŽ ¦gG¾`Ãt=X|W’ÉÒûéþ¾å¼8'•¦þ^_îÚh00ÚëPäC‚d‘Ú.Àý.8ñÃΒN[å6©ßÖS°g-“›îJR”\Íy¾yeÖ9u˜è-ù )8¦…ñŸÆãßjáh~˜àºu"Wa5\F;ãGg…Ê*Xր,pnîî‘õæïxÛg¾g?×ȅ¿Ÿ;èáÉoôãʧâ»ÃUø*U¶WŠºk¢%ƒEzŽE–ô¼ŠJ2cï„ö [GáHj¶ºóç®ÎÚÿÈM.ÿ8ò9NˆòàØç!Æ>_iŊGL߄u܊ÔäeNBEWv9K€ +°Ë[Ç×mª„’p›N4W9*‚_¯­U±äP¶Qh`ŠéE N$›œðä·'åIJ~þñ +'ãõÑöxˆp3=¸†Ç‡³“ÈIÚ7,‡÷ùÅ>8§G{èfß\v'«HM æÂ`乗7þtá¨:y¶eµ²lɘ®Û¿âDÓßð¨#s¾âÞ=°YL€1l¸+2åIõ ½~Ž]šµ5‚A¨ùã~pêÉE+~ò`·ôà/ëçß›Õ d±kê=4&Ûå+f×eÈúÞ3çz3Â-ƹFß@Š>oNð…­D»ÒE~6j¯Ÿø‚•Š"J¸dIô¨[¸û…"I7±õ‚¯Œ!cÊKÏ´Õ̱¸±‡e_–4f„žR:›«ÜKj B€Ô1c.2ýû'¦eXƒّs|K]¡y0CóyÓ©»½6Àð¶ãŽùÄbÏôü%xÊË烣D.õ5rºA›XҚT¬Šá®k=ÌRà©yઊۛäN–7Ýyt°ã$=›S¦íÐQ“ çÐW7 %£êW8|‰ªÝåÒ­ÎΣິ~Ù|„ýÅRMù]‡xOÌs®€zýI" ïòŒ½:M=붯 0¯álçÔOΊ,ñß>W'NÈ|&2k³q÷¶í¬DE—Œ.‡-z + ޜŒˆÍ‹˜”–Úˉ÷œ7œØÅô&UË&¹®úøq+ƒõ‡®M'¿Ô}üYq[”)]9køtUpÆé„nÑ¢$Îl©˜ÓÆÐÚ¥º=¹Áâ\H«[3rèDçA¤:I&ÞEU´E”æßõøÞãM‡ó 8q~xX1d1Ïã3j0܃BãK ‡õï‰ôðeÄ|©£å Fÿ µ¬ìúµqBŠ'˜jð‡–oƆFþXŽÚX3V¢Æ~õS'ñ³ÔYG¼Ë{ªgÑ3׍Úùv^vܐ‚~¿Š^;ׇïâºuªÄêJº´g¥w Ü¼ÁÂL–Ð »¸l#24ýŽ¬¯(9ê˵C${ÒüQ.ù.É179èüšI¿±¦Ç~åm9 ‘ +<abO‚‹`‚ i½E˄z¥½+ {!5ëèc‚h¿ÿ®Ñdu‘FGþŠ.VP²eq†b!©”4È­÷…äV¡&crÁV¸°aÖå`mÃ}æOSãه›œ² ÇÖ>Ÿ@Ž€ý|ßRAç\K›6ßÔÁ̱žßj¼Eú§¸Z ۇÁ»yþß!Œ?Gï±³N…®…Imö0O } Ïcqε‘â¡£ã—gÎuû=ô34fê3çö]°Åì ,žAÂ4ýQ7‘»ûbʼnÉú$¹:ʯ¹áÐÐs‚Š<”¸P4ÁðZí†÷û.ˆ}VQ“ü£DeÌuƒ¸²ÒETΊ½ s2_`ËúQ!Õ]‹)ºèC¬ªíˆƒêç«<Â~å„ sÕ÷,RqDÝQ甌R³w\£ WՌáHÃîØoÿæÜvAÓ!ITuS–㉋ŽµÒU`ɝ³#»Ø0¾t!Š\Fæ—u‚ÍbA ۗM{„0ší~¥KKÑÖ:4©LГKi%%úrw1·\™Á⏩à–.±8ä£6Ÿ9™g=ÄM²£¢¤’*2wèmdŒq×®pÔ.›{–ô :Ùõ7X_ÚôµX{O„ëI"ì±ã%;Çjú5›~IB›VÙö\â‚‡Ïc·Ïf¿&M?ìP à·Úá.„Ýæ'CÇ¢N s=t2‹NßGÃÜÙÎô¬Øc­.ˆžŸ4i>ÔÜOÏÕ¨Qœáî ½H xÃN®ØYs8-ÕÿpeÅ"kYÏ[ö¡·PUÁ:óÓ}ßY Go4'hïQ<ü¹÷:K³g3‰W­¦öƒáPŸS.ÝN}f©Cð”ÙyDCH/oҕè‹i¡6(—5­máLBë «Ân'òW|œK÷øœÀ¢t°÷Ïèô¿g6ôÂîTuPIAb¯¬Ÿ{@¸‚gR~K×®‘Û!¸ù„Ë4͙Cà,æ7mØa‚çbg“í@ ß´!—”i Q‚Wê¼.×ÊÂQD’ÂŽÚʠßOÜ5ϛÕVe/de1ÞC£pÃFm) ‚_I» + á¶ô4å_ǂ£0—ÈÜ`.8CKëèRp—Ü xµ­N¦¯7úøøe—‘Ý‹û½8¿èZ±Çu&Þeƒ7nüÁÿC†×Œ†_L¬…#¥á>ÇüBÆ&«•²wðÛv ÍÙås*ä÷s’Ö…!èUÍ„—‚:+½d=םN©S:óTEèWª¸_(.6œœ&uÀÊêZ0FäæÔn +z%4Œû^UCmÁZs¾a<^í¢üÄZŒ‡v3¾H$!ç·ÔA eÏ´²¼ºá9…Ø[…cCÓa´n(SžÚþø´WýpÊ3ø&/¡"¾¼HîræˆOÌ)×ÆA¥ÌŽy +!'¬'Ð'ÎCópt•ýõÝmi7†*H$ñ¢è™îsó~;•®·}8µÀ–­ s´õPpŽéN÷.Ûí@À¹Ï%‰ =Ãdn›– ý²Ù0bD²yNþµ˜Øe +Ýò±M™ ÅgßþàvºÁi·H0§ [½Ø9y¹F {$Y¨Ÿw¬èÑkm2V¤fS\¬éⅳir•˜ãNÆvÒyHLòã± îÊS÷|QW¶R(4†||ühÞÛªæRçÜ¿Èi +ÀuMstÆyeÓB"Æ«ñüj X9 U]ìRªPjW Iw†Ùü‰ éTu§„)„ø§šÅá`ètõºJE¼Qݳ9ç¨6Ç ç¥e Wn8ÕסRRA:KýøÑNJó§È¨9{ÉWáüTDü²º=àÛªh­©·#Ü¢îpj¦ç>úüNc90Ά>¦VA팈Òäa&˜G}~^cß±Ù{­£¯…ó}[ûËSudD´E^F>ý1ÝY Éú,ŠÄNPÓM‘¾ÀÞ+ގÁg\Ò#Ç ¬/¹ÀiîxÊJËÛ´“b&UR {ÎÏç‚mOùePþ›Ã(Ž[¸„¯#úX#O#©#B®ë(íMnkúF_lá7*L¿D´2+r華Yã°YûÏ­ŽLðWæŒà%¼)3ƒÊ“òêŸtS›}SÏÕ7UÕ!1$´–Â¾™FŇ2!$Io·&6I +’žØ‡Î[ǯ!ŌÜ^t´ul¡æ!W§OјU•€Þ‹…Ð ë"Àg²PO_ç…;ª±eD´wÒRUðB²ífÀ$لk{²1°¿WüéN™ì€`÷øA’|€#x¤.ÙçˆV–ß•‹ÀUÆ1óå&$õ>ö<»ßHLœ*éáZ²ß¾㸶ېSZ²Ø:nÁæV]Š9ÃQ¡gŽÁ Ÿüt±q*¯‡+Q„ƒOš«oùfÀUP{¤‰—5G®¹:§üUmì„x˜ÂTÙ·3ü·Á™¾~Ð]Ò¯ø_˶lå3rZ"â%Ë°žý×R·éßuׇ"ˆS¤\èDðSÖ´»¯Ân43KqM„”[¸‘¿Ñ·ç’Y 2Gp¶ÍîráoHX$ìå•ÏL=ç'å¥ëۯڐÙÜžøUGÂji­v*w‘ÅFž¬¢Óo·óø°T„èr?ã3³×g¦¶(“‡þþ\HcëY …´iޘåmTw¬yïLb/­5…È®2zKÒ.мƒC þõˆºôˆŠzEö'9ïÝX…Ÿh0íÅÍÊ횲«ì§ßäìŸ×u[´ƒx‘ }½ö—R¥æ>’úVD[†Þ¡¨‹LèÝÝN\+>,ôæòÇsx4FázÒ×~*—¦`z’½è[?ZbDê† ‘a®f«·Ï{¾\ÛËìÛpR^w˜‹À¿æ }³ö4–¿‡:¯‡!Ë¢5¶S¼n4˜B¡!CêU2,а’çRõ\ŠœÙc´x±¢ü³ÚŠTWïv"—t¦Öò ;ÁñܐLµ\—É¥¥ÈÝ0+R Fž]ƒ¬¹uoýK'ì¸Ã*k/Ø’€BüHÀ¶ÆªâĕÁ͆mïtÁ‹(ªbö³‘ø_|‚¸tß}‚ÄÓéÂõxú%˜n \¾Ý—ûܟ¤½¶Ü˽ܩxͳøO¼:èqzR|Ô´äEø‘lw‘?içʼn6¶P!M=¸ÚÎÚù”Øý¡f?hˆÊ6Zlh2ð0n;ÿ’ÞA¥žFg{¤¤N‹ rÔÛ÷Á”ûre3•ª@ÆDdz˜ÈÃýÁ’xÖ]Ãmvã±ê#bi•š.?:©ÖM°&ÔýqT%&ÇÊ­Ð,ÔËéô·¡ëVÃ(™«(‰d*?K‚*²J8çÖøº$ª-–Í¾ÇM͍C­œ]µ45QLÒþí{H’ѯMÂ÷€Ê!48s-¸)BGD +ë¤Ç ÈŽ°¿™ÁÝC¡¹ñ”?ón¥Cjë0jßë·“dÂÞ®âG´ É h×o Î؃^÷ãRGTeÝA¥³+¨ˆM÷üdÁ„“hŸüe! OÔf 4¾ÞQAúÁ'ùA9 Žõ|šµÃ`nïRh+—tü&mƒ¡¬R£NB5ýƵži| 2ËÛ҉€vôÃP;tÖâ§JhѬmlFμè‘î°ã'•à© K!â«í”;)‘ÌŽ0lfªâÉêòï,Éà4†46/V⭐s©d©ÕãÙaÈZ¨2|sî$MòÃçÍ~©•ŠÝ+(ZcmÅ#‘2¼¹dÒY‚r¥³çxâSÜßhQ+˜¡¹›R³Çš”Y[!ÈòP3º?GîHÇå2¹ôÏnø'Ç:½>!lºœ¡”yܛúpHºÅa +ÄñçŠuØy†0ñ¬–\CQÒ®·ôúÉT"¥¹muN¡ríïGü°;ÝñÚÔǵ0¾çÀÜ°#Ð=[ß³•ÃéàXl7ìñLÄ +JoNê:<RË +ÑósMkn,t¸|OE`ç‡%‰1¨Iõµ;ÛLÒ =>f ]*¾„Eƒ$Ê#òLÄð ü‘±ØÝáºG$c@îsÚSùRa6X»î"ß ìb ÈV9Z+³Zóïž])t´æ‚KæâÃ865Adþ›4gĚøujù¥™<è¿Òõdë2#œéÖp¥ q…÷îøÓØä±Æ2]FŒ¹ÔX[©ìCó™4è‡øìv=mÛi²-Õîçù ˆø÷iX½¿À }‘•¨#[£×?R¢6JE°À;$þSzXà’󐋆ܩÒ'´Hr”Dí­ž´±'á\ZOáºwYD»{E:ƒg"XÙv(Ž£Wï3&'n;ÊH»V‚ihíßރ|+GKâíÀW‘j‰|jd2„j¶ùyAuåæ"qÙl0S„Çu70¼DW»Ö:Ý{ +J}¿F$FÈ[_ %É/Ûú/q/ za­rCùfº3í$`Ôôù§ ❪ºvÿVú±ÌÏs´¥“,ظá³Û–%…‚“#¹W rÌSh)Š¸lÅ"”¹”µ>åJº[=žq_ªê6@KM¨¡6L¼ˆcº{3D°R­ƒ—õS‡ ßŒI1مMâåϒlB#în1IŒ¸XÌX²ÒI@…§u˜å º¬dâMct…íŒÐäïßþ»¢‹@‹Aٌ6XFVú+’×,4-¸w©/:uÙî%¹”Ÿ]?V«Áuü‚Ws‚zù·˜Ù´Š¤³ÀÂ//„ò?ö×g[q±ð*RÿšØÚΫÛòÛVT‚Ë ©Ée +I½™QfH-äBW¿-á#Jfö#Õ´‚ësª¦hGÛ¤iýºŽ$¡½X3­ë߂KKSóIQJ°W¤Ä϶Уð +\`¸%1‘©Ò¼8ÓÁ½#@ +¦W›ÁÙLª¿G\÷ǃ˜¶¨ îì•áQo¼ „Wp$ôo¯l·|ڍf“”r­Ã³ÞWº$`Áô"q،½à–¶Æ:œy&æÚZ[Ôçb:ÁYsåæki«Oßîó=ø‘¼¿FñOÄü’šý¤ÖàMΙzœÅö3ÓP©ÇE`çêžxcŸÕjû©ѹ¹D˜Â.¶êAP› ˜>ªÂL=&²Õ-øAÎ7‚i~ÀÏj +qŠœ<²M ¥Ÿ=‡ž¸ÐÂf± _XˆN°†5ÎZ«{ #ö̗Ϭ;2î³dRñˆÈyß8œaÔJ¤ß?ßÇktÿ¹éxŒþF¤I¨#7—Ì®œ®ª†ÇÈ$žE£“÷AX»°ÉåÆ"ŠÒ«¥‰ô9MhÌâ˯þÕ1…Sí¯eæÁŸlGpUÚ2ã·t`,òì7nb.gF»‚‰ÙÂ"ö4D K·ìÚ¸?֊+T'±íPû•<˜i¨°LZàÇ´ÇÇ4ŠD>M…·5çrÅÆuWÁâDúÍì3vj®=Ç9E .•Y†XåðÿŒ'8ßö`ȉmÃpsŽª“䉻w5ª²O·×¥óÀ[”9¨Átô‹c‚?“Äã- FîMè§()}s¨ð°”–bªw™Fô”ì’Lúú!ãjSIiû)pf픭o¦ÑÉ?ã@`ßßìÇqŸ5Uªiº4¢Ã±ž®‚âb.¤9ây¿.On;Œåní]ôs½"B$Ü7ÛgàX·j_ƒí%cq%NìŽ!ôú“R˜8LgHifL[1 ¼ž©Î~r8HzÁ3ßùy?a۟ö«xº¦ãI´µÒ* ›AÆ£Ýðþ£½w8ãZˆC̑¸ÝU~ÈñãwK?»ü§øÖJ“eÁÇ )Ù]¿]WA)pñªvI*žj«5¼Ú4 +P¼æ5 WæÂîUÃI3\Óip`‡­c +ÏpŒpÀˇ®: 𸨪N$LJ´û*÷*@ø<+B¸–ÜÑîîúçBž®}VÛ]µådDǶôÿŠ™ˆ¸Mø^”þrÊݵ_gd¿ZZnôR™ýˆ;ù¡*švA.®!©ïë…XƒÕTÝâj@^8̃œÌ¼@ÑéÕÔhÞµ¿l5•íޟ"9Ú¾vAVAƒ ©-Sx=úíò;%8ƒí2¼ßLXÕíÜÂÞ3?ýÔ@&µÖeµ K×!>ԗ´¯¯·µÈôJÂvEzVµ—TIûŒëX‚š“×qŸPÁL =¼ºØ-H÷†”%¸SðéUc’ rn>únÏ|Óaí<íWÃ®Ô 1>Z¢êHO«Û£É‘ Hao…êWBé.nV6_ÝËf£­µ ®-NJh½x&‘Q~P¸•¨"°B¬“¼÷‰=ÐTöt(DzK1±†íä¿õß܄ûFÛ ¸“¢ïH'Ñçဃ;Mã6@WåcIæ!LXÍì¤&ÎÐ`[¿8ã}`L³´ÝÏ~£ÊvV“ ‹•‹ó½•l!£z öGE•õª|¿ö†[¦—5î+³Pü[ݲ3rjÔS<:†”6`ä}ºyÙÒgÉ, P“~¯qšbÔóŽû.+ÞÖ\ØÐíÊøo„ ç ò¦ÒHAwª»a8XIfÒX.)¡3sMõ/=M$±”ñs­¯,ݏ­íîÏ34Â¥ºý™TtïÖ±=#t!Ÿ’Š—˜z0r9v‚ÐwÅb¨íˆ±)$ñÉ aá·q MZ±<¥¡Ö•êfæbiv¢ÆB˜%!(ò½™—/†Âò¾Î¨v4C“ñc}Q&Pŧºûˆ÷Ëtð ⢮¬<´« F5ݐãœ!@ß[sò>âÔTÔ-ÁéÃÖäˆ_œOî§öKµ0ƒd?µp¡®°u/ØûAz·Kæjÿs¨L÷PþR]Ç\:T£B›È@Û¹8Òç'1:Ôbµ¾y†ö½!ÜíL Àf ~ Nª÷kžWÓÆèPč%äé–]öêä4Wa/äÛX//.*ŠèXpv^ÿgT£•ÄÖ­j­ ¡¶ß×?])$‚S¢Ã¶ž±áêA$6ügñ֏‘Þ/Ÿ³” …ÒL‹ÿ”œw¯j¿–àíX^#Á|œdÃ1¦%¼Å²y ‹?º8õû%éúk³ßD6‰ |±œ*úR o å½S¡|֕ ÚI àŸI~SÛ7—ÿÍP«”[mÚ9¥°hysßÑààÈÎ8h¼3¼ï²KQjõɼ¯í<<ú¾M-H#J> š§Ü«§ïØŽ,;» fß(e£“êöµ1FÓhDL.}ôå•×A-æÜAÄýٍëhf¾Œº˜TØ­NÊKÉ֙Tu¡oEPFœ†ª±ÁÛ³Vê¶Ç™UßàðU‘•h^С}S]^É.éÀnkw7BÀWÌj Ü­ħĎâmڔ‰éõ¯ß*.vö³/¦øäŠÄû@²Z^ÍÜL|^J!â2yõÃ[4C¶A›!m>ÄèÙ d䅇ëQª @2ÌD™Ô|¤ +ÖÑ4fáÚq1µ“úÖO²°‘2qh)¦å^¢ é(~/a#êÕÂJ@ßcx'­È\ùSù“+k N‹ÿ¦Ã̜TJ,¬Bâlôd±µ:}mqp™t_èê³úò68â/HQúxëÜÛ_Í>ØÆLlœ<­©¦¨ –ò“Ù‡šï ó|8ë›NC´KFáO0+FCTáŽÔ}惟Úflxmo… +Â$MD™åLIlÛ'µM êUM8»}ýw 8!^™,K•NSz© •Ú "ä²m$o5 ²ë^7Þ:'¿ž Êã€ÑJ~úr½ÃÖ¯fó®É]0²ZCZ8©-±пý³×I2ð 3ZÍö뙛Í>l”þcdÓ8 +endstream +endobj +1138 0 obj << +/Type /FontDescriptor +/FontName /HOHYXF+CMR12 +/Flags 4 +/FontBBox [-34 -251 988 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 65 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/asterisk/b/bracketleft/bracketright/c/circumflex/colon/comma/d/dieresis/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/quotedblleft/quotedblright/quoteleft/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) +/FontFile 1137 0 R +>> endobj +1139 0 obj << +/Length1 1061 +/Length2 4315 +/Length3 0 +/Length 4994 +/Filter /FlateDecode +>> +stream +xÚ­–gTSk³ÇAA% +H“&°Ci ½P¤HA¤%Ð{ï‚ô.½I—*J—" UšR¥ƒA¼ñœû½çýz×þ²ÏÌüç¿æ™½ÖækéòìPp%ÀHŠê:q" âàPDÃÍ1òŽ9.@$%! k@…ˆ˜”°„TÄ(¢œ<Ð[ À­Èó+I€9ÂÑKs$ nŽ±…;â5,Í]”%Žñ`€Î¯ +@îG»Â­@`…°Äp$øː +Òˆÿ}l…uúOÈŽvÁ›¸ñ&y¼E+ÒÁ°‚[ƒ5Pø^p¼“ÿSÿWÂ:8h˜;þ’ÿ5¤ÿ +›;"<þ7åè„ÅÀр:Ê +ŽFþ;Õþ·7u¸ëøï¨ +ÆÜa CÚ8À¡¿.Jw¸•ci X›;¸Àÿ:‡#­þm?·¿,*ë*ª)Þúû>ÿŠi™#=§T%ÿŐߌŸá  Að‰øç?oþÕë.Òe…@âBT 0G£Í=@øÍÀ“(àH+¸;wÇ@¢0ø?À…ýºNq!@Pé×Ñ_$!þCøû4ÿMø˜Å?$"Z¢Ç!Bx)«?Âÿ@a@ÐæÄ×Ûþ¢€ â7BðRÈ?/…úÝZOÈ?¤!P@ÐéwX Oø-Cýá‚ï†þñ)˜P¯Ž±EÃ+ŠâÛcÜPà'ýP|…Çï†øÁxÂѧÿ÷"(( Ü½ø……~(^WRD‘ôù?y–X4ŽÄüõá·é?lÀïî·ÍL¢,¥ƒíRBK}ï揔ó*Ø4ÆiÔµ¿u5h:žÐ¡h@͙w¡Öð¤<ŠlxÅí”Ñ%²Õ[{Hi/À9.uâ|ÍÕl-ݳ™ÑðKººÇªëQÐùˆñÃmQBͱ…·¥‰F=Yûo¶rµ¸ïè­_žt»¾èÈ7TJwÐ ©åë\Ou.  ›w»žø”hþ]¯]ؕ¦[³¨V,åIþ•g ç/›>ËÑTïO\Ì*`„Ö “ò‡S8 +xêŒ+<”§ÐX)îcÔÀ 0uéÖÔ×ï;á«j²ŒŒ+ö³k;ï‚äªÞ|åÖܑ±¼Ò¢ññÔî29yB«ÌHàu,S ³+ï<-_V7³0Ïû$¹'˜¬Òxu.õ3ÓOSÒ- $eANÿã&Ð Üp±Z {nuVñF¥fKÛÎ×ü>’thîu••Ç6«`‘-±‡w«TU¼KٟÊNÜEÅòùŠ%Úh$¥&õkªP¡¼VRe žàzʦŒØüT4]qøI¢1=V +r(ÍfK†$`.BJ´ÆÀðkq6®6*…Ø;9ÁÅàÎقê +CÅz:î÷M¸`sÃÎÌô.‡fÿèz„—Àø8GW’ßt·©ëÇ»=æ`äþ# Z´bu˜'"·S@zۜA`5ïF†7çýo£AY/§"o›“ó‘z ~Ì9Ieý©ñá‡R +yÐîØ{²òÜEæVŠBñ ʗò·MÅiè åJ'Í1;y«z–ÛÎ¥^+íj’k”Iæ´}ü ?¨Ë­tÕԆD±;6 §Þ’ZçŒjÃ4TwøǪùîD©°òº‰•šñ¶³¸HQ\€Ùþ°/LqS< +«?)mï:ò' Kº9qŸe¯zŸûÄ?m +Û—«ÑÒ²ådê&ˆðòáöá4CmQð7I¿Íº +QôL g¢ÐÊåevsڐS®@"¿û%§2n„ò'äH‰Åj€1+? º™f€GÚÏÐoù[+±Õ¹–zZg»GÙ5Ž!ò҇åPª–´x0Ë'Ò•Ä 8™/$S=Ö]9s9PÙ(ÍLώgE5FœÀˆµRlþVÁËÃöd&ç‚ç ¼º_Õ2·5[N;T(òrûú"¹ìJf³*˞zFéäRÑäú¡”D™B?.ô—šä¿¬ÜZY“i%Ž= ´¦¬‡õš¬œ§¡*ÓvÁ·Â­ÝĚ^ú\Æç3ÿ‰‘¨rÖ«¾⅑6Ž>…B‘Öe¿ìu‡ØÇßÚÌßJ_ÈUåÒ¦ý–NÖëlëÈÕ8ìõ1¯kâÝiŽMñn”â9˜õäÄÎâ2d¾®Æó}Q +YŠO;×ex4 Ý1ÓF6®²ò?kxý@³—ÏlëA -w•á…V>êí÷÷“½}°] #Á剷År­)k t ØHÛÔpDðj™^““έ]çW±‡éH² sT ª–ñº¡†™ŽËzc5_´@ÑÌEÞ²cbÉðè»àˆg`±þ˜ôŠ‹ÓäôâÅ«ˆ8 1 ö¥´OïMƒüýŸl{ç tÍfžO$XxíM) ºí;G¥ç”…Üà1hžˆ{‰ÕÙ, +2—døBú(À£–Ð4{°ÃGbø­%ÏgŠ*RÈ"(tG¡…Îó»YO±[Ȋ­<´Þ ®†6\5j¿:Ih™J=¦þ’’F'Ì75>‚cp9@ °‡Ï I(¬8½&GR,lý°Þà U“V=±h 5PF44ôòœL{Ÿä*qî¾¾Þò€Ð—Á)ÊÍܘ2n+î1…‡‰"uÔøj-{Æ`ؓÊôùMeíûêÕ4nŸ¢æO‘Jì*ÅÇÚ}njY ð^­çñ¢¸°~–g‰—ÖM¥MžìEv'×Àdä­ÙÖƧå2ü«-ÓÌ +ƒq{Ё½Ww¥kò©ýڝrÉ]-»¾¨R +2ü ù©Ö«{‰ÂMCŽßi’ö££”ÐeŸý²Š¼•k·õN˟º†FÈä41![\j¿>¢ÊñÕï©À\„U÷Ò~<Þ ºXB©%‚¤ŽÞY*T«ßœ_«¾î˜ n¶1cK¾ ‰ìcùê¿4a ¼G;/½ôDµI‰ÄU]Ž¢\<öäÚº†9›¼ñÅ0g½Æ|©yg):(ÿ|¦zúã‘ò#&Ä\§ø¦>õ÷0ï^¯ÏÊ63èOÆìžMH‚߇¢?L¥·_¬VM?Jz–µm&5O½=Ú»¾æJyxA å£Íq*FìÆÖ©ØÁùÎõk}-¡"tßf[UnÏ°_“:?ä¿Y†Ô–VÍ 5…§6+‰î%(u铪[Šïé67¨vžq°fð/‹$ç’nî#Y eÍ⼑ɥ)ÎPÿÅ]_çÇðOÙe~^Ç¢/h~k)¥7ä1D\nƒ¶É+$‡W^ÏH·Ñ+`û?½æ73þùÄ`'O+J¬Õ÷\ÊfŠW±¦ñs×ûXÕùÜn{e¥Ž&è¥Ú®Ïy¿L*5iMð +å×$¡gñÎZåS©ÉÛ¬VDH:®XyV,6ýsOæ ¥u˜{(8ˆ›òë¹ê²¾’€{fK‹béužØj2¾Dy©ò’äˆÐø«  +6SH†ݒÚIä*s¹Ç ¶½›ѽ|ê»_¼íˆ_=˾§Áúé’,þƒl˔|wÜcy}*íµÓŸ-)þ¯Ff&4VÇO$MV‚w£­©±ÜN«ÑÍv=þ©çaèôkKL’¹Ï󡋕½7?Tn*®Õ%׺™Ê&¤eͧ^€òó/:s.Àž„š•ƒ;èìc{¢g˦¹$˜Éu©‡A&C:‚¬Q`Ú·]cµ7S[.­ûÓwI3îN} §‰"\û¤ÏH.Bó–ãÓ½Èû?{ãì+ýnÔ;[Tô‘¨fÊóˆG²UŒ>ÌZœRß[Q^¾9nbÔMØüQb¥¼´¤’d©4p³­ 1¼#ðyþ)ÃLdnÍò͒ÿ%짪f¶ázÙÌåR3m‰!}v + 4ö \8Ç«Ž®Í팤üÔ9'õÞ3$?â±{MáìhkYl’Fäêdºe{—5‰!6Ê}I•2°Y¹Os®6oÑ÷I 8bŒy u0žšµò¯]³½²&CÛVmƒÁ4±ÑóÖDŠ®4œî°nրÁžüÉ>ÛK_NµLú<ÖÃϒ’¡1mRu3 É»Ž½ÉÛìD £ ¶&BA±! Óã>uFt\ÕZä;C-è¶Úh˜H>Ë[ŠÅ‘qKþ¼O¶zç îf’ÏâójåÒÉ~:–)ͯjwõ(’sF¤Œ¿wÏ֖ò:)É(©º(ñ—ï=•°ÏÚFûnø¦½Eód4ó o¶^ŒÔ~~Ÿ¶`<0CÑK¦!F¥]Xðᕌ‚d´ðjö±št•äw«Ãy‹¾Ë÷[™2¬”ì 䄔Ì1¸ïa& ò×?uo¼²¸sê9,Û¿Êõ¸£Ã•8I÷ºçø}ÀkÜó­’Ÿ„È¡æ5‘Xë)RK?Ù²À-cû­&yü•áÑ ÞÇr¯n_Ñ}]KÀM?R©îV–våGG"0q>9µ½Éáiú€}tK/ÌWS?–ÖÈÜï½ [YÛéïñeûB›nèæÊ{ÀëÆU^ÌŽ¯]x‘‡²D¬º'äŠ:ùû‚¾oςhéÚý9òT»ã¯øN»—î tÑ~ß^‘Ú/ÜÒ4°ÚÔg«<½—‘*{íp•ò^wšNCçٕ(ù+iƒ«{K’×pÎ-0¬ŒªæEïL”kÙô›Û¥%Á|­ÌˆÒh/iðŠÍž\|çuyê5ç÷N}é+²€*èFžEi“s;wÌw_þò]“UÕjؗtÃ<²þ¸6ý0ë¥=ºdQ²°¢`",²=¸äJ@£G¶Uے–ÞSî¦Þ¾~’ÌŸg¹Iû~;E—Ó¥Þ¸íø] Â MnV&€›6¯VÕûqô1K—àˆí‹%©glÆCŒ«oQZ‡JÈÓö™Ñ½÷â0%f?›ïÌ,‚qš‰(Ü+ï&‘‘ÒZqNG*#Yù|æC¢o4'V:n0À¼Öݐ•~Nû$Âå…>“È饜ðŒ1AG}ƒuZ)Lñ!YĞ޽Ë3¶,³•m9…á æ~9åXJX"D³ÙÖ·PN£‰Ð/…žùրù½—€çZGÔt´Y:ag³frѕ´Ô9ÆÜ öý˜-ûÛÑE9^ˆZíjgJt8ª-"çR&©AÆQ:ŇLýFñŠ_r ]þßy$½æÖ_\Ì2£ÍЛ.®H¥þ r¢»~áñ´(ùûdû† ­Í¡cä+;«w…°YJ¡K²æ3V +úG„ýJ×A·Ãê•Bw¢3©ÍìSS”‰qœ5§¸¹ÜH\^¢+wšânX¶Þ–ʱ%æ9 ÜY±Žzm’ír!°vwá]k±åd +ì¹ÿ`F'U"a.7[§£©Ôn·ÛCîÝø$±o¹†ì¤øߐín–wب¸#ùˆ¢…˶Š~<ŸŽtž2÷{éI¼}?äÜyj4²ùÆUp£+¾Î èsÜõO(à1½RMdMˆéóaö-·MZQvQwɦɃl‰Î "4Y RåôÙ׋òu—„í¡´v¯ùEbº¿Ši¸RHædì/ãî !î^ñ‰ku:“ñùpç¦<Áy­åQÃ7ŽØ!\¿<åÀûx4z4n®p×ä±¢Ô͚K”CÑLŠÕсñ]·v)j³+45荱u8=žÇ`a*%Ÿjג<€ò„[”Œ´Å޲ôXþðþìq¢MÂRØçé77–Þb3N!²…?bÆʅcêôKÔcKy®Õñ[útŠŽËúg >£šç´èg‘u^´±^‰‘Þ†ÁƒD’‹4)Ÿ–Áä[9ÒÒH¯CãxÝ ³½àir £ª .é뚶õ‹³´WŸ„¼œ!ð\–‹K;©_Xˆ‹p÷;xuËP8ý¼|Ú¥Àü „¥îL.š^×zŸ¤ÝÑH+Œ¼9Öõ|ðüZ¶Ò€pø{2¨J덟j+šîy#›…Òáµ{®Ë¤D'žÑ%b¦´ Íj×Çetƒ“·=(ò¢™/}Ûc%3qP|¹ç˜¤y¨p½÷ÉC^p‡v篪ƒÅƏ,Ò¤™ +šD¾Ð õjÅádɲnUͦûAlTŸŒ_0Z?‹{Axž&@&›?”P¶:T—Ósz+nXBTx²_“èuO»ÓĂ-EÅnÉ@řdš›èóВæx18(Ûeu5^×åŠÐè®@ +½/#±9õ’½ÍÑqN1¦Š³ÞZ'Àú֚֝p]¼!ò˜"bÍõ¾ç2ðUG;6ª"Ì;®¯*„Ÿ,¢ZF—‰dªH´õ«üœÚ˜ïK–…`¤Ÿä‚¨÷ÝǔC‡Es)o1µW:Ì¿6Kû¶ÓJd_sš‘¢ïùӗÕ[ +ʸ¥=gs*dlJ·7 ;й3Ûj¾Ö¿œõ#³~æ½Ä|˜IêÊÃsÅÂ’»:êa"A®çÜ¥6/û¡ÑˆeÉÈÿKßÅò +endstream +endobj +1140 0 obj << +/Type /FontDescriptor +/FontName /HSCMYC+CMR17 +/Flags 4 +/FontBBox [-33 -250 945 749] +/Ascent 694 +/CapHeight 683 +/Descent -195 +/ItalicAngle 0 +/StemV 53 +/XHeight 430 +/CharSet (/F/X/a/b/comma/d/e/g/h/i/n/o/one/p/period/r/t/three/two/u/y/zero) +/FontFile 1139 0 R +>> endobj +1141 0 obj << +/Length1 889 +/Length2 2612 +/Length3 0 +/Length 3211 +/Filter /FlateDecode +>> +stream +xÚ­Sy ñþ"’B$‚8òÃeìèïØÍØ(z€HŽÁ~˜ ®½ï­S¿ Ö yIFI,2ãvÒ˲­ÇÉòç;KNÆ$àz5“ã0ø ñ;}ÍcB^Ïè>rþzƒZÒ¼…v×ojKtø´OZW•¾iô:‘*¢dâÑu®åÛ¾¶Úɍƒ,­õ‹Õuß|Z>ñD+MîûêÚ0$§£(JšM*w© +}`G=¿x£iHùÎg… O˜!ö’ÎZT—¿óD‚ +‰S›Ã‡~`¥sÜØäézÛ_ckcÆKÖÆ|_¶2½Û4<ç£L™¼ÅùEØ?ñ°fÌN™H•2쒁æDÙòüÙÓ¸‰þËöîc¢»vn;¨79¯µd“/j"OœßÐj)°KÖ¤9Ǎ<۟øÁËè3iïº +ÛPîªéªpëÚÝ«,‰º-…Ù¼. l‹×ÄZ<¾„%×¥[nÔ:bývfѲV}KX'ã«ŠÍbÇøº”59ÀrhÝÒä8¹R%LòÛ9ó ß<ä•-©¼¸H•wQu]gM[wdNVF¬À™?æö&QÅo%ÿe1)‡ÌñD<Á=¢Ø`2§CÇSóžþ ììiãÜN.©HÝP;ÁK +-qr°L3iG߶Ñæ6þóù“wieGûUqÉKב$_®±É,RÆ8 L"Ü÷KiíIÖpñ¨Î!çû݊ÐR²Ÿ¥¿ïŒeSÝ÷pЩ¯@½ëz§ðÈWÙüÂÕY‚ Î:4ÀwpÈX=qf“÷ÉÙvWk¾#Eo©n¢Q>ôãîæÂ}ÑÐs§&Ôéõ&þBåêFÂè>yœñ—Õi…óõ{?Ú¾ÍÎÝ4'%¼¼’ìt¶b^ðD-±ÙkR"Ëö%Yõò¶î­}»¦¾x©7×»=¯²Ôc{KºÖƒŽ7;xG°µç ;ï^~åUlh8ÎÙ vÁ²àr<ÿ¦Ô“Ʀ‡yM^é7]¥K‹n  wj4íT£ôMXNÛúI“çH%ºEN_—ÅàP£‰§aL)^7ýB7áÁI?}‰:–)º){|tH®úFÙŸAÔµOkäQ»•û^.Y3JIî±&ViyZÕ¡\Y•W¯~‰ /‡{-ͲÐSº”,½S?äÅ¥’–‡àD}QáÉÌÄÐ<êõŒÆŒ¾Sû-5¦à*3EÎʆŽ”6!»NýÓ°~„f,3Բ蔇@Ï|K·m]Òw SP¼¹=çXzÔÎõèÅåêƒkºãtǀž¥ƒw™.d•H¹ç©…Quœz‚ÑÁw1ùïðó¹ÆŽiñ`«c±ßöó[=~;\O¦-ö÷5RlrV ±f;±ÊÅî¹!dÉàéO‘ÃL‚+'1­~ˆŒiN÷÷$¤’¢oæKƒéŋÌx³Ã¤xh¸ï™Ç•Ü’8Ná—ïcî; N¤X*ŒÆÉ͈Ææ8[qÙXkNÝ8LÑü"ðöhÍpĞ1-ÔK­%˜¯ßvYBs⽿E±+ð]Ug‹µŠ/lÁšö_ó[¬àïmE7µþL¡n°žÐ͐ ô:0ª•Ë!N™×ýtw¤?»’–‰Î¹÷(=çKW@ø¤f€À*}Þfä=kd“[ÌÅ ” ëÓf ++gwmÐMӂ/,͖Z‚q(£xa5(’;ÓÊì;\ }]™60Õá«îM\žÃôÆ{6†øbãðÜôH¯HÏU£Wre=¹Þõw3jÕôÎ A ÑæmYp–v)WøÂäs5Œ +]À¹SN|)§n†‘´1.é9÷r={³˜:×ïïô:+-§ýuLºnCKôñvѦ¥n)f’Ir›_ çÂߝ”^å?ãŸ2욪Y/8fX •-æ K„Ùw„R½‡¯Ìš¸ŸY¸6p~?"k}d‰¤ØUBçm©ÐÕ(æ…Y»9rß+n;ÉîÛ,·ok,8Ã0„guïx×÷æ^¿ÞÐ(B?wîç§&=ÑpÐeÿŒ1u¿Ùàìt…ÖëyS£]¡fف.^áiiA>Á‡U¾ØÏ)ÑO÷*ªŸÚÂ3œn뻲©p÷Šm{©Ó’VcãH(˜eÛpÁ.éò8äÝ1Ù¡Æ[áyˆ]¤±Œ3dyl_\gÍl¸ +ÚÌîëB’`ŠÐ8“`T˜â+Æ֒,öÍÃ1ýå¸çîX<¥u8{ٺΜ&ᵒÆT–SˆStˆµ»V69˜4£{½~ªÓV=•ÅÙ¹Oµ'âú¸Nx»ºÞÓn`³„ŸÉlú»õÚçbN¸Ï|sn[jÌi÷“+âØü´‡¥cVqï*?ú‚9lD¢U€l¡3÷8âòà2-d»&wÇZRwÏ;;,è=Ä|§@Ïßmá \wـ5ü}ÁõÒ~|æô0vÏs!“¨®ñ÷\A÷t«£ëÎL™ù•Çˆ5Xߒ Ø< …쎞'䦿=@ é•6ßäÉM¤ïԀe®I~_éb앝Ù{)=¦&mñtTõó8‘‡M'XFcjrî@1Açbª6Þ=_+fÛw=ÿ,ÊìHÛl<¾W/˜­Ou´°Q…﫦Ä$²ôÞó}µNµB¬•©×;À2ǵÇutî]­âúxdÒÖe¥‚Ò#lËÄ· øúùé7‹¬âåóõõiV÷wüý7ºcæ9²„¥xVqœÄœöÚ² ®Ð‚t5ÈÖ!mÄE›´ˆÙ`ÿK$µÒH_ÞÇç7 +‹Öžt(Ú¬Z %])òoÀۋ’\y՞ÃkµÝðßëŠ9ShV×0’öçÇ«¶þ +Õ· +o„“JÇ>4̅—|^Äe­´éº#?tJ‘Ÿ!4»x‰<~kõTäv“ÀýûI=•ò—¼t:³ªt ²í¤Fðö‹Ñ[ÉæÝyãxŠ¸ô©`¹e¢z`±Í+ÖSʖŽŽó™ëh&­ã BµycÖ%Z +47iRO^Ü IV;ÈæuìpyÜ[%Š·‚4;ýԦ߶Ý*“|saJeêÅnUOeÐööVjJæes:µwí_¾ÁKâ +endstream +endobj +1142 0 obj << +/Type /FontDescriptor +/FontName /FKGUSP+CMR6 +/Flags 4 +/FontBBox [-20 -250 1193 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 83 +/XHeight 431 +/CharSet (/eight/five/four/nine/one/seven/six/three/two/zero) +/FontFile 1141 0 R +>> endobj +1143 0 obj << +/Length1 835 +/Length2 1945 +/Length3 0 +/Length 2515 +/Filter /FlateDecode +>> +stream +xÚ­Ry8”{¦Œe’,ÉÒâuD +³Ø·Ò„ÐP1ÙÇ̋aÍfŒ¥B‘D„[YÇrZœJ!ىC(SéX:Jâõuº¾Î¿ßõþóÞ÷s?Ïï¾îçQUÆÕB¨> •ÂÐBÆÚÞÉ@ÂPUU4 Ä1ˆTŠŽH##$€búÚ©o¬cd¬ËhjPèçÏÔÑ{×EŠ ҈x°Ç1üA2GŽRñDP$à´ÞAœ@:Hc‰D<ðýˆ(|ݏ ŗ +|§ Ì %H£óMê|“{¾E•B + /î@å¿òü?Lý:܊I"9àÈëãùý«Š#I!ÿ­SÉALH쩐FùUê~·fˆLò¯UŽDÄ£(~$@|§ˆt+"$`ˆ ¼?à‹#ÑÁoW «É€EŽôœm¿¬9ùÛï;iQå~n õ žñfÔ»%”®t0ÏõuB¥ã{]Ú¦úKG4¾ÈPx~¿Ó–L`Å Þó n_î농܃mìwÎàlãÊ oiñ*(DÂÄ­®}ò- îͶ Öy:{@Wú‡ãªåt’Gw¹[µv}梨蝱Iv“çÉÛúRg H‡•m~fè­mÖM’2RŒ}§ bÙþP ßeɃûwÿž)»Ï¦ÞüÓ“ÝØÇ=•»\ØZI>ÈmQ› +/m¨nŸ)ˆ6Ùt©)üî„×Ú{G❮ýÖUaË}üâ}Èm… N²š—3|öŠ{¾³¾â…£2TnòA«ëÀ.Š–êa +f-ÌÎ6Ë:f0 ?˜Íšk’ :, ·¬­Vã}Öáårý¹ã¤+te‹ÏtTí¦-˜±¦%×>é#¶Þs"cEé­EAËÉ»Úꉐ9ãÕão7Ð?FFÉƤÖ?ݘ0>Ò)ùêÒ.±Ñ=bÈD å}Úfƒüc©°V±†è•¢ÒpØÕÈ;sjÆM¼¤"H^PÝîuÃzr¤<›ƒîᙇÈßEaH™@ïæCa¾Ú÷V 3kãö ÔܚgêÓ‚5/;ljõnª… +í¤ÊEqo µ|¬Æ„i— ¥Ò¯ÐE3w;Q9B7” c«\'RK:¯ßmKÄ í0·7>•?»äSíÇìÖòNâõ©~ž<w˕l™Z'D±OGã¹1~Í'ònO¼ø<9x¸2}•AÒL‚Ñ(Vœ\;¦.¬0’eNÙH3/]JKóÆÎú7ôEyr¯u Ú%›f.j>¼Z¶âÎdEæ—ý},´@ê&üQc°Îp"¿€ (ƒx\¬l.ª«žªzõÈ3åÈ\šÐCB_ÌbÇÐ6Âa¶9Ÿ2òÝú49‚Vƒrâ9Úö-.õW*QìåÆôԎp¡Îbê͞u斟åÅ`Üö¹„ª—œÁ‹ïë? /hg]‘QT¼Þ1!¾Í>²7Qüy£T¹*}»™c4Ë —®.ˆD«aVGo¿ÕHÔ¿–¹ö7k™Ú¸uéö0ÚÐè]¨Ä¢@‰%¼ádñ›ói6¥Ïל¾ˆ¬ýrtPBç’dúˆ3®#kn_ðvuÈ·£†ºœÉà4Í̦Ìòft’Êt>zø3aƒ -ë™ã±›Jóä9»Kžñn3x6 /ˆßæè©^’.AsꑊƠâ©Ý© #UìÌçÙ¸¹®sg‡î[lØ]Qgrºï–~ëe¶Ãõ+ŒWa4¼Oý¼á±?[¹ ˹ƛØïÉNŒ K5=SBl°Ì*¡S«• êB õ7šÓÛ>·Üö/.<ïšrºnôjIÏÑ$ËbÓ‹Ý +Qó„ô䙇Ԝ˜ »EIî\ K×5r7GõˆÎÙÖڇnîQñޚ..\é,%-ÒRKuòÊ”UÿÜã ¬±F¢]½ðN=b”’|N8wòCÑèy¯×§ò¿ŒÈWT9Ol¯þk”1ÕbfsRõXs«ê“Ùñ@ ôã‰GocÞo©lWŸ!Ÿ&•¥>;6ÖeRo&‹ÔIq=Ÿ×–0x:Rá±èqh9[ŽŽ`Ë.ÆÇ1Ÿ¦Gõ8½‰f¥3_ªµóôûϋ\&Gp§koJ¤ò׆g§SYîþc6l½—¯É­#oªX/ŠÇTýSðNyš’ëðí„R´×‡Å䘭ª$EǛ;ðM£¸ ÆÇ8ÈtyqàŒƒÄ®ÈºZã¾ÉƒÓx”Ý+ 7Ðà8.ŠOL%Ui±£¾œú3´ ep°’ÞƋ¸Û1Ò|C:·µä´€LAUÛõöRSú…é*™hT];JÈ3øöFI‚€¼TAÃ+xEª\“£ d•»v$6¯Éó¹êìқîsî~«Üä+ɲCùö—šO}ÑáÆ]ëÉØe +‡ÔÜã®X¥/^Õ)Í?zm«6lújÔ¶ +endstream +endobj +1144 0 obj << +/Type /FontDescriptor +/FontName /LNZRIV+CMR8 +/Flags 4 +/FontBBox [-36 -250 1070 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 76 +/XHeight 431 +/CharSet (/A/equal/one/plus/three/two/zero) +/FontFile 1143 0 R +>> endobj +1145 0 obj << +/Length1 1789 +/Length2 10682 +/Length3 0 +/Length 11650 +/Filter /FlateDecode +>> +stream +xÚ­—UX\ݖ®q×à(ÜÝ5¸»סp,@pîîNpw A‚w îœú÷îÞ¤»oÏS7õŽ9ä›ß\sP‘©¨3‰šƒLR W&6f6~€¸¢ººØG6V3+•¸3ÐÄÕä aâ +ä°ññ±DÝ,ìàun~N~Vn$*€8ÈÑËÙÚÒÊ@+N÷O@ÔèlmfâP4qµڃ{˜™ØÔAfÖ@W/f€¨@íŸ +€Ðèì4gFbc˜[›¹L–ÖH,ÿh’u°xþ6wsüï%w ³ X€,’–hr°ó˜-X”@àY@°’ÿ¢þws)7;;%ûÚÿ—Oÿ'ÃÄÞÚÎë¿r@öŽn®@g€"Èèìð¿Sµÿ–'²û?ƒd]Mì¬ÍD,í€Ö‡¬]¤¬=æ*Ö®fV ;à¿â@óÿ-lÜ¿°È+}ԐøÈðŸ3ýײŠ‰µƒ«†—ãÿ“ÿ/f{c°CÎ֞=VfVV6p"øóßß þ×8I3¹µø¡àâ˜8;›x!Ÿ0q|ØÖæ@OЬ™…Ùä +.€Mù°9#ýs¤Ü\ÑBÿ&n‹ØñXÄ߈À"ñF|Éÿ+€EêØ,ÒoÄ`‘y#‹ì§Ë¿xºÂ§+¾xºÒ§+ÿ‡xÁÓUÞ<]õÀÓÕÞ<]ý8,oÖ¢ùF`-ZoÖ¢ýFàé:ÿ!>ðtÝ7gš¼XµéëÌþC\à53øýw„“󟈽ý[=+¸¹ù_Þð­Xã¿â·ðv-Þœnñþ³hýVÎñº¿õcû'`÷¶þO:ÈÍù¯îàË¿¬×êM=Ø?+/G+ Ã_à˜õ_6Çö/;`÷‚í±ÿK;xëo­¸À¥Ö‰ýgs ·éàbÐÿX«w|[7s4q:Ø-Þìâdû¯¨óÿp‘ì«#ø]úËù¼qú Á[ÿË6ð>]Þ´þC@÷¿Œà§»€/ô&€wãbgâbõW ðÐ7 \`e®VÎÀ¿¼WÐ_àn!ØL÷¿ì‡Ç_'®öü Áí½þB°WÞoâÀ¼Îÿõßmbb O&ðgbkŸør²~ú‰fnÎ`W]ÿõÃ~Cþ7[Xƒß§@ 'Ð iñÈL Øæ[Sh©ŸdþT, qjqðxgHCªóÑow³ÎÍ?4€$˜!˜6ÖåÉ'ò•,æ\ëM¢¾C>ê,! ˜C¨Øt¹iêðgfGú†PÃك½èö™_öI·›Ζ(®×Ü;a«ØxòN"`Jç=_úÙúO¬/"§˜Sì$#d·)$µö×bÇŽ¥Aù ÅÂa<ý´k¬—E‚ÞÕiÛÔT¾ÈlEè¹T¡'D¶«Òw>JÈhݔ>[’Z YJÕ¥ÙØÕÄ«…_1ç±ûÈ×CsI!=URSTE¾s…Yc¿é«Ãn©Jƒ¹¾pĄ â9øۗØ][õWR™¾Y /ó™Î†nZQ©TcþówϋõˆÕc¾r÷-À¡5s(Ê +¨Ïa5n9§BH>£d»R‡§k33@”úf©³Ã\“lÆD)Îuh2DÏ젆fêˆ-JVÄ·ì…†Clq^Âùy°ÌͳMq¢OÓ½£ÿi;®Áòm: +¹$&Lÿ™ãgÉÃî.aTŠe©ÔÞ©|¸4q¯ªf›X—ÿ7>‚646î!$E³Z¼˜-SÙ<°d0ÃûÖµõ,OqŒ©ŽcTP=ã³éÈÈ0é´NW¾Î+p [ùdb˝ÑP}Ï{¶y‹ ϊï™d¨{äŠÜ)S\"Ág«‰‚˘JDÕX}º8l«¶=Á ü³-£9 tòۄ3˜µmŽ¢‡y´”<Œf¦Ñ=jwn°qٙ¬åhSo±ÂËk8\"×|Ô¹þÈr)’@*s½Jw ¶–À˜æ:d¼H¶?’#™èU~…PnAÀWÈq!i bWˆýú„ÖzÜÀ‹™Ìö¡»! {–ÀÞÁËàóˆ>Móñw’ëLoù–N:È ˆÃ¾ˆþqWZ¹:©Á†í©[ËwŠ±Y˜ÒöC“ëO½^¨ºlÜ×n­ øk51+øºæ­ ùh·øêã ©Ã +_ûÒ3À>EgZèÚ*o°iDiTÅûD»Úė9[CøŒëì0¥_£‡¼Z:¥H£ïŽsçZƒ š±Çn„x˜7̸¹µ“ él¢ÃªïUd<ç„@þãÀgª;…LO뚗µ†žæíaO‹‘4VѦGí3ªúKܨ÷©if¯”؁JÝ Q¥Hh“}ÂÔA¤u™÷<5&”KÀDgÁk, ;ç +ɧW—k£Õ1M +V)š˜•-蚏ÑÜ'Ü:Š¬#~(q! +‘çý+FYof’:»FWG˜‡Oad§R>þ–…c3ù–-rïW§íeò_GíüþpûW¯ ªo—‘mðÌurõ›7È^„]e«Rã„WSÂ:d’”µÊ¤9֏wU<\Ù#¨Sèy…°!ì Q²‡¡ƒ™ÚÑç?¬†?òҋ#.º¨Cºm…3%…¤h}IÄ(®bÝ©’"Ä؎¬¹ß’&ÀVk½Ïñ9 +,¿;ëÙKŽYB¶sᏚá™T̽93‚uzt.‰ M(yež^> ‘ò\xwjÒ.ñk)v™ñ»hHŠ –gç)ù\ŒœS•¯©`7Z‹s™ÉQH¥É¼f»:æ§žÇÚ#Œ¯è’ýZ/¹2±1ܼ’g+’ۮѐã´rèM5p=5ªù2Éèä݅t¡¯Á×ßÚ]+Be@<Å ˜Dó҄/Ä-4Ó¶j2#Éì2 ÑÞâ  ™®›uçÒj ÄCsã2Õâ>½c9¢ë/Aê’ +Ú°5ä?×Ã9,±Œç±V0þ¨ÙU>Ï)`¹†&ß÷µì au]á/’u|zÇ,|~®³PI–»ëYù¡!*)uJe1F̘ÛLi8ãø:6KRÉä¤öÑíèµÿLèKä8|åvÅN£#Ì°þ/É÷’$»dAŠÑ ¤F퍋Q¾NîØn·‡D›n*æÕ§\¦*ËÔú_£3OHÝë„<ÒM/Kï•C¼UkŽÛ+Û´âR¦xɖ ?1œÁÚ”ˆª –Ó%8œíN™•ú_ç”p.Lã¦GÛ/QC¨r¿pBÊ/Æ,ˆLµ ¤Q~Ýv —ºY +øFۉ4ñ ßm†,Bü©á]ÈùÙ"®”<’ÂCm¹ÆÆq)d9’œÏŠn֒ú~!&z'1µï/Iæí·à–=îŠvèP6è†HšÕ¬~w šÔfo~—¬oï§’¡iש£Txn.(ÕñùÕX…ðNsðTï}«¢›“G–¶“ÅwHÑ $à4â–pDä·ôäÁO¢SjˆDa#9&Ü Ÿ>VY­­·õ©)Ke¾1m-_€ï¢[?Uýì@/tˆ~id†Ü‡+Œ0Î+Í"-Tö0ˆ/ßn'I„Tm՟ҦñÜ6ifûm|¹ZRü Ó,S4Db™ +Ëk_­+P. €N–#ûõúÛEgäD&|D;ãÄwðÏsé#mkÅG½~vLi³T7k %„eÝ.¯©¶ÐÂnh£ø*-—ñ{ö¡HäöW¤ïä<#]Ú2RõÑ]ÍÜPvK­«?U$û˜`sëÓi2š~jŒû¼ýñ1%ô Ñ'©Óøƒ¯Ø2BR‡¸A`ÿ–íNÞ 32€lü#úäå͍jø‘^þ³[ñúªØü>šŠòÊÐÎà<[2S1Ã0ßêpÙ5©äÌR”ÃWg7ƒ£ß#‘}rÒ¿>µ+òÖûù¡µ"œÒZ"ݔ7­+Ç-•ixüÔ[#¼î=N{M¶JóDg2nôeÚöÏ0¸¸)1&ïŒCú 'f :|§ß„=P"íò划ž)'ì÷‘—˜Î%n÷“e—¬ÌŒÊ{÷ +‚ ¢…o ‚é‹cŒûI·nº´¾,K ¡å·q»îìB|'à×XÃþJdð´À km8:£C× úÚ)B&ž½à ’ÏÚ«Øñx–'Ÿ»º8¨IÜ•™d`q:ڔíXj¡Ì‹©Ññ+àñyP¢Fb·7¾ø*«ò ÷»ÅÓ'åhƙÕï>è&¢Œ<Šï2Â8FÁ šb8NFÇI%–z‰”T4˜­" J–oVô•|Sø?çoJvÚ¿£ŽŒ–¨_Þga„®çf%îYC$Æ>.°†­n¹“;ß²û¡'\Ëw¡uë³ìAÔ±ìô·é9ð̞@ÏáèíMû,šÍÙx_Φ¨Qä«k{$^0³Çē3ù*¬€Ò-ŸŒ²¼Ôá¸c>ÍoF¿à¯@Ö«‹èÀø¤W™W*>ü~‰x·6µU4|À±7FãŽÁ!‰‚©ìVcÜlUNCð»IE¦°ìe¥“è‡WÞð®4Êã¦"‘Ö²;Ò©YÚ,™¾øiLDãx7UTIB†^èŽRˆÌƒû-¼j#ÎEÍH#º-õÒü•“Ä€”­wÏ3ڟo½OÃöÙ/—$t%ÂFBºÂâ—\J^½aæf@ƒ«K³#Úh¢ü\)J@e[i5åñ÷Š?`õ3ŽíHÌ~®â[–›ÓHÝ))vEr*Z.RïÅ´™ …¸¿X‘^¿;ØéwcÉVÍ" Ž¹îÁUø‚ŽÐvT™#×Ô)XG…‡:Mzyv+ +W˜]Epô&\õ Îsè²o&?àPÛöQÉ°D±˜'ۀ)º@w.e——æB²KÙƨ(@KóY‚‡ U¢Á¼ËJ"å2jx~FŒÂ4c¤úA÷A*ØÈTûë±Âa×QJ¼»u'“И +ÊÜÆÏ¥‰í çâëÚ›ÓþX”AÊßùéÞ³‘ðL© UäDޖt¤…Õ"Óژ֪Q@¿4;ñ6¥óYsËŸÖhØEÊ>[’àÛY‹¹)ëú*®¨5QK +ç8ò¡¨œÃü¹)Ëg{òÙޜëuï1\:á£dêÏ7Í Ž ·éW#T œS=uþ0&žL)ï‡ +üf'ƒiC Ãdn²=:M¯¢›\hËïrPYpågàà¡ÿiL’Y)Âx>ÂÀ·SGÔÊë²íkrH.êÒzñ-»»CÓ÷Y“(ÁgÑZxòƒ9œ›¤v qÊL/%"U³2£ÔÀ¡ˆäñ#i½ÄPӀQNÄûúÇO$ƕ©":‘/ǵIÓò¥­<Ò×ÆöýU:ŸöOMù¶y dê£iÍF«±5¨±¾Í­ùæ^îUõiªZ]µÂ_ ý¼tò·&ì“ zåtó¾$Z…Á¶¸A~|àžëptp+ÿqò¹ª¥9Æ¥Yª…£¾ñløםU +Té˜BßÔú•‹ã¦I>!äîì0KGl¶%b糿_;µ½¿´QÐe†%“ò®¨T@R¿@œ+>ÔMzµ#­cúW¬@M kBªìò{O·E€gÌV‚Z8\ÄZLý5> +þUÕ,ËƏCÙ%-ôøo¯Ê²´¿ãe+Ö¾HóD[$]Î%ºìaAxª}e>Yàný.— P§ƒ•ç+sh˜Œ°’tՆæ2ÔS[ý.”&;‹ŸÉ§¤Z‰ÅlìWy“ÁhíJ¼›=£Yõd`æŽòîˆ.ÄLü/+*×¾´ŠJ¨€2#UÀpžnäâsüÃkéGÅڂÉwgaåAû¹<ÅXvP±#f£Œ’))Égã\0Ÿ.hT4ñ~ՆHb°!ʉ±íj´wã (3ŒOÌÕ8ÐǧÉ`.ì(_õïDU™ÓIVYG÷(ʚ„{6ª°¦Ì­"ð´NŸ‰BuƊ’ºUë§xrÖJË¢dcæ/6g»¿‘¯<˜úÝéÞY Jx ÎíÄöÒV玛ЧòÄ?ö«E"¶^‹e‡­áÔô(n*²£±÷“þ® Åü*‹kC,Ú +¯¸¡ß'^›ŒaÃOÉÄJ¹Sè^6#x_„â˜ù„£’{ Y£ž^Ì%Öח~í)û}‹uñï ÚJ¬[=›:Ü*”Mñü3ZUÕèMT!@Rpz·Ø]I…¼ôit%ů«øD3‡á“à§6wú$ö»ô°±Wo¶ÐV± 7so$µò7ïî:ö,«sÚd‰z‚~FüÕÎ^Í´±Îê) `žhô`ºòsH¢ÔÓ\@Üq6AF‚ ÂÑC–¶íýTl2¿ú‡öfÏòIiÙúÚÂhÄ IJ"XVšè½;NÈrnÿՂôÀè¥äíØ$º˜;¯abWýòØSHïT96a$㍎Ñœ1ù̳ )MkÀwíýԍ”Ô£ñ.ßï±íKüOÙ¥g0JF%•±-gÙ1K¢þãtÂd7}é¨%ݎò¿ÒõÑøÖa´v¡ãÌ`r?žˆ•”V)Ûºµr7²^ÇðZJþ>YîÄ:¡iÓ3aòñ1'}¶%åŽ} Ø2«‚ÃpÍâxÒ¾@å‘øšiŒæ‚)zДù%ƅºâ¦n_­]_'o{Ê9žÙ37Í*{²b¤o“‹]Å:Ù²q²çº,16l¥ç4¢¬µ Â!ÎÅ$O¸îÓPýH>Óm2ãêÚ@ÇSñ§µšŠÃ"!oïÚ*oZ˜~ö+C,£€÷Òns±j©ô,H‘_nýy…ü*;â!žÈ´UPÞ7]üEø6"­ªÉ šÁä!Xµqª)uÍ8é«ÊþjÇ^iâSŽ9Žw8æ›_Úàà|O %b0O,(þҍ í;Ÿ ÷‚lԐËQ®æ« ¸‘ºŠåáÂèÀSKÔ`Svr‘/Õwå`é,¯øa/üžG¥¦çÉA  RÝsy‡™‘Há»ÅÐ\{fùÕ¢gª`äŽì +¢Ë§åZËìbAï/T‚êhf$b^5}t†[V˜Cρ:ßÖ3¼u·dž%´óùÖ¯Ò~òéCœ¨tîöKâºj @JL¼êSwT;,]ߐ™Å™|ÕzÅX§êòG +]ha3ÔwÓË|t3o8Š0ðûÖ¨5Ûz€<9æA£³L7q½VyÁÎ7±¤W×ê|¼¶ê$Ãw îšUE@wœÇô+Ѫæ<¤†æQ¥hùÌÄî÷ä%OòbՌÐð[¾4ÓC¼Õ>XjԈøó} +?MéÍ Åû4ÝàWS<ö2Á˜%KuWÙ.Ýóä0Â]œp&ŠbX51T»È&C¥¶/ã¢dïWŽ©[aÐ0pƒ0›½ ÛS¾Î¶Ðë“÷‘«˜hÃéAèIuß\–ó“lÌÈûãÔ\ê(oÌT/Ÿ6—À'•p@‘g+:¶Tóî%ýÈ 9TYvOÚT¤ +m3ó¼ ¥Û[nè3í¹Ë oÊMïW±>zË¿-ɵ·î¨é3;e«¾K¡)*sçEß]9‡ÇÍD”ÒCN g¯,f‚é\² ±¯éV”\§`û1օÃÛ¼2±ïX˜™ïi:7¯SQ??Ñ «Sý=T,ƒ$wU=H™îx[ë'¥nUÃa€ÓÐæD|jÉÓâù´ÆRãlh-c»Þ¥ð¡¬1!¤#Çè%¢Qzìõk[·ê;ÍtQ­ê¬K¥þäÖâœI Ы ¦Ö6â;_f%2T줡Œpßr­KÆçLjìX'¼>oVÁyÉ4NÕ»ˆs{ÝÚÌOÞ´zFÏðT #ÅÄ:ȹ§jG¨"}Z¯6ûÔ\rUd¹,•ÏL¾Ö@¶RhÂh±y˜8ࢠ+[<«!r6Oê‡n–I¯OØdÏiP “Ìeã¦÷¨QƒÇÎ;ž‡æÑi1þ-Ü*GâI?CØ<(Îx‘zèlËÓ3X/­ÚÕXP8’¡~ßÙ…Ûð´T]ù¿/¿2ÛØoQpê‡$Õ;Tþs7‘À¤RS2®Ï|Â[hè*:¾­ž…Àžl<ÔkqÜy¼åò°›« §‹œý !ðh¹è7°dÓù÷ÇK˜ƒuÄ®w±xŒ§IŸal)5H‘c¿N¨É3ü¬á o(fp:*X¶òüÚû~L›à„½ì·ÿ\¾ñŽúÆʃ³k ô77qEi'öDýg) r. 2e\¯5 ¯6’ýú¾÷£©‡¾ýɒ~hŠ +jF?£”zö&V‚€(F¢h+9å}5ÉâS'Šå³Ø1†—5²mÎͶÛoîT<ßÎËD%ü:ƒ JU´R£–Ê”À ¿šß‚{AœÜ€„¢Q;¯3:™ Ö +€«…Šou‹Â71ۏ[ì›ÒvÛWʗHM^gµ€+ƒëCÂvžmŽSF M2W…¨‹Ú3Œ^·ªDÅCÕøýþƒ¥º˜Áü’ƒ+:&9U‰«èÐz+·–Ù.%»,#o&‡ÌI-qÚRØod³œϵ0-¯A ÁõeèX¾!à\„$ûRž»T¦Íæûv6U­òÆؗ½Û¥¯“ubÐùç¬hÓ³ ½Õs.ukV;¥jûI,lÁ´Pžmø§‚kØUÝ—F]I힘li2çZñè’0XD®^zÀT¿F’©kçDkïï•:‘,¿µ.$±Z£Bñígå¡[~« .âc.VSÿ‰…¬ª’§v,&º5ëƒã4ZÖ®Ò݁¨ÛLÁ®÷g^™®Á¶¢ÞݝՔhW³%ç'!0×TEŒzµ»–°"Aqlµ”6Ç^g‘'Ē²ª³Ñ¼®éŠ AûTÇbEA¥¡‰kÿˆwÁŠúJß滇¸3TZÄ&mJ"É̊{l}Ò±üšcˆ&àþà*‹uÏÄ¥Šö³ +ŽgÉ-ø`2.ë7;‚î¡-×2TÞ5žI‹w’È{ßÀÁ‹bÉ1¸×g.µ É=  %zaá¶x-TäUJ jæ³`\¢i®*´P2\î ëQZ®Jî¹jŒ /1¼}8ŒîžvëBãŒe+`L¼–3¥‡ôm=­ícñ€Î˖_¬ÇoÎ&þ“ŠIsõ Øü{£D¨È¸ô‚`ÊbO¾,tc8¿,äŸÔ£óû©O>(64"¬&X 5å6-MNÞcíz\Ì<ŒãeF4E§WE2ÚYÌûª±>y +îë”Ð"¦ÒÏj"¬,/mÿ]x¢1Άf5ì3¶?}Fû‡­u'ëüell_uAëqÕ¡Ê +GºØ.1„%C™”¨-èAføï.á“ñ|¡ÈÝhE4åãüN}E  +zdÐêžqÓáñrz~jÁQ©èÇúÊ3µ%…5ËûwZúL›Þƒ;Ø}2ø ñÎU_’³eäɾ¸-4ÛÆ$¤q£'ݘh"'Ûü`Rp)¤|ôâKùC±|«ÐUFCďi¿Áèþ.JÜËÁë÷Ë$¿ý7l…˜Ñtïù}2ñ!o®lL)êÒì‰ÍOã'Aì XZÕ¯¿.°mi¤6Làn°Ž8}Úèd«–7­©£d‘xö»†¨ø%IƒÉ¼ñ-€Da_²Ճ~Ûº38CÁüâ©%·À›v9`fä +E/åeb›üâÏ5Å +‡Ð'—-é [+û»Û1I…s¡³íÃTüÎwÑînܗ?™HÚnÈê^'éö¾£¥þ’dÉÔ*A¼U¶èôÄrTF¹Þ턖W„¬jn0€{êÉî1UÄ}a4¶ôÒÛ L5f¸WOO†E6§º@íc}ôI2|§’˜£n6¹Lv9î%k@á²³kJ—?É@Ù»²A +ŸqϞ ö è¸=ÕÊ÷|6\°©pÙÑ_kå´çŽ"™äŸ™U6J¾Í«0~sX6%­·íi7—\·R¶Ú蛶GÐwÝÑbéBÍ¢h£›¶:߶³!P´‘zf4T0AD#6ÇVáúNÂW¬—õ×Յüí߆㶝‚=GæÐĉ‰»²oõÓ‰çèJ¶|l\ÝÉ]2¨üÅDŽ`mmŽ«+KdÁr¼ ÏWìXÍäÄ°§Œœ~øiŸs9yJ jÍàý@3´ÆÏ»#h~éÑl»…ÛG¹š7AqñˆIZ&ÎúPÈÿáp"“ˆ±.šASŽ÷؎†lüY1•¬AYËò¦±pV…þÆÕ%gy~nÑÕïqeò㐹-hEß ?«tBLuʝäû¨Þ*LUeM£Ð¢¶Lþ¹à/ÍEVcë§Ðç"PUI¡_PƶUxuÇÑñÈT-HÙà(ža)Q¢^WÐg·œ‹ß;,Él(. žXf@nr±ü¿<Û~·hùçÙ­[â8ö˜B¾>ñ›ÐñRB2™døðÃDªê:Òq"÷PåÄЂ£H;÷N ü±¼«¥Íó\rþЪyQ5Q çÏÁÀ,8Îh¹°½ï߈ërß®ÁFü„œW`~ õ5äƒ}'Íë}~¯ù¦ÙcIÈo·³½å cÀ¹ GáOteäæ?×ße*'û åh Eˆ¥Z~%!(1 Ë^Ñ"‚®â=ãÏÍwb†´¼Ÿäp§—X—„?¸‡¤»ѪVµ¡|x抏Ï3]ð??JJì„SùÚ½C-òt­† 8+Ü¿é&T-¡Ò_µäÕ¦§Å+ÈS ¥>Æù™W¿ä˜Cp|ßYL°”a`êĐO5RƊG1_0¦¡¿öFù»J¢ì@w¤þd£¥óíêHFMÈAÒ³•­íh#-wšcKÂøÔmØèóø¦³.´B½$h8OŠ+牒p +u¬|öunœ¹»×ùKæ{LÇ šÅ)tÙáQ"öt)4âÆAŠ†$¥>Lº—çDcª»¾Hó½ƒîž‰ßðð¨W:œ_ڗ39{aw´É~ÆxTí¢ê­í/;º-ecâ¡Tôö«‘>Ie§¨v¹¦¡Xê\ 燼%ÏÏa›¯Â! S)=S~Ö)Á‡îq¤°^û£­7^ö›ìLAWNýøTñÌ´›Lðò¹Gً–À úåÔ¢4zŒÜn×k¹JD¤V1)æ‡>_Þdg\[¿ö*¯šçº—dH™gòÎÀ†„pHwó>tšdi¹Ï“œ,AêÐIˆdÖê¿íö4ìݶËÖÃ%™Áÿ¢Ùõ–qIä½I>Ðt"VІr´ùâ˜2Ç*nP–«„0é?Þ³ðY<Þã}ŒÍ O &ÊæŠEߑš'ߞci±ÐŠUUfPåïêòÉÿ„ÛÙT*Á-Ç9¥”B;az¿:s²w_Uø2î Ôö%g\¨½oôÅwáŽÞµ-h“Üœ¬ñ‰ã©tdjûüuö£™C½xy°¬LŠÓ3]6 ©“²Ž-ÏCõáGûyðTÉ <ú/2N ø{eu»Y@Ο3‰cœdÿÆëõŽÅÓÇy¹«S+TOv‚­‚/†¥ÎNª_Ö #jj}N5‹›ºe`ԕ,>ê˜y0…u<9эÉPÖô'ï(.ã„<¸ÙÆój\H@›òÔÆ .ð¥—åáÄ%Á‰é»è´]NP»ëÑQ$bÕòyÁÈ7Ü&çð¬ÌèÉŠ}@/ÌA̘oŸŽà›Fœ‡7©Ú-->U)ÅáY±#×ä`†?EAjK—ŽxíÊ*”Ë2µñ¥!øÖί«'ì<EË×ZT ØZîàZ2.>·nnízík2­áønA4Ã^©|nÞB·µûi³›Sµ¤²)›ú{…Oö]ü¸¥‘Œõã|+3»ùñQÿgÂÌÿîCÆ +endstream +endobj +1146 0 obj << +/Type /FontDescriptor +/FontName /KNXTDX+CMSSBX10 +/Flags 4 +/FontBBox [-71 -250 1099 780] +/Ascent 694 +/CapHeight 694 +/Descent -194 +/ItalicAngle 0 +/StemV 136 +/XHeight 458 +/CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/Y/Z/a/b/c/colon/comma/d/e/eight/f/ff/fi/five/fl/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) +/FontFile 1145 0 R +>> endobj +1147 0 obj << +/Length1 878 +/Length2 1328 +/Length3 0 +/Length 1933 +/Filter /FlateDecode +>> +stream +xÚ­TiTg‚9âÑ”Y’LY”J@QDv‘ECfa&LM*[?\Y¢"ˆeQ„b„‚B-.TQAÙB…*‹¬"¦*(°~œÏþýÎü™çÞû>ϝç¾gôt\܍Ù0îØá˜È¢C–ÀÖÑÝ bˆÎ¤èéÙG„âØŽ±…Ø♦™%‹iijFѶ¸@J "@³]7-2ì„@¹ 8rDHكËáwœ‹"")°ù|à6}BÜ!B@`:‚ŒrEÀ @1 +cڑ=ÆÁÙg ¾PBHš4Òä:@Z„qŒ/0£0œprB:ù˜úº¹˜Ïwâ„L·ŸÙÒ¿xNʗþ£ÀCbBGFìk©'òٜ#£â¯Y{‡rÙXÆÐz:ÓÄô3 +íP » "n àqøBdG0øk+äúfŒ0l=َ{m ÿÉu†t᠘ÈC*@sV=SC³5¹%•o&É„H!ù|yóýjØVŒ‹Ã(X¦‡ 8R +yƒÈÊ‚ŠÁˆ Ò1ƒŽá"ò Wx8A™ŽÕ08BrU¨0˜L%pšœÁÉkÆð'WŽˆþ ™2á#!6‹‘PŠ‰…³çC@vÃa.)Cže `x&ù/ k=`Q291ƒý{‘66¸ä1Ë[l ? ‚633ÓðÿrÅAŽ›¹«d_jJFˆ „K‘5ã܍‡ƒ~¸~ôRÄÖë æ3”ß×õ˔~ÝSq…ÃÝM3]uD9ٝ¥‰5Ôàõ܍©K‰§x¿Ñ K KãÎçí9eZMou§J£ãÒT?êØׄîNÏ8Ò©eYMt‰]c$]Y»0î³ÙûcÕxG³Ê·d]M3ÙE¥v…Ti{ïÓÕòòÈîYq‡¶í´w¡ +íâôxߪørƺ)¾¼ †®/Ù·û:ªÃ“jÎñÕޒ!íÝczon»çIÞÆEhj¹/P¢>‰LÈ~æ¬L©Ö¶¹Ó^_sø^'#)j[•öΕµ]&šµ†Ni˘&s¯¾,×xÔ½ëçbèØTŸ’fnÄ»¸hظh(wu²žú¸éq_ºæ»ª€齑^˜R‘ÀLÿ´G?K6yŽµYø‡Ñ£oÒþ³¬‘Yü"/ìÌ#s¹AÑb¹Šo3ûn§Ø†©Ø,¼vlñïk-Uâa±”ãþ¡m2pQ)*®-žÇW1v.î¼áåÕ¨¿-‘Â=»œ=`jñÔØÃ:^XjOlþ›$³(çÜZåÕ¾/Mž[ɥσœ¯|ÈVè´¼×´³¿ÝnG©5®4¨†¬Ž¹Yvû´:ÎàyÝ§l@{=0.Ï.°¸Ø°Ö04a—wŸã³}—/§^o Ö +.sEž‹l 7W[ì•Gù-tjžßÓþŠy”éÝÓm5âñö{d½Ý;XMjœĒëztö¦ZÍí°~°=6áqÕÔ/iúJ:+R­W¥Œ‡}¼ñËÚÌ×#Ï –̝ۤ*íô’[.·.ÐZÿE|Xn½»1lG…Ùö9—ïŠ7ZÌc‡CËÔ«‡y÷l_âVÝwYöB×/ºãÖ_Ëç-ôïýPy7“zž=CbxkØãŠÖ¤'9ëÊævÏ)QÓ¾¯¾ävö‘æªS#Ý£¿÷]›°6géNۜ»uÄ!¦ƒ2ª[º¤0¢„_geÂí?saµc^ó¡Ø\ƒ,•¬þoüj–…}Ì:³jM,m±äOÕ¸­Qǚ6?”Eþ 'úÀ, +endstream +endobj +1148 0 obj << +/Type /FontDescriptor +/FontName /CWAMZC+CMSY10 +/Flags 4 +/FontBBox [-29 -960 1116 775] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/CharSet (/asteriskmath/bullet/element/minus/periodcentered/radical/similar) +/FontFile 1147 0 R +>> endobj +1149 0 obj << +/Length1 744 +/Length2 581 +/Length3 0 +/Length 1092 +/Filter /FlateDecode +>> +stream +xÚSU ÖuLÉOJuËÏ+Ñ5Ô3´Rpö Ž4S0Ô3àRUu.JM,ÉÌÏsI,IµR0´´4Tp,MW04U00·22´26áRUpÎ/¨,ÊLÏ(QÐpÖ)2WpÌM-ÊLNÌSðM,ÉHÍš‘œ˜£œŸœ™ZR©§à˜“£ÒQ¬”ZœZT–š¢Çeh¨’™\¢”šž™Ç¥rg^Z¾‚9D8¥´&U–ZT t”‚Бš +@'¦äçåT*¤¤¦qéûåíJº„ŽB7Ü­4'Ç/1d<(0¤s3s*¡ +òs JKR‹|óSR‹òЕ†§BÜ曚’Yš‹.ëY’˜“™ì˜—ž“ª kh¢g`l +‘È,vˬHM È,IÎPHKÌ)N‹§æ¥ ;z`‡è{8yºzjCb,˜™WRYª`€P æ"øÀ0*ʬPˆ6Ð300*B+Í.×¼äü”̼t#S3…Ä¢¢ÄJ. QF¦¦ +Ն +™y)© +©@ëëå嗵(C¦V!-¿ˆ © +ú¹™y¥Å Q.L_89åWTëš(èZšX(Y*˜[˜Õ¢¨K.-*JÍ+'`PÀøi™ÀàKM­HMæºy-?Ùº%kú¶¶•u®‹/¬bÕçüybí˛ì"vÔÍÎL© 6¨˜^²äÕÂG[û‹g_”ðJ¶ž*\´E²×¯'îË"á5[»,‹˜Ð`º_ïF°xes×4ÞÚê¯<†Í˜ÓúHÚjÑãYÊ:7¿(×Ÿà™—òÂ)jñ¾ï÷®q iMÒR’2¿¹‚ý.£˜xåÝçWÿH+r6ϋº¿=!¶ziøÓkžß^§J7— ˜ìâ±¼Ý딥b÷%hžî䉪[EKš2ú&¸RÑ÷úåã1wz ÓÄò³)Ó_•ÿ¸$>HÊÇÁù¼]Ùûh£‰+#ìÔïëž$(¡É°Ö(ùE{àþ§VöufòKM’Ü%KSã&|ê˜!b;iué²_Ç6®›Ù娜QÊQÖ ² +endstream +endobj +1150 0 obj << +/Type /FontDescriptor +/FontName /HBIEHQ+CMSY6 +/Flags 4 +/FontBBox [-4 -948 1329 786] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 93 +/XHeight 431 +/CharSet (/minus) +/FontFile 1149 0 R +>> endobj +1151 0 obj << +/Length1 775 +/Length2 909 +/Length3 0 +/Length 1443 +/Filter /FlateDecode +>> +stream +xÚ­R{8Tij¢‹’$ù¨‘È̜a0C[®¹,…T®uœ98:sfœ9S©Ù¤‹Ôêj‹lm7DWõ´ ’­•Ë¦ÂQRmÅÆ*vjKíêéYý»Ï÷Ïù½ïûý~ïyÓri¨½»P‹úˆ ÊbAàî ‡Ádz’(Lab ¦P€ø|¸ËâÄg—+€hðKä$Ÿ@Ïy‘3p¡$†À„©TD÷@`„Š ¥ä,àŽã DsC +BP)J®E…,!†P Ç[cȏˆçX(“|¦Ö¢¤”6lh“ómQ(&p9¢q v˜ž…ÒNþS£›ûÈp<iÚkBúŠ†E.ÿ$‹$2 +%A Xˆ’Ähé +tÄ[ *Äd¢Ñ¬ãâNÄã(°‡YށI}°T¸£ãRtG áh+tzÃFØáÁKB<ÂíF¶:Ì-…1‚Z&— €óE<\C_j:#K‘‡ÑBú|þŠ5˛@ÄBŒˆ\ž€I–38t+.ÖC#„h +@ShÃl!¦è+€N&ĉI†f©‡ ر$Œ 8Gi¸O°Ã'xdüëô𧬷wà{>=‚\xÀٙŸú!"#I” †_Ôç:£ÓEÑa¨ZĈë–Äì+[ 6zo,Ôe{[SüB¥måՍ9˜05”—lOè>ÖuywµÉš;Óý×SÈÓ]A™1?M)ºœqôÔÊ,¯’Õj"OË8høÁnn·_uÒòrӻ̕äãÃ;fÏW ÌÞTc'|îq¼Bý e¼‘mÈ^[«Ϊ|ý­i&òŽgÍïÍ,Ç¥åE†<,³Ý`½{cÆÑÈIݞ-ù/ás‘³›Võ‘3‰áz–Ž­þ×&im;Õ`¡ìPݵ*ºpÝÁú4šˆDùϙÙÀ­zãÄÕ»ZèôHjò <¹3ìW¿IÚç^‘Oˆz¶Ž¢qŸ¯D›9û]›É´ú%¬ùµÍýÒ÷DÇUª˜Õüôڛةü…u«¢@®›Ýåí„Ó{·zK_7AÕ>ߟwí~Ó÷?iŠèÈ鯏úû¤ÖøåˊÆw¶e-¸Œ\pYTÊ1V³‚+ÆÈöÒ7n©|‡½J¥UrRC]6±Ãäü³0 ÏÑ4»‰cëëâÿÛǪ°œë^iÑqe*ؽ"¾õÁìþÞüRí…¬©pÛº‚u·ôY7÷¨¿0S§ÜMÉßf0ÀèZ•¨0 НQÓcEÝ÷]^U{#ÒÈ6ûvcaþ¥M»R¯xœÜ¬¨xURi¥N²p‡v~…i¥ª¬·¹ûÆô™E¢¶MæX]†L§¤¦,ªGVí¶øU”Ðbr^X™ÒÿcßÍÁ*—‹‹ÜÛuÓ¬OÔѧ>­¯uáápSrg»÷²×Ž… \º:9Í+Ò¼}OzÑwÆ%ƒYEÌ Bj¿Ü”Ü^ž¼ ó›bõ47Ýú¼Ei@¯rÀ÷c¸:ÇIÇ8ýùÎל¥È=müÒoós– àÃÌ"…NŸaÛØ`Ë¥N^¹ŽÈf{QÝkÙ=»jõ˜öccxÕLJҒž ¼ö0¦5Ïí¼ž! ×ygxv ª¼7T‰ìœ[`û´‡%)N÷A;»Ær×̲‡§lk¿Ñ³X‘Ù .˜ ôí½˜±µKí­ +^̐峛U½ÜÒò3ñ5¯'l‰,û¾©£5ý%ìz(yhˆG–UÎ9òìö‚?t/õ<2hޟ8Îfõ‰{Ñ;Õ¥?†"yQ%çó½nœÒ{¦jÜë0.~·¦¨ðìÐ኿bfM´«»Ã<Þ4hí؇ÿ ³–¶ê +endstream +endobj +1152 0 obj << +/Type /FontDescriptor +/FontName /YQORBY+CMSY8 +/Flags 4 +/FontBBox [-30 -955 1185 779] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 89 +/XHeight 431 +/CharSet (/braceleft/braceright) +/FontFile 1151 0 R +>> endobj +1153 0 obj << +/Length1 1361 +/Length2 8489 +/Length3 0 +/Length 9296 +/Filter /FlateDecode +>> +stream +xÚ­–UT\Û²†qwMãÒx£Áݝ ‡ÆàÜ! îîNp‡`!¸w‡à—½Ï9;¹ç¾Þ±^ú«úgÍ¿j®ÙcÑR*«EL FI¨­™ ¦ .ÃÆ`cfE£¥s€€, ¶â`'€—— âl`ã°³ñ±rñ8ÐhbP;w 3s'ƒØë¿D܈ƒ…1Ø v2‡Ø<×0[Ô Æ'wf€ˆµ5@õ¯ŽUˆ#ÄÁbŒÆÆ0±0vAÌ,lÑXþr$ck +pÿ+lâl÷Ÿ” ÄÁñÙ€áÙäkÀ³E¨­µ;ÀbŠÆ¢}Þ òìäÿÃÔ—t¶¶VÛüUþï)ýŸ<ØÆÂÚýß +¨³Ä 58Øþ·ôä_æ &Î6ÿ•q[[‹ØšYC@6NfVÎÅ-%-Ü &ÊNÆæS°µ#äï8ÄÖ保ֿ“Ê` ['uw;€õ·úofûÍÏCr°pè²2³²²= ŸŸÿüÒÿ¯Í$l¡&¶fvìàvGc}.Å<Ù¶&7ÄíÙ1 ³-Ôéy ày2ÞS¨Ú_§Ê°ˆüúñX$þ!nV‹äoâ°ÈüC<Ï9åßÄ`QýMÏJµßÄ `QÿM\ÍèùÅ`ÿCœÏUÀŽÏÇfáhõ[Â`1úMύÿ!6Ög& €ò>×3ýŸm™ýÏ¾Ìïý<sw;sˆíŠç˜ÅølÖê|6fý>;³ùlÏÎþ(õ|¿X à³3»ß{?ÏÄî¹kè­°=›µÿÝö³ÞÞê11²¶†˜:ý“ààüø׍û'ÃûïÌÿ³±=¯pøŸ{tüŸ­ü)~nÙù|nÙå|ÞÂõ7²?·ìö>·ìþ>·àñ7þßË"* +uórp€ì ¶¿fÇà±zÿ/¡±³ƒÄÖéï¿£ç+÷6µx¾¥ˆÄmnjÌh™\\ôA"g¼ñµ#YjAàH{Pm*?óþ2?Þ´CÃ7uÅn®¥E NÒ¡\‹‰)h•¸^Ä«ßS%h·óÅë¬45äcã}½÷p}]Ø6ŸÃ¶ç^mØ50ÏS_®¸´#VÈï²qg†#ý˜y8ÿ`å3º:‡žbB½™„¦ŸÑ"ŸÑÜY‰¾=‚æ@çòˆôÒ.ñ爻–&­1Sy#2àg +Ot¥*ŠzÁ ‹)=^—ªÊðç ›_‘«wMn¼—¼VtÜÚâ迂>Ã0Y.„÷zp„BÌóî­ä¼§e’á=×Çó);…2¾ZpW´=!ä«´Ü" ~’mŽÊ5ž¶ Š|‰fVý¸ÈŽoß府¬Ñ¿|ò9„}´÷Ž 5€æۘìðõ‰ò‰w'\M:œÈi6óez%+ƒƒå æÏÙ|nžž¯éýb—k§uIi<ልµ1ñˋOv›:ûíƒ{ð½Ro¼Ôîe‚±ú*þ¬á½¸å:²øå<ýˆ«WRYMèÄhixúNÅŽ©áHG`i”—† BkŒjO£áŽ ÿ#”Þ=Bøz-z‰M¯=õœo{I-<\P3ü*\ݑq+ãe´Ð­Yi€¦ôð +¤¬‹WpÂߒ¼&d‰G GêL7¥·Õ€D3Œ¹ãF™¹ÎBáo`­\!·îSÌЬ`fÝ¿E68NíŽøTŽÊ;+3’œžTh[Ÿ†£…\"jÊûšåòîøÄÏçÛ÷M¢ˆ#˜–O-Œ!uùõ4†„?6jq8èËvµ÷pM50ÎG,ã¿3¸Y<dgÉè ÷l@éë +— 0ÍéYã5‹™³ JEŸÕn¤p¤"{'6â˜aòËÚ8á¥h4suц ˆ}ŒrY”Ý›–ÌÏÏ«<êÎÚ|‡³ÁjGRõsI÷tmÁ*oYJýÅe÷jMð䢝&e;¦ŽÔîS}9CyˆD–Ð=†—,w,xÇT•nÊpýŒœMI˜qÓY÷:ˆº–íÜ2ûiקŠü„c'm7¤|;Í){ªàð>ífLDÿØ_ !Cړf–òŒ£JdÁüà˜Ä¾TUŒÅ#:`¹©Íx(È® hEÙÿÒÑ셊ۏŠ\lô¯ð…?\âᢶq9Ìyžðx:¢ÙOæìëý¾”SÎ/J7ó¹ÒÙ¾_Ò&ž«ÏɁi½ám»X r½@(eéá9¡Óì÷;‹KW:¶t£YÅÞãFnيQ=2ú¼î¬ÂUÁ˜â˜‰46Ä֖.ÓG×äÎÆ\2‡;½+A霏}å„ï³ ¦ƒµSªÁàŒßÈçrñ‚s­2¹6çG(Çë\†¾%Y¾›`€*ûFOð‰¸žÏ¶r•â®v¸Lr eN&F.×ðˆQàÊ6f+ÈÚû‰–¢QD£9ĦƒòaS(sŸ=ì°"3M=ÿä£ÆR)'ÎEuAïÊ#<rC[h vàä%àvrû˜Šÿ™kò%­'m]{¢ƒ'˜ÎsPªî§HȊv ¯[¯Nw×T}b¯(˕ãÅ_5äbrÅÇnB|¦±6=Ð%Vʙç´.ð=ˆ^®µÃ ˆM"b³“yŠÞíÓb?Žá ÂÞ,Çκ…lâA@wû=¤y5þä\w1T^_ýÐf£=PHŠVùBö^äd8¡QÚUoèû-,‘ʒܹ¬áø÷†SÕ •¿c‹}âèÒGœN¼1W:_æŠñìGh¥O¾Ñ«y‚©ÕÒQ&ÞYu“àl¢£¸C/ìlËáz°°/2ÍìG³çÑ6L6ežöVª'ôÉã{ïKÅîû&"aÌ[Տ-|¬Í¶TñæÈ»læ½NE¿]\ˆé`‡€ýâ?ÍìT í¿°ÐÒHq¢â3"þ\E™+ ¥?É:7@ýf„G´Œ~“!—ºŒ9ö/»˜8rÇg¼ÒLO€ £bº3!qhçy†¢¨«op1r8ëU⑻Y.Ü¡[ ˜§¸Õ÷Î[«‰Ô€­ÉߦX¾Ø%NKÅÂÎ`ßZє 8òåjµ.æ³3)ÌÕöAúl¾Á+ª8TØHDâø:0ØßÿzßBŽß§Ã”yËJhë ×“¿•(qÑæò} óàO¬$“Zë³Á6ºíO²uÞ/ö`šŸ0#p¢wó“⩸edç0Šú–³»^vc®ƳùOV¯Áx@#í+êxL|w“ZT5»l8sÁýxãΪ´B{tØ Ý_Uˆ3cÌï ~·µUFڂ‰:04UBcõ%"S$¿ñìù¤\2™/Š:Èr.FŒ4ðð¯ýñûµÑÌ9‡ ´¹=åX`²êQ?ñ'mN%¸o~ÕIgì•Fæ±îr +< yi[šwD O’Çèxç4B”@ð…{,Ÿ£Ð x£xUé`r[ÊKÈõH½[¢òJc.ü¤)Í;„VoçLâ ¿QÔðí摐vµ÷êܙñvß ²^4û°€œA~wVÈ«®óHÖ¸>†„ØÕv‰y U4Êm;3åç/™X쭜Ø_ù¡Z”€åŒœ rß<¹¼¡-W†–µ,Á”ïÂi2âkºª^{ :ݟ._F•2Qqoø¦ …SaK:Êïe7óx æÂ8|ÑV8 M[g‹yQ슲:U.ª ¿Z ŠíªuG¾Ð'¥f½%¦­iŸÇ¡KTå±,ûi—òt°¶RY—¡›/¶ÛŸ¿˜&2=èWñ&3˅}ç{®lJW@¶Y}ÅwW!/¥Ì$……†W¿!³+΃Á£aBÕ¬àbA·èsnfÈزŽ^°üã=‹t"Œ ´Š`™ÿ‘OÊ5ü±Ç5eÂF$ÄXδ}<¿kíÁ£’jæ¼ðJgPôáK12wý¹W—ñZNE¯LTÒ®™J(äñ|Ã뉘ì§O+­¯EP¯¡é4cÓQ2‹ú@Xâ“VŒu÷ÝÏKИ‹â¤úÍp‘™{r¸D¿ôVÖæÞ»”—°ûª©–¥ՓŽ®Á՛#®€ÍY&É«av{TÆùyŸÁêrRKžÆâx± D™sÇ|Z‹ŸöÞ,$Q$Ö\•âäKìþpkï’RAúßA_+µŒ…ÃÝûãÇ`Ϗié<$ûuÀB–¸CÌŸ²N;—Œ”eB¥ÑSéÔοjkÐngª_åbyOW$Í¿)³ýlpùjѨӮ¿3]ŽÜŠI]™fÌÆõTT½hêi«­÷jH“¹½#˜Q$$†O½£üEÀàèCÀDŠTÿ†-u¥RCn¿§Ä[|¯- yWeiZõªæÖ/Êl7ò¢?n«0â×0²˜=3åÒÉíӅÄÜ`ÉÎOl¼CyÖÒåêŽG½kÆ|ZŠ¨Y’üýЊÙlÄÄæ>iRyÌ0ú€N°.“Ž?V¨½^å%õ›B?¢ ½Ó|£f½ý±s)#<<’ ÆòÙ çi–Íb¾®EƒyÈùBAcÁo¬ÃD*H¬'t…{ˆ¼“ý1³ÍOze`¦ÎÑÑâr;ëÏ ]ðþR¨ÉuK–ôM~BeèV2‹ó-¾¾µ¿¨Ñ­žjÏ¹ŸÛ'|õ$Ÿ¶¥!}š Š×ë´ZŠŠGÕ6#úBgÝGØ'ÜDAQc]È=ó^½ÚÒ¬¿Úþ-1BÀÇÍüV'žúº·´+ 9p¾ÞC@¾ ^r$)>#¦SÉ%®Æ*Œî9áú ¬‹ÃÙò,°>®C{¨&ÿŒâMbª÷ª“[Ú2êF{;2A »âÐÚÓGés!˜´¼(Á›ýYýÖÂÂÖ)ï)vצR̅ÈøIX\ŒoT݂£q¦wÄč·õ½úŽWv´~á…qvC´¤(yµ8P$¶ójœÑ>MŽ»}dw¦VžOvñq]ýhÙ×JkA›é9ËÂkQópoźµ˜É ¤D_ˆAÈ3~ÁOJÛ5c’;#™¿ 2 Â㌎ßã@l-éEŸ¸Þ"ÉLsO=,§g>yuEë¬(±hwŽaÆÑ·Ý¥™ChZ+tØÎ3¿ë‡þ/óU¸ìaޔ­–[{bwU¤âGi£j@¿®ÀäqiNìcɚjÿÆ®¡@Ÿç=ßj¢ƒ|·èÍËÁªA…ÌG'xö¢ï;Ml2ìêèêþÌ»žÕgˆŸÔ€j½ž¶€ï¶¡²ÃR—çN<(ÍÅ©]gk”¤@z—¡‹èªÑ[XXÜãú0´1S-AÒ. D‰XËà“5v6ZZ€’·ÃFaC£Æýô~Ѭãý;>ൿÂ×ÝÄêˆÄUMyû±d鹁;مÈO*ªè\¯âVH4%ÞrÛ¥Z†gÍ×M¬&’¾¯ke¼¡÷Fªô¹!ø’Ÿgd™zÕèƒúá_Ó<¼¯Sr\n +žÿ)MW×®Yvoò¥ªfpÓEiø(õr½ÖÊ8æŽ?Ó!‚½¬¦ßæR Ó`„åÊ9kª¼Óª¯hšäG6В©` +ÉòöÎjY ëB–îëÚ*ù®•³Ô9_ãF@NǤªÑ¯&‰o†ü”å܍we_yıT“­$‚5 ‚³QÒutk¿òð¢Ò·xñ‹yþ6“;ÁvIùV ÕcøÚ=7¨‡Ïæ h–š4“WéFHTÚFÔQ¶ëÏÛP]ªšv×¹»¸2¬Þ46|Ž¬ú%8ċÿ3½)„Zˆ]˜«¯³š;†é°ÁÔÝi,†™ +M*§%W̐ŸxæAÍþš8}*Gï‚uÔÎõ8Y‹X¸<Æk?8”¶¦(߀j­9P»æª¡½˜:Á£ÆÞ/nòsm§ýG ¹&’C“ÜÎÛ(?›i<£K…¶@¤"XZŠ<|Þ§¶¼¦½ã»a}YodJ† ¦¬nåà§ÜC|¦åJ €$No¯³‡µ &Taä² &ZbŽ>e.OЗØ2+åGyC>R÷‚uœAbU2íI_ †MÍo·JèŽs’·™;X”ôW<ܤŽ)¥:Rm!¸IÁ­n^£® äzŽy…0›RR¯tE¾¤4d„ aAEšü¹®/DÎýÔk0Ôõê[]å)MJ¯‹ .H¬ “/P¬§"Ú/s‚À¶%‰D~If“œ‚³åfw=¡q¨Ÿ :h-L¸7\ÿÎBæ#€›gŸÊž­ø3Æ»½¸Zö=8½ùÉt«ÌÞÝägËޕÓrC°Šýb’óPvĚÄ_T6©#ÇĪ…¸&h]ÀiÌ«Ü@Ÿ0Y‹þ-9WL}‚ua׬©kRaÍÃÐËWŒñ¯sßg¯Û“ÅR—„ÁTêÂ¥iS¹³]Ÿ¹0Ðf;Þð® 3b+pÑ tºï9ëåæùŽ•¶^-–‚¼F6¯…H¡ŒÿyÚÅY?@gé@rؾSQB"É°®9.¶H7L6þÚ®âMèäK¢ýÁšQ]ûå:,£ \ÖGé!Eõå"{¨ ó«„;3ÚÑÄÉvnÏÞKß(¿„4Tœ +gKMQjZ‰cŒE;ÝÃñÙNoÌ7R˚VÐÚ¸œÌE&ÆFšã  ¨›–—¥ŒÔ:Fý‰['ÇãєԘl3·ÌÌ ØwL½¼[jZJE‚á#åœêÀB¼¯èÈ¿ÂåÃY§µ~¾dϲÜ)ð ²é<šT3s7ڒ¢k€eï¥%m±÷.[Ø3û@·;ZaܼʑʭéEbNÁ3à\ý àúõ‡yÅjÂîvLk.Òò8w…tWPБ‹¼­Öݨzȕw`á<ÔU-ð:6H4fE7J]¹ø·…żÄ7Ô܂·úh_)dásDrMMôŽ à„Ä?Á=Y =)úûMíÒÖ± +7˜)N{̈a =M¾×È â$<·<€4S•ø^àœ¸ NÿR,ÙCï°Û゠}@šSûÉÝzþSÈ<1åÇóç9_&;¼n¨¾ø27¯ŒÓ][£èƒ÷Ü=шmIiIŽ$d–è;«\”Ø¡ä§ÕeäáqÒý~ úABÓùJ\X½¬˜ù‘úkJ!mf‘qSpáAR^7¾™iÕh ÊÎi‹â™WAé7ÉRã/uQ¡³†hÍ Æìè’ÅÙB^¥äOíÑí†õ±tM„a¨/[èÎÄò#-ÄËí²ªècu˜‰™ÕtMÇýûVÕä+˜LM±TíhrŒ2D/ää{DÑgZV¿T|}¸ðí¦ÐÕ;ò”#Û«/ؐi³DÁÃ?×,Ý~`²¡eý€¨Vtž8!~¢ÙýËèéÉ\HÃ_Þ.†{èÎÕN“áJsk\ÏVCÞ8?ˁ mÔxmÕàÈB³C¹(´|,©“ä(ƙÁ!_¿$²‚òöqâ(°„™ ±˜045ó՞öðnâ|u{Q%irc4šJ΄ž»tFl;FE¾=2À«ÜN/ˆO¿7ëçŸFí•XeV¨,ƒzåc“=µÊú•N9šç/òD ®÷WÓ&TìÝ^ÊåÖUºp› +w%çL$—‰nïLÚêfߒÝáéÄ4rdB¯¸ìb§Rù¶g/p•¦Û†’ë“Ú3<5Xkë%#H^„_„]Ç°è4/6ZøTŠ¶û=^bv¤áu  ÃZrˆÔ_ç§)í Ì›º˜ì÷'Râ£-Eà^ά ×5yÍíg.ÁO«ԍ™~£Ö¶ Ööy ù~i‹Á·ÝɄqæ>P“'›u8ñXì;o>’N%pH²þq@¼î6Gg1Õñþt…öDsþ6 +H‘&B&~HúÊù¼¸í‡Š½¼Ú«SÕ1« AÍI†fçԛ‚éŸcí<¬ššon£¬-ÝÛ¦-ðdLꉷµýIÜÔzж™9ùlÔ"ލ®‚Ø’[{ "ºò¡÷¨üdìԞ~û£J´0QRëøþ†„çfŒ7I¼§ÃÑöð|öÄêAïBT(+¨QÓµøÓÆQ/Ådc‰gÊ×6Ù ·Ù{&صR6 ‰bîv)s´‰_òf‹"GRŒCuçà©H™34s:f`M?¸reDsyíX}EdÊ@ìfDmót@:G¬ÆMÔÆìÈ.œ,^^ˆÔÛ·7“âQk¾<ëe|ñ©gﷁ‘Ic«7¸ ] DÔzßTQZ8Kƒó©’TâòH0LP3¥ÍHIa¿ú¤2]AoÞÙ·}®næ±S¡d]ƒ´x"‘¶‰-c\ÓWÞÂÓýV¨ù +¡µ»?s®cku^ +ʈÏÓëÃù•šóƒo0 ‘&˜5?Êxò«=˪=0JúÀmԌlh‘%òƒyóáî§U¨+êc€…›OGV|¢¼ÃäÙþ£Wšóã;Ñ(ä:¥BÅry¦„÷tÚÚí¥}ZBÞHÞ+Ù`ÈŸjò-«)ãۗ„E>˜}¤"L&v)^ˆK}—|œy3*9”w -F„>dú0Ѐ3›ýGÐ)9yù=Ðv6ƒÙb‚Äá#»ä»ïc¯8Ó>„ ÚÏ#+ž` +bjv’Ýus6Þë~œ¡³ìR½€1ÿüÆóÌó*ÙǏÌW‡î‚“ïö{“”Î÷úkø+½he—ôæâ[—jPƼPhïÍсÜhq>E¿*K¼rkö­t…ø7Eñ*`GgNîÞÄ¢æO J‰·‹¬ñ8„Î6šš Wø¹œóË}1/a[à ä7ƒ‡‘š;°eÑ(@´aŸÇn6”ƪ<ô¾™ž®¨dg¿<ÊÐ"Ü°Š°Ä/ª0^!BzÓ[éôãbÁ1 û”¤¥oNñCI®fôwìÍl«=ÁÑ"0¼D˜KÈÃëa9Övö'}IJx›'±Üh õôlo؁§U¸íéŸÖ~˜’yC+ý•sŒH«Vd?ÈÇËL¤{ "ÇÒi„J$¿ÈhöØ&Wøš¿’žà¼RI•¤µ+Å¿¼JçÀ—@% šâ¥‘üê?Ó(|× êæù啳4þ>Ëwvæ‘w†wÝB­ØoË4E–bN—[î’é Ý1…ìÖ.#$–zÐ`Iürj¨|Ëa%•ïª>aÌlÿÐۓXIOÞ7:#sÐlàZ¬þjVk+£ NFÐ8«šXл&îƒãör_*ÅÕõ™˜ŠÐ¸n¿K¡œîº%,3ãøhz™³ê*gؙf…ÕpuÔ¦‰Oü`gºB¤ªpÌû)1g,g#I`C™0«|çFÜxµwxäFxU·¾l„Â^¨{ÈÚ£Í0ŒcW`—gleFM%V®R-r*–øÏ=­£¤‚kËWô7w_Ï6ùÙ2KÖÃ÷ã/âtPÐ¥ÌìN¸bT!ŒC%éÉ¡q|ÛÁü¢ll}§kÕ _ie¯xemA.“¼,Ø­VB¢·u¼~ĹÒ[üHXJ"ºúmÄ(ôn“¨Ë8wÂ,ÜMào~ê%zèçôÎæ»løÁœƒŽX•›½Qé°òâ ÿmżÁ@gÜøœf…¸Ì]Ærߣˆ9PšVqëþtöáØRdt~0#R>HtɧÄ4÷Õ}2ёhK¹èɀOA•LF5ÏÖÀP>0ŸÄüåÿ +ठ+endstream +endobj +1154 0 obj << +/Type /FontDescriptor +/FontName /SONTLP+CMTI12 +/Flags 4 +/FontBBox [-36 -251 1103 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 63 +/XHeight 431 +/CharSet (/A/E/F/I/P/R/S/T/V/a/asterisk/b/c/d/e/f/g/h/hyphen/i/k/l/m/n/o/p/period/q/quotedblleft/quotedblright/quoteright/r/s/t/u/v/w/x/y/z) +/FontFile 1153 0 R +>> endobj +1155 0 obj << +/Length1 1481 +/Length2 7456 +/Length3 0 +/Length 8327 +/Filter /FlateDecode +>> +stream +xÚ­–eX”íöö éAJ†D:EB¤a€a†º»»Ié¤QºARaE$¤¥ëçÙ{?º÷ÿë{̗ù­k]kë¼®û>n -.i+˜H…s¹bYUmm È͋ËÂ"ë 2‡ƒaP9s8H ¤]m|¼ ˜€ ˜€. @æèé ¶±…ØdÙÿJH;€œÁ–æP€ª9Ü䀬aihÁ,Á ¸'7@hþµÃ  r9»¬¸q@€Ø°Ù€¡¸<)R†ZÃÂÿ +[¹:þgÉ äì‚`CŠd %ZÁ O€È—G †ìB*ùÿ!ê‹+¸B jæ•ÿÛ¥ÿ³nî†xþ;æàè +9TaV gèÿ¦êþ%NdvuøßUe¸9l) µ€¼ÿ +]À + 0ÜÒwvýA­þWÒ·¿ðè«ièèi<ý÷þ½¨a†Âµ=ÿ©úWöß üÍH{œÁ€×¼Ü¼¼@d"ò÷ŸÆÿÓLj ³C‘7BP`îìl¼Hx`¨Èò@ +æá†ÂàÈ-¤'¾k˜3î_ç)$à‘þ+ô/ðÈüCÂÂÕHD9ÏoðüCÈ£å1ÿ‡øä‚4ìbÿ;¹Ýâ7‘älni‚C@Öðßqþâÿº:ÿ, ûYþC‚Èb–0òþ'äåðXýÈ ?)ÉúD¶±ù<¶¿å#-±õt´ýYÿHŸìþ@äøö RäDJwø@¤Ð?*#Ÿ9ØïÞÈ\ôáÈkÃãø{¹×ÑÜý/Ó€ÿŽþ·eH‘ŽÈC€ýa 9¸Ó?ȏìæä +ûë¤þÜ"ýpþ‘ûü.‹ÖbîbûG²Óïí‚H9p[gÐï)‘²áî°?6 k¸þ>[d}WäEuv±„9ÿ9;ÒG·?©Öý7"߀< ²«çˆôÍë·fd%/ó¿ü߇UFæáÍpññ ùB¢‚¾ÿ•féêŒôþ÷kùÀÿ‡­ÁÈ·ä²Äý<³|b—ÞVî'_4UÁ*cӒ ÖØ3Ӊ¼˜ˆ +)QqâXiпªÌ"#ÜÄؤw¿¡q‰êðy5®p蔐1w·éf¶™åÕJ£œ¥êùݑñt9‰Í¾¥Ö[7ÿÎõ¦‰œˆÑ|Ãß3Ó÷ =٘ã‘Wêy¡1y|ãÇæ +>û N¾}›ðÇ qQ€E+º1±ÂÀ2ϝZœ*£Íþ7ì}ä~ºOlW…‡}Ü(RŽ€v—ü÷~x<ô,O'ò½'Èì1÷Ó¼ºðcUG»3ÃÑöXžÚøKù4¦yŒ…"nxäû5ÛÒü¤õ)L¦a?û¾qôÍ4î(,#„‡yVNœðÞéWV‰ûŽÌw÷G¯öNâ´qˆ°ÓÉ0=J„}ý©x;„C²›c~:£Óµ:¼D©ªè&ÖX?Fú龑}Ə/ðKÎ7ˆ6?H‡µêZŒ—V÷ª.÷ÐÛøA´¢­‹ÒJ+L2GkB1CÚú\ôÑxR­ÖuŠy˜*É{T‘ÄXTÎX„C=ÍD +šD»ìÚTý8vë’m8°t8òð­8ۗå!²Ð¦¼&ñBŽèKy?ü¦lÐA©Ã'õ¡²²]b¤aÍß /ªä®´<>ŎíóÚ²‰ËÉHf©ŸÄ=Õ]>óhý²e zåkŒî4žˆZæÇÓKà̊Øk1ô¡¸ÊÐÀ2Χҋ°&Ó£ï'Ë½ñ›÷\OÕî~Ÿ¤UÕ"î†?6P}[s(¬Ds#ō~FmCWoë\í>°ë§€¯xČmÈz¨ Tx~©Ü¥dkVAÂõSRô æÅc3Šï—aÞè7ìËŸ~³C/*Y´ÎÄãÊOÜÐ"û7W+ºcªsslæv˜¯—) ŠÏ=ÑLåi*Øk„{)yš +×SFõ™£Pß~gƒ2w(dǤŒÔ«à£ù¹™¨<~ßܗžþv҂¡¶û|Š>²ªåÂKí[}¾²–‡­Ò˜«Ê,ó|䣔.3NYÌÖÅ£AˆlW¢}Ð){읢¦MËÝü^’¬³ +¢ey[¨Ð“¼bÀ储ÐáÂ07²!Èh³–6}àœîœÒÖÛlÒøcuÙâF¢¬?¥lψ åWûðEú1°pôYN_Ë)Ðþ™öC¥o÷ÏI,€æh7¡[³ú$À—3În¢‘ôFÂz‰Ó("ñ¬žâÉÄã‰eÛ#3ÅYæ½'Ñü[¥ØœÙÙ¾ò×q[ä¥'n·Ç®é‚û¿d¯» º‡GCx WNîöÄûVsL +3V‡X ӛß<.—JÔm’–V‚ë벚}Eë~õ©¼Ñ—¾éŠNécˆüŠ¸ý´rm*ý©Þy¿ØfEFʱð‹\ˆãAÖO2­Í2Öm„ù†ªàtì®x ëš#FP¿£šÎ…WÖuÁËûöyT•AŒ½Ö⍯ڲu’^5š@§dêÖôš¼FêD®jlÆ1ëÁH ; ŠNÂé¹Kg„ֵݥC*@W&£UZÄÁ¤ðÏ2/çnO2'3jªTS9—BZˆ[0’JÀphʎé©ÏùLåU×K£‡ë¢3;4ÉW uXÉq³@'Q +•hÓQÖè†Æ—{²y{IëÄ +ªž‹a¼\Ϧ¸ø¸ ^È;öƸ:øûÖYÞüÊ~^ÇJËGMïX`ÀOý5ÐX~meî`s(8Ì1j~2èZZ0s‰èʖų%”Ü\X¨£ççâ7*94? ÷šE&‰¿%Ž}¼¥³¾'õÜ>iSÑÛòã± ;’ÎPR“d‹öŸ³÷X²µ 0ÈŸ¼Çû®R6òóV†$…¸¬èiÏYÃhõ)½ Žu¾k]ùy¬Å"ÖWaU3XOì~zæ5úÓx’üê§æ‚tYÞ9ÅætjjIûuY¥äÙd_ٍEåÐ®ÆrѪïPÏX·ìü`„W"¾æQ–<Ãó Ù3Å}fÓzøÎÌF5ÿ£š ¯ÈWD|µ+±q4ðÉ×àOX«˜”½€•RêR¤[²ÎÌ,Ô´3c¤p(váÚb…ÈÉnU­]” +xkq:Ú²Œ:Ñ[5/ ýâŠâ=0Ý ä¶øÌr@¢HXjgUïi¸£jÌñ#pMbDAVñÐig¬Ç +²ÆÀыµžoþh*ÉÄ°E31m«®HÁ9V©L hÿd¯æ‹^¬‡m¾—š*Þ°ŸY/”ÌSà,’†ÓövÏq}6Ýã.ÖõSª_´fŠÜ¶uIá$¯ÝÓNÏÖ{rïkŒ[çŒU:4U…h4±Ï1²¹a]BÐij¨_Ç>ïJØ<~Æ®lÄLs%Á +݋‹9$ZVË>Ë:áK¿NFŽӯ¢B]°ˆÒy͒·ãrïCøZojµ†.×»8Â+#$„&èáÊ4¾k1šñ¶Ûi‡úz£’†~°ÑoÌüòAl½&£úöªù‹ú³TÔºìÁóWl nènŸ„æ:t„J9UîRBÜ +ˆWŽHDÔßûPøJ= +ÖpÊSŒi-Ü'ƒÐ£ë W¨b:=˜>vT~m9Ðsþ2$ô´éhq”¢ç%hJ~[9-â»0”ó­âR3—P!ý X\¿ã‘f­ßé$Z(ÿw¥¹Q~ÚдÍó8v6|’ÂæØì½.%s´vò2ܒ}É´‹>ý Žƒ^оIãu™š˜èx"æµ YUŠz2·¨¾Ê¢®:O)¾Š^íJ/^M;å“E(ÅÆì[‘Ê=EõŒ\ÉÈUl,yt¥°Œ»Jð)$8«{4<¢VmY$b;óë¡´mx¢ÛQVBÙ¢M­%QøëÎCŒû‹ƒðõwMŒ8Ù-/[ªU$…̊„Ž¬|ƒ†ï ;J‰#UÍÑCOaÜü,Š'Q#W“¦'†Fo/ +à +P€¹cKÞ|g*Ê$âê~ÄÂzíªs$V#Uô®N.wØnÕò½™½ð‹çõlðìE‰,·J²`žpÐÕd5K—þ"]—–HyÞyïÉÆ2Ñ{ '7@ÒÜÅúŒ1 &ûÜ&7p ŠOË´nzÕ#.£Ç¾ïóh-Ã¥â#”@!ˆP/ø¼ñòÇöÕü%QuZQ+³î±÷ô"S%ˈcÐ¡‚ØÉÒY3Øn`;OÛU> WŠ<ÞM!q¹<ÎàÀ±óKYv¢v­…c{ˆ +7G4Àüá„ANn?ša¶±y”Pb%)Ù@âŸÖ‰€{Ì>¹™¡ÿ°ÅsÁ4ۓõ”‹?¼„Ž+ÎÈTXªè XÉfzïfXÛ®V š¼U¼©©mE‡UXÆA³øPîé»ò1 †J$²lK¼¼@·áNýÁý½•¸Ön\¤Ï¢fTóÅ㠙èԈÑN0æ×ÄّA Ô¥Žr—æ¢_4ÜÓ¾>”Ýk싲BfšÆç #¬ ü²¦Ë”Q—¿t^r=F3º>âêLúµӑ4Ï Gm‚¼RÞ¬uÔÏö=æJå\µ¼Ã!œVlá2C©-Œ¶Aà‚½Õ©ÀîŽ3;û¨J7ªûv‰¨]ŠÚl7õšà—8üÅGÇ«iJ+2«Ï1­uÞ¬0ΜVgå¼.ÈT&Òµ~1êýØՉA.¨ºWŽ­&æ$¯_9RÝoîY‘òVý "Ï>­'oË\žüâ<ù]jþd,eRó »Šk‡².7Ö瓝Z¦¢Ñ\ú¯åù)£qÒn5Ž$»à††7‘ü¦—/’XnòQė¯s}‹Û4xÄkT%‘§ÙÏí ¨¦ÏqzOÏb¥œ£ówöRÑO@VJ¡B|ßs^Ү甝¨”´wPT|ŸµÛíõ©ª)OlƏQì*T¦B@žLñ-U”Œ¼Lþm +•ÁkÉ{slÖøðÔ=ʔ$©âwÝ ­kÔ”ü3×ÃEŽÁhBm0Hð3ø¡,˜Œ ÌV° ¤¹XƒYìW)06‡Nç,J|.a"ã“ä=~¤à²øv±ƒÞš¸dW«øû0ö”Nü¦öÝ°{i=~1ë{6ä%ÞtLÉoßG©²µ$¥¨lwôÏé[°$îÕt7úB'e×*fFÞ9[á֙ßܵÙMSEëв¥oZø¾%Åß.¢î­E\*°¢%ªÝEgwÔ{ð¡ÅdZMØ=©ß·E¥íÝo™•–¢$·U7ŠõŠ¿²¯By÷pö‚É%fé÷‡ Gi¼¯¯†¢ûü‘¶ûˆ¯³ºpœËÿ}˜²w~†ñ‹Ò<š\ ނ+v¶•¼²|'gL{¥È­r~‹qª÷ñ6Å w…‰¯ >`jÿ¼š ©ß˜ùºÿ=ÖòV8ˆvrƒs§îðKp(®™ÖkËma#ë´p%vPÞҏTÔñãX§ù^­‡sæÂÄ,NŸü¹: x¢#>NŽ¶‹ØðQ`?*4™ËmÛÏÙ,$a{žÁ˜¯nC‘=>b+øð8W>†ƒ æSƒ›¾ÛÅ)VŽX¯öIKîØtC+Hµ\ù8¹Í·•‰‚«Ü#²÷»!l .ç˜òšÎ̧‰¿'ˆÆy·›“‚Ã-1Ü|Ū)€ˆ2é"8¬°­âó#c2Ø@0‡¾ÐZl˯¸/ièJ¢ë+µ_n_kÝʸæ‡/՚…÷óò™áJòlI@OÄ;m¢üWzÔÉc&;Z¢tt•—¯g%qvÙÓÆ6-¥Y…ŒÈÒ썹ô’µ$|ªàžµØ·/æ|”`f“²=Ø×Nà⍒‰Ö’6€1…X·±ï4L¾“NUXÄóµ®caǼ¶Ÿ~Ø;KR-77·ÎljP[~ÿñ}+€èÝ;»dñ¥AÛ·ì년¿’2ˆMŽÌŸ?=çsaO—3Tqm•jàVWK¬ð]ŠÐXd´Ñ-»½Øª°Ð-Ν-’Sé̃t¿Q¢ÅvV‘ê–ç&6UE°”t¯½Ri‹²2ÛÝۉ¹ÇXO¿À" ¥ÇHÊG#<ÂK¼}j_šÂ2w/š‰„Ÿ0f¨á$ ä¹1W£òðˆ0 ޗãÓI¯åïŒòË|u +Ã.—’Í-ŠÆ{CÚmG)ÛԔÖXšsÚ̹f?gƌ} Î,º£––ET‰Æ —’¼=ÚÁà;Zõfø®¤o9ÐΦØ{­µ‘¶b{³ãY;kéá͘™µ°¶Ÿj÷cbîgÈÎL>³2¸'“áåPQÁGÔã®É!$w0%²Ó4M»`®Ú¢¦ã_IlÇ̨jX¢à°¿b{ӎ'’ö|ÃëUÀFb¿—¾‚ÊåçN¿ÜcŽ Þc6­q~]÷²wúAò#¦ªù?˲C4”«­ç(X=K{4Қ]¹o>üœùɎ ÁÊã9«`@'5§*-`,­’¢^ÙÛ庒W8,yɸôUDQpSU—.̦dõi¤¬ß¥n‹¤lÐaïžQM³¸ÃjT~³ò­ÛM‚kZìLr64+aX¶ÑÖ ¿lÏT‡€‡Xs†xw0‹£±0‰¯ƒá¯<œg­Ø¯™®¸u,Z^kr /xa(õN >]_°M{-¡ ÓRI…«ƒÆÈ»ÄÎÇàµá'’ʧr©"JxÑ+*FSûáy%eî/ìw˜¡ ?ÊlÀÁ'(À“8²¢ËSËܾˆu죟ÍJ¯.‹úD+»¹‘ñê-&bäA‹Ñ\³–Ò‰AÓÕ¤¾†/ȃ¾ŽŠjKÔ½”×­:Qg¡Ùš(n‡_ê‰^J4ÆıÁÈÃfP ã¶)ø÷† +£G­ŠReƒn㟠¬PÈX€¶/]X¼¯EOñyS P^ˆ¢Â1¨«â‹½+£"sÑΨó¹êW tA TÒ ¹QÑîz†4ª:B¡Qô]a4˜wÍÖÞ‰¶·×þ7'alß+X’œBü´±-(?j"¤ˆƒ„«ª1æ'$Îhóû ï$×"ŸšÁØ©ÇL ª.¬wð$wµ„ÆõO +±´Ð­Öóë¬ÎBòÎùöE%Âu‰ÖïYÈ™+îɽð¥ó`álÔòg‚KÜ<ïLãn§p(ï“š4^½A¯×¦dø*}#¼&ò5Tõ“)OௐJe°h€ÿŒ}ï»eŸJÝ©¨‘[Ve¤ëG‘:>©¥@œûÎq5„EîõS•]Š¶æɳKXM<Š1žÁƒÑ³ñB寴÷ïL9eJ³2ù?¼^¹Ö¹NØ›ïm-ˆ}¼k›"! Äáç VqOæ¬Ç[âÓX’µguè‰á6 œ¯ÙNöù†^2Æ{,ŠÓGéSÚ_x*å°°à>²,ª§z”—],´!-j™ 5Ïv£}«¼o*¡t= +üˆSp«Ý]â ü¬¹gPe‡p¼@s0C?§ƒê•`îW³Ÿä·aŠ%h†¶ž+Ϩ–³r¬¾à¬ ¨˜´DËÔp€gWnÐ[³Íäðo`-« ³Vo)‘£Z¼y¢›¦ýÒ-gȪV®º8·°}@ÅÐx>¡ë@…v´8øp¸Qٕ­y¦‹‰°d‚Ü袆ꞪÖ|·ê§ðŽúqmõ(X²äëkX¦WN¬ÆµÀÁ ©î ÏRݵæ²ædÍÐY™m·IÙu°é{óáìáC8þKçÏþ~çyqM‚õÓjî=bT7Mã¹þ;³K~r¤@ã]°ÒǕêO4«øB_·>Èþ8W33¤ð•vŒC~* Ú{ŠFLwè>ºZýxí}ðÒ­u^·ï•Njí×êñ:»9Õñ&—‚QÒk2Á·jxÝŸƒ7Ϲ÷zC÷qfx²/£EƒøˆOæ‡m~¥7Æo§(²®´M<¾N/Ž}rÇVbŠ{õ Ðð³?õã«}z÷mó “-]•Ë¶~áa× t íIþÀgÜ +•_9µW½¢¬Isžî=‘§h‰“̾ßèb(y¡™Be>á`Ü‹k=«“=øðÈ"u˜q½â<Ǩ‘!s{~Ö¾2ëøbcŽÏÎå̹_{ìÔHºÊmúˆ}eª(Î!£û¼ß!øDbÃÊd{ZµM€f«³IRf/SŽ;hÏõLâ´¡ÔxE”\Òºz&éú,Œf|÷d’_#ºNõ¡Ÿ?%&ëö7·ÌÏl“jáy,×)‰ålfŸ®\ü#ŸîГúÔwz'Ê¡ŽËwPÓaá6|)ÔN±ÇéÌ¢<•c¢Üy?ˆaP˜†˜®^tRýhPœ³¸ Zµ¢|ç9OÊ(²LX©Þ{»ÛPö£f= ¨!ô’ ÛðÉ +SR/̤ ·ãzZŸðÈnŒñ´¡ ëˆÝ#E1ãÞK8ŠÿœpÃñþÕR+ÉTÑ}G'd“­O¯ÛÐvPÉ-¬¼¾å˜sìæX¼)ün!–[á’ùQnžç|÷åJt°ú­Žtîó°ð<çÍÞÀåuƒ¸ó×£m/„É­ø ÎùOëžØm&håìµEIïYfÓ⟜à25¦—3ùGN˜?TƟo'±…„dÙ¿¹ÉU«›jUY"¬”¯”ü)ßµû üæԛõÀø‚{]Xœ.ùâ¤b,à?âüî°Ç=$ÎÞwÒ'ðªoÛ åÛþ¦àÙ)֞$ýyÖ sÙÕÔÏÑW9…>¯‹/á¸÷Š“ìË"Þ¶øÒë•röC8¹`ò½r[‡öb9Z@kf!Lš–Xì¦ïÊúd9˵ÔÞÅx軂-±e{íÖ*ì”NCñ“z<V¥l3Ö² šRLuv·1cºL¹ ÛΘ¢}åW­'ì•…â›ý@Å eBɆ^_g`Œ‡ºwʜ¾%ýØʃD!Ovd¾k‡0,|,Êhë‹x©£¥ÞP»ŸË¡€י֎éñv)¹âl~ ,™óR½6£½5üüjöY +~‹°6Ú¢!~7ã¬îa…ƒq÷Nj50û-^b¹,ï#ÿ–¾ªaØxK¬õ\ô~(. ÄÏrO·Ú\Omܕî¬Øl|9‰fhmaК®FK’—Í°(J“}(ˆ{е+µÓçUèÌ°Ñn)mâl@Ž±[Y¢ú¾š*ê… >”“ô‘½!q,7wIIÎéŽ0'%Èucˆé¼ÛNÅ,s×Bj~(#ó»Ýå“è&z‰Û]—­rˬf*Wɋ&ëש ý˜Âr $n67,H*5Ä-å¡wòä˜¡ö\Î6|wf,ÁP¸†0;A/£3jÅ_†`¯™KPõ wµ@ãÐñio¹‘^ïÜ(®Ì²(!øódDŽJöɏ*S›@õÄݗÙXEO¬t‰÷Ç•º´áB=í‰z£}n"~¢ýæ0§q’Çz#W¶í¶EOÍe’”²}ˆ!T„ŒÉtq]Œ'gÑ 5ÁŽ(d»ß˜ÜfƒÒ¬©Æ}— U}j9?–b¤s]½©¤o ’š åP&·sb$,¤œI¹žCŠ°âôÁëq{âsÓgµßJæIsÃÝa+m? ¬°FlV¨*÷¿~£ë=¢NýåJN9­©Ð_®Óde%Ô W2þcL˜\´/·ò¡öënj{ußFll'”uUÝ5U÷ øÍÚ5À$|LŠX m&®pèLædVÍ?²™)˜ÛŠ×÷½»Z*‘†ˆPóȽ”ƒØ{Ú旣u¥Û\õ4’wgWÔ¡Î&ÿÀFc” +endstream +endobj +1156 0 obj << +/Type /FontDescriptor +/FontName /XNPUWP+CMTT12 +/Flags 4 +/FontBBox [-1 -234 524 695] +/Ascent 611 +/CapHeight 611 +/Descent -222 +/ItalicAngle 0 +/StemV 65 +/XHeight 431 +/CharSet (/A/B/M/X/Y/a/asterisk/b/bracketleft/bracketright/c/colon/d/e/f/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/quoteright/r/s/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 1155 0 R +>> endobj +1157 0 obj << +/Length1 2012 +/Length2 12103 +/Length3 0 +/Length 13206 +/Filter /FlateDecode +>> +stream +xÚ­weX\Û²-$!¸K;»w—àÞ@ãîî‚;w÷ wwwîx½Ï¾w'ûÜ¿ï㣪æ¨Q£æZ (HU„Ll@â¶6N ̌Ì<9UU.3#"…ˆÈÐ lk#jèâ0ss3„œÍ,Lf6&vD +€ˆ­»ØÌÜ @-BóW'@Èä66´È:™ƒ¬!ƆV[c0Èɝ dePþë„#@ärp™0"23LÀÆN#Øø— )S[çßag»ÿM¹€!¢Ô‘4ˆD[+w€ È(o é‚(ùÿ!ê¿Éŝ­¬ä ­ÿ¢ÿˤÿ“6´[¹ÿO­µ³È gkr°ùïҏ ¿µÉLÀÎÖÿ•r2´ ٘YL‡ÀŽâ`7‰"ØÉØàäà úOdcòß ¶ýGP]]D\N‚îïuþ'§h¶qRu·û‡ô¯âÿ`æßbŽØ  ÍÄÈÄÄ )„üüïoºÿÕKÌÆØÖl¹ìCCwDÈŀ v€'3lcr€Ü zŒ6¶N#ˆ%ÞS[Ä¿¶ÉÁ +ýúq€Â¿'(òq€¢¿7(öâdÅ#fPâ7b¥~#HÙßÒAî7‚tÿ þA\N¥ßˆTþ T~#6Põ7‚̧öAº«ÿF~¿¤Ÿæ?rU†¿„ÓÐÑ 6;;[ÿgcù+¹a`GËßÅZ£3 䬑¡Ãˆ\#CcÈÔé0ûÿ„ÿ~bþacþ;l rúW=7ë?ñÿ:™ÃøÄclkyPÿÑÌöWÄÚú÷tÌLõ™ü!-A¿ žþՁ㯼½3ä¹ý}b„éï#m¦`—?8þJÛ:ÿa¤Äì7#$oö×kôg D¨ùoÙ{ÌÝíÌA6T@bà? D©Å²BË? ĉߊ9 #[ÿÈC|û½YffHÁïVì.° è<ÄÛßê ‡mÿ•†Ld÷; !³3tÙük…lÌÿý÷Ù cØAníAܲ³rþC-3$bÿd…Xeïlë21ú="+÷ÿÿMÏÌ )þÃffˆ‰¿‰Ù!‡AÖàßö¿j@.xÏ!q„¼¢þQ1ÈÑÊÐÑübÈ¿Û²C†u2wýq) ¦8¹ÚþqÂáüûCz:C^_ŽÆ¶: Ù£Ë"Øõ§Bêö„tuÿB¶âñ[3„Éäð·‚ÿû¶uód`0°°²@æe‡¼ó¸½ÿUfììٞÓ>¯ÀÿbS0䓹Œfmyƒ,’CJ|ÄòÆKáh¡…Íš>Ë×uNµ¿ œ…¶*”±§]­Õx(KÃDمÛ%v}"tŒhóR?õ·ÿœ2ó¼ëb°›æÑB¨q‘&ç¾cGzøµµqúêˆZaru¨$A3¿'ó¬÷gŽ"µ¨êÂ2 T—¶K}Wz§†xš•Zhp-%+‰2ZŠ}I[èŠ+ZBìÊX Eèëfº¥sÛ6gŒ‡¼×_âŸõ¡C™mW¶6'}GnzFOXqÛc›âˆ™¸W؟óBgÆ{–ƒºÜ.Ehž|Ëm´Ž…r6æ)âÆ|û)– †îHXL…ã½øë \ i™ªêÚ ÞÜtŠ¯nB_ûDéͯŽY¯Ob®$.? Aá×~Í ´¾¡£•oS*~Eï›ÞøÀ”Nc—ÄlÈ_-wÛx¦™{…ÈÇî7Ê«4—)œ"”0}îæ‡ 6ô +Æ©7\‘zbº‘Ò•NÏлŠ3œáő¢ cdàXe‰µfC{ÌÌ×ÏÑ­oЀ«??ŸÛð-Å‘3;Ö¤©¿–C£áõËSv¾"¼€“[N¹Êy¹ŽçO2xd¶Ü9ã6¸¯¹Àö–ùn…CÃNÓ!`?%ÚŒ‘õQ 5j!å¾~†7³ä•¬Žò­íìá9÷é©s(q%ü6|´3ª††ÿB@K@4}ªåBvOž;Äû8L<ªü­ßÁ=s^ÿ.yo”mÃâ{Äû(CoY¥øÔó¦Éï%343r…7ß³W LÈ®´Û‹kº•˜J./…z؉4CŁLTÞ¼ä›hrÒe¡¼µ5Öµ¼'ôþÔÝc@‘ye¤y“ËÃGcgހäÛY“y][ž¸xI îCgà,»a†BÙù†˜Z{¦¥Jïžd%\½o¬£aÁq>áÒ>ü!ðǹ׎l8ªø…Ê°Fs ³v9³¼Õ¼7áÜDpÖj¦ÈØy!»“¤é–åúómŽœ1dÎö“cf_|Þv‰º¡Õ›ïí;k `…Æ—0–tkï,A/úX'mRÁJåo…r8ãBï22* +F}2Ÿ³T}~[d)g¹ØöKLMàÝÜmʺçœ}uHöêªÈ<#:nªqÖþ@L¨{aáÌ«\»®ð~vr=¶©4µÛÌz™sõ`GC_wŒ½‚N؅Š³£f#ÂG¢ŽÛšÖÝâZ(gÉw7L…’뺡ß]—el ž0Fm.(ÃàVO§a]|B¬ïž¶YmÎù å§0@]òÔ±tûšö¬˜L’S¸Ì4T°MwªPÖÚUÈTÃpÿšN·yÕ9ŠÔ, v®õ7¦´òÛ^·Ö´_`Ý04Éí£fF03BNÊ°”õtŸ*$Sãˆ*I¯F7:m2͆{šFµjûÿØu[.Fs”_H Y NSA+"ÁjÔîÔæ¬W¯'Ü*LŠΕÙ»3r¾äv­¨G$’9ký8„Â2ôjš˜Ë(1:*b:ÂâausSr›È;fïÞ¢‰ºS™r‘˜H*ÿ WæÉoŠBP‘È·OÖXuuÝ7Á[tÖ¶ /´ .;Ñäç¹ub„!iÃÒ[aR30¹`¹%“è@!Ù­ß¹/Àʔ2ð4Lè¡óxŸ½˜è~z{w¾j€Þ£.øl83´Ôàã#}Xþ3M=öh–†õÛKù!oðPðÓí‡CÜ)¤ÑÙbA¯ +_‹›rþùâ7NkZ/ tðþÉCÅDS•1D¸0ž I¯Õyú³>wTòçÅöÚâ¡Sãu³ÅzLýl ĊÖz~‚"ªOz?,þ¾±ÈÊLO(Á,sØç°UýÀ‚j‡\ílµ¸²BE ¹˜³”@Å`LÓù$·[âHBiY¨þþž¦CÔÜ +ÑàX&RÓ(ÍÁdß>õ¡•gìA);Xr7òA9\º•r^áâ=_SÞ¨•É{úùæ-é{Ñ4ϐC5™¨Ø5ýà­WRg}TCY¼L¹óÐghé~ù;•ê#?ípt1`P­ÄÔXw~Ò/þ +=€ÁÔhhýH¼ZÚi¤i¾Ãäâ¬<áO­þ‹é&&zK‡\8×ÅH)Pýx^\wrBeÐ0ÿ+Û¢ÞÔL4™*óZ{š³ÐºP€„ݱ٠S§›5_끉w`èʳ2Æ<Ö*ækXò52ÀÈúbð.²…»q1—Ž •ÏëLbÎÕ~nGô“¢}ÏH>×àq$œé@'7KX»wÚmzª‡Hué,rí³^Ð%ò1uˆ—TÛ auìgÌ~„=•äÆÜQ_ª€R›xgaS~öJ{LWr09ܦ‘á™^s6ÞDYÅå®ù—Áå.¯uŒCƒ8ÅÖ]~ví +^ˆÔÛæT·Ï êñÿ¯«ó|$œºÑTï¢J:Ñšš›À3[l»§_õ—ëõf0§G#aç¼!¬?onwyQÈÆ?ù‰Ý¹&l¤CSçH®Ú ÀÆZJW@ì'–}‘CãÔuôƒŠž¨KÚ +›F.ëžÓEÕ}–x¯,[ø‰úõ=£´]¥R©ëûe¬ý–¾³Ê0¸¨êá´5m”½+¾Ó,ÿ„ªk]°¤jZªK;9{֋]mÄ1ý;‡{,M„>þH³-¾ï»c–Ãw·b²ì©aÑpIUŽ|AfmïFçÝ0N³/íîx°&HwÃBÃhm¦CæyÓì"«µ¾ín0•ýOç.wÝêô1éäin4) +½Î+ÌëN¸¢Ü¼ÐÙE iR{œ*ý穁zþE’ ùMÛoÂr¥Ÿ“刯ó:t.Ž<;œ=Ñ8ñØZk›!ë¡?¬€jÓƦ™@ZRþr،ÍËMC¶öjՇ%ŸôÆU8·f¨ª +Iɵ‘]–îˆ[8—¨¨/€B(û¿W Nù«ï§üðK®´Ñ¨3Xm|Œ˜:´òSס ú_€…Ÿ‰çìH¥Òém¿>ÿjÓ{xõÍ¥~8áé,º¶âÐz÷hßLþ®:í=§Â'L$mŸÞ ¬}R÷1=(ú-%õôü ìµÌÕÆv±ó~C¨ÔOÉR`Ú9 æSÓNï:À±;%Ï·¶6àÄøŠU;ïø’B$ˆÓÀCõ&«hA·k”>¯#¢÷Ç*Žðú¸Eü]TB,a[é« +^ ó1ñÚÍëÀK’™P՞×FEi!Õ?è¬ÍÞ¤†4!5„›+ @š;äýb±å¯Ô¯ä=ß 3d˜7+T9̨Êêãó`Ôô™ˆ¹È®èj;"áA¶çû&½S{ëÆp<º\¾‚WÙ8Ç/XñÁ'þ OÁñŠ¸@ýiZµ]´—Öêõ"²A]£Rö6ømRn†>w¢npஐqÙèº Z„ªz9O»$K«l» øæÑaõ›hÔ¿`Êf[Qa½ÎW5H «$7ë;,¥ù;Q‹†ß}ÅØ\zmÂl°~`¿HûÚØXxát6ñљfxÓ² +NàE}ÞFhA‘OÊz·\#ŒlÞYãð)³ה„' é^SÐ^¤Ë×þ5~BwÁÛõ du’pëÄ¥ú5ÿþl‘e‰“%{rP•§s°€N‹½¢ƒú²¦ì9£Çwã’æßC§ƒ™ðìSœ\lýÑÈi&™âjË KʔH~dísŒçãOvõç +™òç"±ÍVU_ŠBÑ^­ŒuG'çO2Ä÷õFf£¨…‰âr¯—=R‰œº‡*âÉ·‚]W°=o]jò^ f]müfCŒkOpâû¢ŸŸëBUü€?ˊ#¿gNA{]ÝNÆæ©ÅÖ{€œî_žZr/÷0?¦5܁ÅPZ±!kT譇PnO]u®Oé!o^Ïësâ—CÙ)Osm½UŠ\¹®ý„â–4^Ÿ“„¤ëFå{„÷°0|£¾hnG4Ò¥±§Ã4lQn&AüA|´È6ÃðaX’P¯÷єb'›4´l“#•¦¾ž9–>\ª£Žó45½€—›Ø,ö5Ê9ý:àg –,֌ò¬ÀÇÏ1 R·Á£A•;Mì÷‡:‰µÈQBXº?}e(éj¸ÉØ.ÚèÊT¿ G^Ó䮼Ç}Ö­;˜Ž´ŽIúªÚz£rKªgǎðÀÎbݏrWÏKÄ(¦JŸ´3ܝ]å\SË7d£3÷UŸ¼*aÉ +Iǹ¿áz•^Ì÷#`/W&P¾Ô…÷#ŽŠïÂÏijæøÐ<œûë=z«êrGtBx&/ÜGKDj·õ:¦-köȱ–dBOxRÊz¼J35[–!³xG7~µÞ#UŸx»cË$.OŒø¢ª‹ +‘4K«ri¢173,PïbÅtg(6Ƹ““wàí®Û{f¢p snŸ©—”ÔKõ2”ÏŒy“E¤'¡Ó^t—<¯$,¿ž¦éÕñÝÀŸmq,í³ÃIbøïu‰Ivø~1áú¥Å‰5¼ÆLbï³mPZÚÌUY]"H0ëŒ'áýÕ$Ef¦[GÙr?¯ôêP`#k‹¬-ZY‰“&9Ñä¿Ò¨ð*sa¯‚/7ÃïñœÌ›2ç¼Æ»·¶ §‘5hx¶ž ýҒdf ¸\@3;YK@«r}¶E½ü‰‡©”$@vq¦«®·åEÿ•JŸü"÷“ñ…]v9&흂Èⴔ¡f„Ü÷–TØrÿ±P-Û©¡èLjëe”´†rë;;ÖÂ+Ï7p7ËrˆžÔ!ÅZ>Âž²ã{ßxÌ'=i‹˜É=õ®GÜ3ŠÎ%¡Wâ+<ވ©úñ>ò™¼Ÿ±ƒU…}ٔÂðb£³ºýï¹C&õ҄ç ф™üa¶Å’µa…Ŭ*ٜ°= +ä‡j|Ÿùϱ Ö31«ÐoÔ^ûãolÉ; ¦¤/¨A™û4nEõlº±Æ†jå.O_z¿…æƒÀÿ ~6„éy=¦˜iÁ4iwM¸>V­÷;uó‹Ûߕ±‚ÓÒ°&õö°Á™Fkw¦T°ò©£“îmuàjufÃô[Ä=(D*àþ[ßéqÕ»Øë Òì*–ÊãÂ6•*î€&ä°óÇ;¥×.¤ÕÜçà!ñáш^ŸœFØVO²8¸Ÿªa§Í÷s¨P¢½u2xÞß MDLӤ鍓"ñBNÇV\_!QCÜEJ.|(„ƒðRÖÇ)W‹½cÒ®møsj&Úèë8éù¾¥Hb¤ü3Gš÷,ð¸ì)$'Þøã]7<µ¾° +FMX³Æ•· `èrÞ¼š8.­ƒ#i•Ä‚8*ýþ:dfìÌ´vÎT3Ô¦ìà¤.ý¸ù(ϐ‰ýu|ioà=]ê23e׬u#|E„ŸD|{í²þèQ2v¦~`¡ŠÅèGw]>ÿÎ뙮EPd5ÚP•ÔÒʎÐW²¾œÚUuáÈÕÿS8NU•¬×§‡‹¹sò~×Qz‹í+ +©Ù4Ø~¤6æG=G<™çʖîID}ø|pŒ#.ª@ôÀë˲§nyÏíg۟¿”Ú”%ó³“ãk´Õ6TÉ<¢M¸óú/8*ïÄ/ÇÅ7YUì—ïóЗvKöMÓ\rcCq½t›ñÀh2pÂD³Årb|h-r»Cù%4:­\WX¹c +<öR™‚(‹‘°p ì,>vè¯O'¸&*¼ÕQ&dlÄ¢è Šöáö›Zó‡½6ƒŽ|hß&á`LzϺ6<ÓôfŸcâÍCé[¿ÜÛ¸˜2i2\²$ F„Þ—­tõ×íÄgžÞ$×Â]͜L¯–S±±ô¢ƒ%¾™ˆ›+¥Ø[Ç[Xôu•«=Qâ¦Ö×o  EÇòœx²rW-NÁY£;ôô2åÙ5ëŸÞÀß@ð£œðW…ô1e$í´…}#yRÖÇ +° o-uî‘ÃHd{#s˜Æî`ðÖh E$ų¤š:¹CþÞþÉi_¶ìW‡4³Å¨ÿ‘§þ³^»-1CmÖÇ1è¢É0íé‡ë~ÅB]N]”¸rß*Y ûµœJR8› £Â¨ë65ûu¾û¢¯'£×/@1¬oŠ¦~×pdÙûK¦4 Œ{(~«¨_lg˜m<´¡kJÏïMí‡×̈́ð¥C4Ǽ[õ8óá\þ^Q÷‘m±6ºÌލès‹!?Hƒ7âyÏiaÂ|ÎPÜBè?à'å OÃ³í²§´TªT"àô|Œ,a«ÁÖf*f?‘ˆ²0ŠÕ"KûDk%ÁüŸïý䕆8»¬ñN0mðXCGKªjŸô ‡ëfŽß†!žæ'ÊOH"rZý:S;²ë×Óe>¡obÙÓ0CõD‚ 7a&=¶x®<@ËDòqtµõÈ¹Ÿû¼/UòESž‚XèûWféÃdHã¢i¥^²Ò»?²hÀLp¥‰q–7Ž ŒÜ•/¿‡&µZ°ÛÀFv”¹FeÄ­WjÑⶕî–/jÌÞmnöö¼Ç :úšÔ’J#ŽnŒßWJëÇd*øž,H÷ƒVŠàIF»]@\SY¼Ìü’8Ê&™@¤¿]–öµ©‚aimљ±åt;6A[‡þAF邢”3¿“ÇöVé{‰¡ÂSÝkñ>¦ÄË,1!ÖZXŠ„¬ý$ôørŒGôŒGâ¾ Z[Ø~U¶Ô‘ŠÌ˜Y«âOÊÑ_ÍõØit“ 3çZ8~¡òÙàòcÏ`I—ôf¨V-s Œn˜ö»û.|k­`HÀ­O7\R•Ð/—¢ «H½Ú=rù‘–Ó­Îä´k“¦JWO¾GÒ±ã똶{i¶¨Í ;G²a«NÔ5¶±ßܚê&¼›‹9|F/lTïS«2þÈ«S§c³:d-­´xs‚Íë{ÌfL +R4‡ +«VÖÒ ßaÜîè5YŒG8ô=œXß\ +Ÿ÷‹qKÈ +²ì0”oÃøÞwÎxP.æH¹º–“}ík#ö¿Ÿ”–á'KŸÐûë+›…œ5¶ÌŽ½C£™y¨•JÜG¥š¬_i)M\*XÄTULNÞ5_TXo4?ËToÙL5j»¾Ç"&4}šWª–‰­ùƒ}_Wt÷ExBšRê¬æLQŸîá~Ž³¢”#‚¨yŒ´<öÆ2bq›ó‹dZ*yoëc†R͔µ0v5›ëŽàªµo­‘—Ê–ˆxÎ-J u谒™ëÛהå–/ßÉý£é¬èºÝJLƒ•Fõ_䨎¾–Fi樺L%IUdÑŒÌðæKì¼ÌíòTÜ'¾‚Ëôv¨Ã‘B¢§×köïÖiyD.ÉgwÇkd²É)k½ë5ŠásBËÒܯ˜Âm ©¶S©è†YÆ«L¿Ue„þ‚š÷-¡½P“8šìŒÖï9`‡B¸ÛB}ÔGVyKU½oÜ.Ø[¡ ô\ +Ӄ®ó'@ù±ãt%($¼/  Ù1¡ÆpŸòbM‰ŽbäA)'bÀrS¬BQq‘IÙ]!#zûYC˜ üõ‡í…Ø<ׯŠp-Xwey¬ãÏÂïÝ[²“Ú×Nõ$O6Ý7LI'™2ì _IàsEœg©K:°6ràß¡É5õbìB>šq Ñ@jV þÏ4n¸QUÐÆG©ABw¹D\"„•îÁã7ýh9Ó¹M@¾DfC Aê+l·ðŽ,G„Oޞëüžœ#Ë]°vl;ÎÁYí1RöŽ¹kEJhŽåQë HøõËf¨–®8å\ë°9ô·‡~±k©L훂Ég⣭ôõ¾.…÷Aryܖ\õÃÒºU×H¶LôõPº–¿Y¤{Um‡T©^Éه€^†ê›‘~,h©c“Ü|€I­{±[ú4 +ϗr$ÿ¶çÓía0üòQµµà¼Ã²ÙZAÔA&2eÒðìòhóÓÎÍô¤xÌUCÜUÎ0¸ CÃÕ³ÊKŒúØËH.”Íc +7e²®µx\è$ži’;ùðØА¥³$¢SÄ8ÿÜLKiWXTYㄟ¬}º¼jZ®Æ šì7KëJUæÁ^^nË£æúdª…°±^AàÃ+÷á﯃FÎ~³ú8û¶šHUa…à“À˜ûæŒó@øæ$&ÎùÛEɽÊS6o—*Ώäsêed…¾ågۄô +Ò[?¹N$6ÛjžÆ~(óåÕ÷µ¡ÉU~v“p<•ØØ,°ÐÍ£ž¡Ç¹Ì ëÚÀ3ûð=Â<ÜÀ ôú/¼î’„véÃ]ÃÆzq¤EœGt5¬L-ÿÞÃóïg¥2¶?†ñù¨ö“²g˜hÉeýôIålD˸ƍÛuy4î¸Zt¨ÁۍpՂ¯«n8Oa ü]ŠkÚê¢Åÿ·4úùyw½<‹Ð³’“[©Ì´] I7þ­ÍÔÄb֚ikh|Ñß«ûå>ëÏ̗ å’ JV¶nŠÍ*Ëéû ½¯ZZJе/C ÌòQ°Bn{„#Är&jh²o„+³“BþçÜHqN5B<æUۚiü,÷õ\ŽîT…€¯ÕOEñ†ò¼kðeи¢“Ók¯OA.Lue-w|øØÖÂðŒ»ÆíÅzÔ¤áDlâ˽ƒp-þ0Kë}Ð;ÿ=[6Ù/_ï;a®± ‡hÛjÒœÄ üÊ®Œ‘Ÿ#·¸û©ÑÆîKw‘ß$€ñKnR"Š­è/o’j[›©'ê±h­7ïfúÆ#z?V9ú®9–Âl^|UìS²ös,Qʯë" CûØÙûv…¤œ#ºÚ]&-+Ÿå<’ÿ7Âþ/_ó“JùU´REځ9ƒ‚PqøšÊv] jû=F{;6Òpa¿ÌØÒÖahD+éYiÇvØG]ÄSI‡ ì·³K~¡CÏÒK͖€a——¨blÌ'tG¥˜!MÙՃ»hß|*=O£5Ò1ñŽú»€*Mc>EÅ̑7PÅð}.n_¬nUS§uð)òn}"df… àðØFÊ+ú´Ÿ÷®ë‚ë-·#iþ&®ÿzK3ç€÷-¼KªµÂXؓÖü04Éà¿ý +ü1¢ùæâ¢]+rᤂ‚éb¨k‡"â­$;nýÌÑä!+^›Ð“–¾´\ÇÐay¨±ä÷¨41õ%Qf¦8ܓÝ>ÖÁ°ÐÌüR¨ÌƒÖTOöœšŽ¨Áõ ͪZ•uóû +ß39Å_WõÆNÇQôÀO„TûIû¢IÄP1Qk­¤¿JSªr2Pšm{CU±¡VF +˺\´¨¹Öê¼áåF\/êœ_xá*zBê.ï»!#àŽÊÓË4\fB‚³úŒ +Š©,E bZÉkûI3€)³!›Ñ×ÙhÂÝ´/aqbú¡^c +ϑ¨]Cèc“/ê5°? 5f ifç’ÃË|]9—êpØÓrX%6? åæáõǃ5Óï‹YõzY¸#! ¡1bHl‰ßy0 §îLÐ ßùl}^Óf6[‚ùôεã9ûƒØacMÓJï¦3Tïe&NЪM^¹ß/ï'3Œ§»5¶õúәµ¼8–NY“Ašé<ÐÈWÀšºò÷™ëß¾¯ã\O= ò’ÝÇx!†ÀV“çÃâ–îJ pê€étâ +ܟèÃЕ¾ëÌøÕÛ«»îÚ5 t/™½:Nq%,£¹<Ø(`\À€Ê2O 'Áüxþ|‰‰û‰t;òÂ9Ó)“i®¿™-8[ã]ðJ^Sùæ¬S‚jVw ˜ÆÊõ))˜‹.f äåúyMÔîSÐÁ[î"»ö‡÷ŽÛDUÅšþ}^jkPÃ<|†w8Ä^„5;ð‘èß֕º¼VL 4í`ýžÅ>mãSÏÙHX½ \<{nÿ=h«¥é#ú‘Ö…Q]Ă°qÊéÝ8ƒNÏdŠ®âD\ d®m9§¬d>»¸ry´&óo©¿0ç %#´R‘ŒÍY æà÷7Tç‹s ¹îz]ôLå¨D²´Ú«lÇW\L—µŒ›€Hïà-OÎ&¨Wªà¶]÷q&„­uÞ>‹9b|}ó1xC9îy-Qß $Ӎ :k¿K­äY½jvG–Ï·$¿&¥%]q§u¶«á  q]ƒn8çI »!’ü–€†ª¢1VúPBX_’5¾ôfquÍß'cAu›qµ÷N)Hï¹')h ÿ<‰Ð@ŸàW՗W!:{ò¦XawîÈ: 2È{u}ÇSš—–Ùv ö@ÑM/ýãëŽç›ù A´v¬Wo—;•6gX‚nã¼íî{Œ¾´Õä=tê>Ð òfú¬ïpÍE”Õþ¬UFES=å@ÐüDt?qöDž,öEoÔ#þ‰Åº¹ ógn§ŒýuR˜Xúªšîñ©‡"ÝFÜ¢ö›þ@éúgíp.‹Mâ،ShéK3hYeSÑ«­ˆ–}£v´žâU<¡àÍù¬ ¾Öp. +è +þÉO "ƒ¾\(I0]8,#¦¼eÇàÂPøƈzŒV±ãçÜ\w Ù§v´BÏU¤Ç;á:=´‰J«&MDIéý°…H3›3!Á]‘r1H¯O÷ëLôt‡ªÐxÒL&eÙTl왊i¹0ÏVI÷æª¤Ò Ïª.:áEgc,9Úýúî€Àü9J©^ÓÓ@Yøºmíà;ÅV„Ûk®!šìbK§¿dú*?D's×Ô|ì/S3òª&‘šÍ¡âޝxÒAÐJ‚…”ä"w»þC–C"č Û+Ôë¯U”SnEò‚Ôňs·YOÌíT·SHèŨ¡2âåL&úúáx}»"–°‚µ“ªGJ…ÁB•¶,{€™ÎþwÜåÞÖvaÀ©€ÛœP2Ï->xW‹ãu\)·Tª?}·ïwUHÍnÂ/n»ãd £;]¥~ÕHh#£¯ï‚Y28­Ü“‰¾>Ùù.›¾DVãn(¤œ +*{ÜÑI7֕åºDwcZÀoR´MՌ-Vä|ÍˤŒž•ùòþ$c”D+ž–p *'Ë˺Uð𧨷ý½ ”âFÑi€q–Þö—Ràs—yG…Ç„ÏXS) Îï)-±Žå~ÞBy‰ÏWú;eŸ1$:ê<ÊI*³h_fœÌbb?ne j>õþœ³Ð1xì+ñ폧˜W&wg¾#Ga œWýx‘òÎ*»³hý-=•s6º8ôØ3ñøÃô#èiyñÊÔ¹iÓ­OŸþfXÞ0sY‰É¥"mƒ—Kb*Eì'_ÚÆ[ÿ!ç l"fc4·fý¯Ò߂ºJ)‚«žû;ÔÞæP |¡SëOî/‚oK[ÿ‰‰X(Mo:Œç}ÙÝDVh·V§e–øʔ!éëô´ÜTX¦ÉMQEŽ¹o†ò–¤Ïª±§1‡d¿ÅRm)XIÊm{áçæ>V$òêúcÇ¡œ ¾U‡{}$+é¬ªÝ +h®¿ ¹ØûÕ4TÈ»$ó=/“á"½NŒ|ZõO¾Lô™êêÈMwµyHŠAÊ ß+–ÄTl¶~Âv”»ëƪ´ò˜J- ²Â<Ùn’cLs‘ +çÃêDQ¾FO•¨µ v±Ì?f’»n9ØÝ«Rò¶‰òȯ9®ÀŒ„çö‹8ÕÉJM«ë°Q†;v|6”–Ê¥?Æ"<ºÛœê–Ü1—¥BóY“]ôšçó[‘”U™ü®ä²FªÝ‘9͐ìð‚Y³ Jãö@½Ð˜y!öõO…9 +‹7o.mšRÂT…~Å3ß`ÊW$,}XÒ x(ëÕ¾øÖ¡¸©…íNgätImï¿iA¡¯Öëz8U +ã{Áp"ýu¿Ä},6ó•‘&SgUå¼»ø¶ý‘ŸÔ”,$o¯r+§‘i›lÌëlâþœOÿp*9ØDÙ¨“;â­”ÆëÍ-zO•Ý-ÞHýùEóæVd·3B¹÷à ö,I»Ÿå.DfÑ'Ƒ©ƒØÿ€jp&t5Þê ]Á—þ__¶pO®œv ÞPûFL‘»:&æŸ LWd ’HßGµáW4?0“º¢I6äÁøOü +#ŸãHfQÊӓ)ISSÓF£‰)­%Ú_%H¢ûðdk>Wzò Ú=X  cðº!ÚgfåôÂx¾‡B&"ì>ò«äö’³ªó»(¬ä¿Enœ^™/V:/C½×P;|Œ8µÐ¤N œ™dlP}«·šöºg¬úܜ =fUÐ88sÒLe€õ¯L¡dLéú%x‚!÷o–‘M֒?R2<%Ñ g Õ]‰ÉôíKÔÈÞi‚Š¨ãLus1µ¿—åő w¢å݌üûAä#|´£¨¯xŽôEËy0t,ïL®TœxC}<Ü +¦éåÌ¢ƒGÚØÇlã,g Ö¢Ÿà³ÐW*¥¬¥›…Ûä >jÅÅ>ì#ô½<¼ÐëÊ¢[›¢¦%î(­±rý¨M›šôâ4¬òšöm`/š Eç‚m$Jh_ÂŽƒ ±kk'WÔ3•/ë™ÜÝ/™dýŽq‚¨,L˜³ .xû¾Óل™—ā«š}KÜÄVßçQ»Õ¦LE×=·”É—úB%–Mø=‚V s õDɲYG¦b•¤ª.Å7”Y»^¤F(d¿0™½C¾£\z—ÌZÉí$¸ØsQá›ñëز¾Ý×½pe,!ksjµž3' >yü¸¡Åñ‡”_$º¢˜Àùxÿ¶îùø¥ßsDÑêNûœ¢xÇÖɐ±nƒÇTU«Èëé¢ŒÀÒV·b±ýÛ#†mÅ«ìxìÏ¢_úDŽ#}ñ;ñ»³H_´_ê"Cž‰å­/P'¾+òhÍ5‹h!ïö(Æ\  8uuÔð[MH3/¡“¡Ú‡ú¿Ã4#›uütóCmž.oäyG¸6>]èáûI3x…؏!Öüfëý`]]ÝR¢/&·P8”‡ÉƯ@?È÷sPU:?Ä?ÓG,ÔK01Ѷn`쌙‘e½%Ìҍ:åNW£—}ñ‰þ‡–‘oyÈ윒ξ°/2p÷n¿Iêi`‘t<õÍzûIÅ&®b@¦Ïé”±´`àã]pçfM‰Êӕ²½|¡šhšƒŒ´k4ªÔ&žƒ.’ŽýU7C;‡ƒaj®äe¤uȝ #ýªÿ]WH+ âUO©&áHƒn#µ)us %ž³B!S!‡³—2+5  Jñ(¹—±„Ö‚ƒònªyÃðwô­#~¡šDµ}ZöÒv8|óÞÆ ›ó€©¥N>Ð’ 8 {äK¿Î¡ï@igË^DœûµñÍ®±³ÍÏnk÷¤Šf +•e›ºL“_ŝó³`µ*äґãêoìr%[æÈð0P›–­Ï¹²Ô8ön]7ð©|Žh@X´»©×ºàQd8|çf»kç÷-K‚f=Ü3wMgŒ3 1>9IæU¬’žLyQÙ;p¹À2*Wa?‹ºF¿~Ťèß»]܋A$]´s•Ê2's¸;$ÚMߏ²|ã†:©$ZÖù߁8r§ÍwO4§¥¨×y"Sq÷èÙñÈýò"ßû°;pÀ(Êãl‡.m½-,#Õ¥Qþ½!#yÊ"/\4©Ÿç kolˆ}[ +Uºš†áeë ²vh/øÚ1Ä^ð$ã±ת’‘úÌøo?rœæ>çöËhæÌÒW¾½„¦ôãbÏÐG¬dfíY±7•EL;àãÝ£®º`màZŒk·~E½»ÖŸ¸=¯Š%½i¿ã Òv•ùµþ¸ö†M.Ê\.ÀWzÅ1ìÏ^C!ãPͳ}¯A¿oÓíyIX7#xÕc­H;|ÖbÌ>CϯI°¿†>ï‡òk§dÀÔ*à WÍœñ!ž ¢þž–Òt!¥@@ÆXRöf…€þDBC=ƒe˵ÕFÆ|åYÞ cP ՞ß-mÔô°ƒúîBî8Ô3s}oS•:•ðÍWMQgC3…Íêpü¯t˜wÏxæ!ì9¯ +?X܃ixà(j_5Û؃˜e‰d‰ªCÌÅøø;•m:ð*öÚjhéCbQ+S ¤âÛ‰®ûñ¨’$Ÿn.…³íØ’;#¢-ÊARï3DL$Ò ÓO¥k©] èÉ'o—­ó&™ùÍï"ˆÑŒÎDù¡à¿mö/N·Q·Sø^¨NžÓLQ­i#v ™†Rƅǒü?d U +endstream +endobj +1158 0 obj << +/Type /FontDescriptor +/FontName /VVCFMG+CMTT8 +/Flags 4 +/FontBBox [-5 -232 545 699] +/Ascent 611 +/CapHeight 611 +/Descent -222 +/ItalicAngle 0 +/StemV 76 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/Q/R/S/T/U/V/X/Y/a/asciicircum/asterisk/b/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 1157 0 R +>> endobj +751 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /ZICEQU+CMBX12 +/FontDescriptor 1130 0 R +/FirstChar 123 +/LastChar 123 +/Widths 1117 0 R +>> endobj +928 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /MWBHNP+CMEX10 +/FontDescriptor 1132 0 R +/FirstChar 18 +/LastChar 89 +/Widths 1115 0 R +>> endobj +587 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /ZSFFXJ+CMMI12 +/FontDescriptor 1134 0 R +/FirstChar 25 +/LastChar 121 +/Widths 1124 0 R +>> endobj +803 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /MLNBEG+CMMI8 +/FontDescriptor 1136 0 R +/FirstChar 25 +/LastChar 106 +/Widths 1116 0 R +>> endobj +437 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /HOHYXF+CMR12 +/FontDescriptor 1138 0 R +/FirstChar 11 +/LastChar 127 +/Widths 1126 0 R +>> endobj +435 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /HSCMYC+CMR17 +/FontDescriptor 1140 0 R +/FirstChar 44 +/LastChar 121 +/Widths 1127 0 R +>> endobj +612 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /FKGUSP+CMR6 +/FontDescriptor 1142 0 R +/FirstChar 48 +/LastChar 57 +/Widths 1121 0 R +>> endobj +589 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /LNZRIV+CMR8 +/FontDescriptor 1144 0 R +/FirstChar 43 +/LastChar 65 +/Widths 1122 0 R +>> endobj +434 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /KNXTDX+CMSSBX10 +/FontDescriptor 1146 0 R +/FirstChar 11 +/LastChar 122 +/Widths 1128 0 R +>> endobj +588 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /CWAMZC+CMSY10 +/FontDescriptor 1148 0 R +/FirstChar 0 +/LastChar 112 +/Widths 1123 0 R +>> endobj +937 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /HBIEHQ+CMSY6 +/FontDescriptor 1150 0 R +/FirstChar 0 +/LastChar 0 +/Widths 1114 0 R +>> endobj +645 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /YQORBY+CMSY8 +/FontDescriptor 1152 0 R +/FirstChar 102 +/LastChar 103 +/Widths 1118 0 R +>> endobj +532 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /SONTLP+CMTI12 +/FontDescriptor 1154 0 R +/FirstChar 34 +/LastChar 122 +/Widths 1125 0 R +>> endobj +639 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /XNPUWP+CMTT12 +/FontDescriptor 1156 0 R +/FirstChar 39 +/LastChar 122 +/Widths 1119 0 R +>> endobj +613 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /VVCFMG+CMTT8 +/FontDescriptor 1158 0 R +/FirstChar 34 +/LastChar 125 +/Widths 1120 0 R +>> endobj +438 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [402 0 R 478 0 R 516 0 R 522 0 R 528 0 R 535 0 R] +>> endobj +544 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [541 0 R 546 0 R 552 0 R 566 0 R 582 0 R 596 0 R] +>> endobj +614 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [605 0 R 616 0 R 620 0 R 624 0 R 628 0 R 636 0 R] +>> endobj +646 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [642 0 R 651 0 R 660 0 R 668 0 R 675 0 R 681 0 R] +>> endobj +693 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [689 0 R 697 0 R 711 0 R 735 0 R 753 0 R 781 0 R] +>> endobj +824 0 obj << +/Type /Pages +/Count 6 +/Parent 1159 0 R +/Kids [799 0 R 830 0 R 842 0 R 861 0 R 884 0 R 889 0 R] +>> endobj +896 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [893 0 R 898 0 R 904 0 R 910 0 R 920 0 R 925 0 R] +>> endobj +941 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [930 0 R 943 0 R 953 0 R 960 0 R 970 0 R 978 0 R] +>> endobj +989 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [985 0 R 991 0 R 998 0 R 1002 0 R 1007 0 R 1011 0 R] +>> endobj +1020 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [1017 0 R 1023 0 R 1029 0 R 1033 0 R 1037 0 R 1041 0 R] +>> endobj +1051 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [1045 0 R 1053 0 R 1057 0 R 1061 0 R 1065 0 R 1069 0 R] +>> endobj +1080 0 obj << +/Type /Pages +/Count 6 +/Parent 1160 0 R +/Kids [1077 0 R 1082 0 R 1086 0 R 1091 0 R 1099 0 R 1109 0 R] +>> endobj +1159 0 obj << +/Type /Pages +/Count 36 +/Parent 1161 0 R +/Kids [438 0 R 544 0 R 614 0 R 646 0 R 693 0 R 824 0 R] +>> endobj +1160 0 obj << +/Type /Pages +/Count 36 +/Parent 1161 0 R +/Kids [896 0 R 941 0 R 989 0 R 1020 0 R 1051 0 R 1080 0 R] +>> endobj +1161 0 obj << +/Type /Pages +/Count 72 +/Kids [1159 0 R 1160 0 R] +>> endobj +1162 0 obj << +/Type /Outlines +/First 7 0 R +/Last 399 0 R +/Count 12 +>> endobj +399 0 obj << +/Title 400 0 R +/A 397 0 R +/Parent 1162 0 R +/Prev 379 0 R +>> endobj +395 0 obj << +/Title 396 0 R +/A 393 0 R +/Parent 379 0 R +/Prev 383 0 R +>> endobj +391 0 obj << +/Title 392 0 R +/A 389 0 R +/Parent 383 0 R +/Prev 387 0 R +>> endobj +387 0 obj << +/Title 388 0 R +/A 385 0 R +/Parent 383 0 R +/Next 391 0 R +>> endobj +383 0 obj << +/Title 384 0 R +/A 381 0 R +/Parent 379 0 R +/Next 395 0 R +/First 387 0 R +/Last 391 0 R +/Count -2 +>> endobj +379 0 obj << +/Title 380 0 R +/A 377 0 R +/Parent 1162 0 R +/Prev 371 0 R +/Next 399 0 R +/First 383 0 R +/Last 395 0 R +/Count -2 +>> endobj +375 0 obj << +/Title 376 0 R +/A 373 0 R +/Parent 371 0 R +>> endobj +371 0 obj << +/Title 372 0 R +/A 369 0 R +/Parent 1162 0 R +/Prev 331 0 R +/Next 379 0 R +/First 375 0 R +/Last 375 0 R +/Count -1 +>> endobj +367 0 obj << +/Title 368 0 R +/A 365 0 R +/Parent 339 0 R +/Prev 363 0 R +>> endobj +363 0 obj << +/Title 364 0 R +/A 361 0 R +/Parent 339 0 R +/Prev 359 0 R +/Next 367 0 R +>> endobj +359 0 obj << +/Title 360 0 R +/A 357 0 R +/Parent 339 0 R +/Prev 355 0 R +/Next 363 0 R +>> endobj +355 0 obj << +/Title 356 0 R +/A 353 0 R +/Parent 339 0 R +/Prev 351 0 R +/Next 359 0 R +>> endobj +351 0 obj << +/Title 352 0 R +/A 349 0 R +/Parent 339 0 R +/Prev 347 0 R +/Next 355 0 R +>> endobj +347 0 obj << +/Title 348 0 R +/A 345 0 R +/Parent 339 0 R +/Prev 343 0 R +/Next 351 0 R +>> endobj +343 0 obj << +/Title 344 0 R +/A 341 0 R +/Parent 339 0 R +/Next 347 0 R +>> endobj +339 0 obj << +/Title 340 0 R +/A 337 0 R +/Parent 331 0 R +/Prev 335 0 R +/First 343 0 R +/Last 367 0 R +/Count -7 +>> endobj +335 0 obj << +/Title 336 0 R +/A 333 0 R +/Parent 331 0 R +/Next 339 0 R +>> endobj +331 0 obj << +/Title 332 0 R +/A 329 0 R +/Parent 1162 0 R +/Prev 283 0 R +/Next 371 0 R +/First 335 0 R +/Last 339 0 R +/Count -2 +>> endobj +327 0 obj << +/Title 328 0 R +/A 325 0 R +/Parent 307 0 R +/Prev 323 0 R +>> endobj +323 0 obj << +/Title 324 0 R +/A 321 0 R +/Parent 307 0 R +/Prev 319 0 R +/Next 327 0 R +>> endobj +319 0 obj << +/Title 320 0 R +/A 317 0 R +/Parent 307 0 R +/Prev 315 0 R +/Next 323 0 R +>> endobj +315 0 obj << +/Title 316 0 R +/A 313 0 R +/Parent 307 0 R +/Prev 311 0 R +/Next 319 0 R +>> endobj +311 0 obj << +/Title 312 0 R +/A 309 0 R +/Parent 307 0 R +/Next 315 0 R +>> endobj +307 0 obj << +/Title 308 0 R +/A 305 0 R +/Parent 283 0 R +/Prev 303 0 R +/First 311 0 R +/Last 327 0 R +/Count -5 +>> endobj +303 0 obj << +/Title 304 0 R +/A 301 0 R +/Parent 283 0 R +/Prev 299 0 R +/Next 307 0 R +>> endobj +299 0 obj << +/Title 300 0 R +/A 297 0 R +/Parent 283 0 R +/Prev 295 0 R +/Next 303 0 R +>> endobj +295 0 obj << +/Title 296 0 R +/A 293 0 R +/Parent 283 0 R +/Prev 291 0 R +/Next 299 0 R +>> endobj +291 0 obj << +/Title 292 0 R +/A 289 0 R +/Parent 283 0 R +/Prev 287 0 R +/Next 295 0 R +>> endobj +287 0 obj << +/Title 288 0 R +/A 285 0 R +/Parent 283 0 R +/Next 291 0 R +>> endobj +283 0 obj << +/Title 284 0 R +/A 281 0 R +/Parent 1162 0 R +/Prev 263 0 R +/Next 331 0 R +/First 287 0 R +/Last 307 0 R +/Count -6 +>> endobj +279 0 obj << +/Title 280 0 R +/A 277 0 R +/Parent 271 0 R +/Prev 275 0 R +>> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 271 0 R +/Next 279 0 R +>> endobj +271 0 obj << +/Title 272 0 R +/A 269 0 R +/Parent 263 0 R +/Prev 267 0 R +/First 275 0 R +/Last 279 0 R +/Count -2 +>> endobj +267 0 obj << +/Title 268 0 R +/A 265 0 R +/Parent 263 0 R +/Next 271 0 R +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 1162 0 R +/Prev 239 0 R +/Next 283 0 R +/First 267 0 R +/Last 271 0 R +/Count -2 +>> endobj +259 0 obj << +/Title 260 0 R +/A 257 0 R +/Parent 247 0 R +/Prev 255 0 R +>> endobj +255 0 obj << +/Title 256 0 R +/A 253 0 R +/Parent 247 0 R +/Prev 251 0 R +/Next 259 0 R +>> endobj +251 0 obj << +/Title 252 0 R +/A 249 0 R +/Parent 247 0 R +/Next 255 0 R +>> endobj +247 0 obj << +/Title 248 0 R +/A 245 0 R +/Parent 239 0 R +/Prev 243 0 R +/First 251 0 R +/Last 259 0 R +/Count -3 +>> endobj +243 0 obj << +/Title 244 0 R +/A 241 0 R +/Parent 239 0 R +/Next 247 0 R +>> endobj +239 0 obj << +/Title 240 0 R +/A 237 0 R +/Parent 1162 0 R +/Prev 215 0 R +/Next 263 0 R +/First 243 0 R +/Last 247 0 R +/Count -2 +>> endobj +235 0 obj << +/Title 236 0 R +/A 233 0 R +/Parent 223 0 R +/Prev 231 0 R +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 223 0 R +/Prev 227 0 R +/Next 235 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 223 0 R +/Next 231 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 215 0 R +/Prev 219 0 R +/First 227 0 R +/Last 235 0 R +/Count -3 +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 215 0 R +/Next 223 0 R +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 1162 0 R +/Prev 147 0 R +/Next 239 0 R +/First 219 0 R +/Last 223 0 R +/Count -2 +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 175 0 R +/Prev 207 0 R +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 175 0 R +/Prev 203 0 R +/Next 211 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 175 0 R +/Prev 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 175 0 R +/Prev 195 0 R +/Next 203 0 R +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 175 0 R +/Prev 191 0 R +/Next 199 0 R +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 175 0 R +/Prev 187 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 175 0 R +/Prev 183 0 R +/Next 191 0 R +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 175 0 R +/Prev 179 0 R +/Next 187 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 147 0 R +/Prev 155 0 R +/First 179 0 R +/Last 211 0 R +/Count -9 +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 155 0 R +/Prev 167 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 155 0 R +/Prev 163 0 R +/Next 171 0 R +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 155 0 R +/Prev 159 0 R +/Next 167 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 155 0 R +/Next 163 0 R +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 147 0 R +/Prev 151 0 R +/Next 175 0 R +/First 159 0 R +/Last 171 0 R +/Count -4 +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 147 0 R +/Next 155 0 R +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 1162 0 R +/Prev 123 0 R +/Next 215 0 R +/First 151 0 R +/Last 175 0 R +/Count -3 +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 123 0 R +/Prev 135 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 135 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 123 0 R +/Prev 127 0 R +/Next 143 0 R +/First 139 0 R +/Last 139 0 R +/Count -1 +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 127 0 R +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 123 0 R +/Next 135 0 R +/First 131 0 R +/Last 131 0 R +/Count -1 +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 1162 0 R +/Prev 79 0 R +/Next 147 0 R +/First 127 0 R +/Last 143 0 R +/Count -3 +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 83 0 R +/Prev 115 0 R +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 83 0 R +/Prev 111 0 R +/Next 119 0 R +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 83 0 R +/Prev 107 0 R +/Next 115 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 83 0 R +/Prev 103 0 R +/Next 111 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 83 0 R +/Prev 99 0 R +/Next 107 0 R +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 83 0 R +/Prev 95 0 R +/Next 103 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 83 0 R +/Prev 91 0 R +/Next 99 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 83 0 R +/Prev 87 0 R +/Next 95 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 83 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 79 0 R +/First 87 0 R +/Last 119 0 R +/Count -9 +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 1162 0 R +/Prev 7 0 R +/Next 123 0 R +/First 83 0 R +/Last 83 0 R +/Count -1 +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 67 0 R +/Prev 71 0 R +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 67 0 R +/Next 75 0 R +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 7 0 R +/Prev 39 0 R +/First 71 0 R +/Last 75 0 R +/Count -2 +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 39 0 R +/Prev 59 0 R +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 39 0 R +/Prev 55 0 R +/Next 63 0 R +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 39 0 R +/Prev 51 0 R +/Next 59 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 39 0 R +/Prev 47 0 R +/Next 55 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 39 0 R +/Prev 43 0 R +/Next 51 0 R +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 39 0 R +/Next 47 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 7 0 R +/Prev 11 0 R +/Next 67 0 R +/First 43 0 R +/Last 63 0 R +/Count -6 +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 11 0 R +/Prev 31 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 11 0 R +/Prev 27 0 R +/Next 35 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 11 0 R +/Prev 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 11 0 R +/Prev 19 0 R +/Next 27 0 R +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 11 0 R +/Prev 15 0 R +/Next 23 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 11 0 R +/Next 19 0 R +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 7 0 R +/Next 39 0 R +/First 15 0 R +/Last 35 0 R +/Count -6 +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 1162 0 R +/Next 79 0 R +/First 11 0 R +/Last 67 0 R +/Count -3 +>> endobj +1163 0 obj << +/Names [(Doc-Start) 433 0 R (Item.1) 559 0 R (Item.10) 573 0 R (Item.100) 846 0 R (Item.101) 847 0 R (Item.102) 848 0 R] +/Limits [(Doc-Start) (Item.102)] +>> endobj +1164 0 obj << +/Names [(Item.103) 849 0 R (Item.104) 850 0 R (Item.105) 851 0 R (Item.106) 852 0 R (Item.107) 853 0 R (Item.108) 854 0 R] +/Limits [(Item.103) (Item.108)] +>> endobj +1165 0 obj << +/Names [(Item.109) 855 0 R (Item.11) 574 0 R (Item.110) 856 0 R (Item.111) 857 0 R (Item.112) 858 0 R (Item.113) 859 0 R] +/Limits [(Item.109) (Item.113)] +>> endobj +1166 0 obj << +/Names [(Item.114) 864 0 R (Item.115) 865 0 R (Item.116) 866 0 R (Item.117) 867 0 R (Item.118) 868 0 R (Item.119) 869 0 R] +/Limits [(Item.114) (Item.119)] +>> endobj +1167 0 obj << +/Names [(Item.12) 575 0 R (Item.120) 870 0 R (Item.121) 871 0 R (Item.122) 872 0 R (Item.123) 873 0 R (Item.124) 874 0 R] +/Limits [(Item.12) (Item.124)] +>> endobj +1168 0 obj << +/Names [(Item.125) 875 0 R (Item.126) 876 0 R (Item.127) 877 0 R (Item.128) 878 0 R (Item.129) 879 0 R (Item.13) 654 0 R] +/Limits [(Item.125) (Item.13)] +>> endobj +1169 0 obj << +/Names [(Item.130) 908 0 R (Item.131) 913 0 R (Item.132) 914 0 R (Item.133) 915 0 R (Item.134) 916 0 R (Item.135) 917 0 R] +/Limits [(Item.130) (Item.135)] +>> endobj +1170 0 obj << +/Names [(Item.136) 933 0 R (Item.137) 934 0 R (Item.138) 935 0 R (Item.139) 936 0 R (Item.14) 655 0 R (Item.140) 938 0 R] +/Limits [(Item.136) (Item.140)] +>> endobj +1171 0 obj << +/Names [(Item.141) 939 0 R (Item.142) 940 0 R (Item.143) 946 0 R (Item.144) 947 0 R (Item.145) 948 0 R (Item.146) 949 0 R] +/Limits [(Item.141) (Item.146)] +>> endobj +1172 0 obj << +/Names [(Item.147) 950 0 R (Item.148) 1048 0 R (Item.149) 1049 0 R (Item.15) 656 0 R (Item.150) 1050 0 R (Item.16) 715 0 R] +/Limits [(Item.147) (Item.16)] +>> endobj +1173 0 obj << +/Names [(Item.17) 716 0 R (Item.18) 719 0 R (Item.19) 720 0 R (Item.2) 560 0 R (Item.20) 722 0 R (Item.21) 723 0 R] +/Limits [(Item.17) (Item.21)] +>> endobj +1174 0 obj << +/Names [(Item.22) 724 0 R (Item.23) 725 0 R (Item.24) 726 0 R (Item.25) 727 0 R (Item.26) 729 0 R (Item.27) 730 0 R] +/Limits [(Item.22) (Item.27)] +>> endobj +1175 0 obj << +/Names [(Item.28) 731 0 R (Item.29) 738 0 R (Item.3) 561 0 R (Item.30) 739 0 R (Item.31) 741 0 R (Item.32) 742 0 R] +/Limits [(Item.28) (Item.32)] +>> endobj +1176 0 obj << +/Names [(Item.33) 743 0 R (Item.34) 744 0 R (Item.35) 745 0 R (Item.36) 746 0 R (Item.37) 747 0 R (Item.38) 748 0 R] +/Limits [(Item.33) (Item.38)] +>> endobj +1177 0 obj << +/Names [(Item.39) 749 0 R (Item.4) 562 0 R (Item.40) 750 0 R (Item.41) 756 0 R (Item.42) 757 0 R (Item.43) 758 0 R] +/Limits [(Item.39) (Item.43)] +>> endobj +1178 0 obj << +/Names [(Item.44) 759 0 R (Item.45) 760 0 R (Item.46) 761 0 R (Item.47) 762 0 R (Item.48) 763 0 R (Item.49) 764 0 R] +/Limits [(Item.44) (Item.49)] +>> endobj +1179 0 obj << +/Names [(Item.5) 563 0 R (Item.50) 765 0 R (Item.51) 766 0 R (Item.52) 767 0 R (Item.53) 769 0 R (Item.54) 770 0 R] +/Limits [(Item.5) (Item.54)] +>> endobj +1180 0 obj << +/Names [(Item.55) 771 0 R (Item.56) 772 0 R (Item.57) 773 0 R (Item.58) 774 0 R (Item.59) 784 0 R (Item.6) 569 0 R] +/Limits [(Item.55) (Item.6)] +>> endobj +1181 0 obj << +/Names [(Item.60) 785 0 R (Item.61) 786 0 R (Item.62) 787 0 R (Item.63) 788 0 R (Item.64) 789 0 R (Item.65) 790 0 R] +/Limits [(Item.60) (Item.65)] +>> endobj +1182 0 obj << +/Names [(Item.66) 791 0 R (Item.67) 792 0 R (Item.68) 793 0 R (Item.69) 794 0 R (Item.7) 570 0 R (Item.70) 796 0 R] +/Limits [(Item.66) (Item.70)] +>> endobj +1183 0 obj << +/Names [(Item.71) 802 0 R (Item.72) 804 0 R (Item.73) 805 0 R (Item.74) 806 0 R (Item.75) 807 0 R (Item.76) 808 0 R] +/Limits [(Item.71) (Item.76)] +>> endobj +1184 0 obj << +/Names [(Item.77) 809 0 R (Item.78) 810 0 R (Item.79) 811 0 R (Item.8) 571 0 R (Item.80) 812 0 R (Item.81) 813 0 R] +/Limits [(Item.77) (Item.81)] +>> endobj +1185 0 obj << +/Names [(Item.82) 814 0 R (Item.83) 815 0 R (Item.84) 816 0 R (Item.85) 817 0 R (Item.86) 818 0 R (Item.87) 819 0 R] +/Limits [(Item.82) (Item.87)] +>> endobj +1186 0 obj << +/Names [(Item.88) 820 0 R (Item.89) 821 0 R (Item.9) 572 0 R (Item.90) 822 0 R (Item.91) 823 0 R (Item.92) 833 0 R] +/Limits [(Item.88) (Item.92)] +>> endobj +1187 0 obj << +/Names [(Item.93) 834 0 R (Item.94) 835 0 R (Item.95) 836 0 R (Item.96) 837 0 R (Item.97) 838 0 R (Item.98) 839 0 R] +/Limits [(Item.93) (Item.98)] +>> endobj +1188 0 obj << +/Names [(Item.99) 845 0 R (appendix.A) 378 0 R (appendix.B) 398 0 R (cite.Sporer/Brandenburg/Edler) 593 0 R (figure.1) 538 0 R (figure.10) 973 0 R] +/Limits [(Item.99) (figure.10)] +>> endobj +1189 0 obj << +/Names [(figure.11) 1014 0 R (figure.12) 1026 0 R (figure.2) 585 0 R (figure.3) 586 0 R (figure.4) 664 0 R (figure.5) 671 0 R] +/Limits [(figure.11) (figure.5)] +>> endobj +1190 0 obj << +/Names [(figure.6) 701 0 R (figure.7) 963 0 R (figure.8) 964 0 R (figure.9) 965 0 R (page.1) 432 0 R (page.10) 568 0 R] +/Limits [(figure.6) (page.10)] +>> endobj +1191 0 obj << +/Names [(page.11) 584 0 R (page.12) 598 0 R (page.13) 607 0 R (page.14) 618 0 R (page.15) 622 0 R (page.16) 626 0 R] +/Limits [(page.11) (page.16)] +>> endobj +1192 0 obj << +/Names [(page.17) 630 0 R (page.18) 638 0 R (page.19) 644 0 R (page.2) 480 0 R (page.20) 653 0 R (page.21) 662 0 R] +/Limits [(page.17) (page.21)] +>> endobj +1193 0 obj << +/Names [(page.22) 670 0 R (page.23) 677 0 R (page.24) 683 0 R (page.25) 691 0 R (page.26) 699 0 R (page.27) 713 0 R] +/Limits [(page.22) (page.27)] +>> endobj +1194 0 obj << +/Names [(page.28) 737 0 R (page.29) 755 0 R (page.3) 518 0 R (page.30) 783 0 R (page.31) 801 0 R (page.32) 832 0 R] +/Limits [(page.28) (page.32)] +>> endobj +1195 0 obj << +/Names [(page.33) 844 0 R (page.34) 863 0 R (page.35) 886 0 R (page.36) 891 0 R (page.37) 895 0 R (page.38) 900 0 R] +/Limits [(page.33) (page.38)] +>> endobj +1196 0 obj << +/Names [(page.39) 906 0 R (page.4) 524 0 R (page.40) 912 0 R (page.41) 922 0 R (page.42) 927 0 R (page.43) 932 0 R] +/Limits [(page.39) (page.43)] +>> endobj +1197 0 obj << +/Names [(page.44) 945 0 R (page.45) 955 0 R (page.46) 962 0 R (page.47) 972 0 R (page.48) 980 0 R (page.49) 987 0 R] +/Limits [(page.44) (page.49)] +>> endobj +1198 0 obj << +/Names [(page.5) 530 0 R (page.50) 993 0 R (page.51) 1000 0 R (page.52) 1004 0 R (page.53) 1009 0 R (page.54) 1013 0 R] +/Limits [(page.5) (page.54)] +>> endobj +1199 0 obj << +/Names [(page.55) 1019 0 R (page.56) 1025 0 R (page.57) 1031 0 R (page.58) 1035 0 R (page.59) 1039 0 R (page.6) 537 0 R] +/Limits [(page.55) (page.6)] +>> endobj +1200 0 obj << +/Names [(page.60) 1043 0 R (page.61) 1047 0 R (page.62) 1055 0 R (page.63) 1059 0 R (page.64) 1063 0 R (page.65) 1067 0 R] +/Limits [(page.60) (page.65)] +>> endobj +1201 0 obj << +/Names [(page.66) 1071 0 R (page.67) 1079 0 R (page.68) 1084 0 R (page.69) 1088 0 R (page.7) 543 0 R (page.70) 1093 0 R] +/Limits [(page.66) (page.70)] +>> endobj +1202 0 obj << +/Names [(page.71) 1101 0 R (page.72) 1111 0 R (page.8) 548 0 R (page.9) 554 0 R (section*.1) 436 0 R (section*.10) 599 0 R] +/Limits [(page.71) (section*.10)] +>> endobj +1203 0 obj << +/Names [(section*.11) 600 0 R (section*.12) 601 0 R (section*.13) 602 0 R (section*.14) 608 0 R (section*.15) 609 0 R (section*.16) 610 0 R] +/Limits [(section*.11) (section*.16)] +>> endobj +1204 0 obj << +/Names [(section*.17) 611 0 R (section*.18) 657 0 R (section*.19) 663 0 R (section*.2) 531 0 R (section*.20) 672 0 R (section*.21) 678 0 R] +/Limits [(section*.17) (section*.21)] +>> endobj +1205 0 obj << +/Names [(section*.22) 679 0 R (section*.23) 714 0 R (section*.24) 718 0 R (section*.25) 721 0 R (section*.26) 728 0 R (section*.27) 740 0 R] +/Limits [(section*.22) (section*.27)] +>> endobj +1206 0 obj << +/Names [(section*.28) 768 0 R (section*.29) 901 0 R (section*.3) 555 0 R (section*.30) 907 0 R (section*.31) 840 0 R (section*.32) 988 0 R] +/Limits [(section*.28) (section*.32)] +>> endobj +1207 0 obj << +/Names [(section*.33) 1089 0 R (section*.34) 1102 0 R (section*.35) 1112 0 R (section*.4) 556 0 R (section*.5) 558 0 R (section*.6) 576 0 R] +/Limits [(section*.33) (section*.6)] +>> endobj +1208 0 obj << +/Names [(section*.7) 577 0 R (section*.8) 578 0 R (section*.9) 590 0 R (section.1) 6 0 R (section.10) 370 0 R (section.2) 78 0 R] +/Limits [(section*.7) (section.2)] +>> endobj +1209 0 obj << +/Names [(section.3) 122 0 R (section.4) 146 0 R (section.5) 214 0 R (section.6) 238 0 R (section.7) 262 0 R (section.8) 282 0 R] +/Limits [(section.3) (section.8)] +>> endobj +1210 0 obj << +/Names [(section.9) 330 0 R (subsection.1.1) 10 0 R (subsection.1.2) 38 0 R (subsection.1.3) 66 0 R (subsection.10.1) 374 0 R (subsection.2.1) 82 0 R] +/Limits [(section.9) (subsection.2.1)] +>> endobj +1211 0 obj << +/Names [(subsection.3.1) 126 0 R (subsection.3.2) 134 0 R (subsection.3.3) 142 0 R (subsection.4.1) 150 0 R (subsection.4.2) 154 0 R (subsection.4.3) 174 0 R] +/Limits [(subsection.3.1) (subsection.4.3)] +>> endobj +1212 0 obj << +/Names [(subsection.5.1) 218 0 R (subsection.5.2) 222 0 R (subsection.6.1) 242 0 R (subsection.6.2) 246 0 R (subsection.7.1) 266 0 R (subsection.7.2) 270 0 R] +/Limits [(subsection.5.1) (subsection.7.2)] +>> endobj +1213 0 obj << +/Names [(subsection.8.1) 286 0 R (subsection.8.2) 290 0 R (subsection.8.3) 294 0 R (subsection.8.4) 298 0 R (subsection.8.5) 302 0 R (subsection.8.6) 306 0 R] +/Limits [(subsection.8.1) (subsection.8.6)] +>> endobj +1214 0 obj << +/Names [(subsection.9.1) 334 0 R (subsection.9.2) 338 0 R (subsection.A.1) 382 0 R (subsection.A.2) 394 0 R (subsubsection.1.1.1) 14 0 R (subsubsection.1.1.2) 18 0 R] +/Limits [(subsection.9.1) (subsubsection.1.1.2)] +>> endobj +1215 0 obj << +/Names [(subsubsection.1.1.3) 22 0 R (subsubsection.1.1.4) 26 0 R (subsubsection.1.1.5) 30 0 R (subsubsection.1.1.6) 34 0 R (subsubsection.1.2.1) 42 0 R (subsubsection.1.2.2) 46 0 R] +/Limits [(subsubsection.1.1.3) (subsubsection.1.2.2)] +>> endobj +1216 0 obj << +/Names [(subsubsection.1.2.3) 50 0 R (subsubsection.1.2.4) 54 0 R (subsubsection.1.2.5) 58 0 R (subsubsection.1.2.6) 62 0 R (subsubsection.1.3.1) 70 0 R (subsubsection.1.3.2) 74 0 R] +/Limits [(subsubsection.1.2.3) (subsubsection.1.3.2)] +>> endobj +1217 0 obj << +/Names [(subsubsection.2.1.1) 86 0 R (subsubsection.2.1.2) 90 0 R (subsubsection.2.1.3) 94 0 R (subsubsection.2.1.4) 98 0 R (subsubsection.2.1.5) 102 0 R (subsubsection.2.1.6) 106 0 R] +/Limits [(subsubsection.2.1.1) (subsubsection.2.1.6)] +>> endobj +1218 0 obj << +/Names [(subsubsection.2.1.7) 110 0 R (subsubsection.2.1.8) 114 0 R (subsubsection.2.1.9) 118 0 R (subsubsection.3.1.1) 130 0 R (subsubsection.3.2.1) 138 0 R (subsubsection.4.2.1) 158 0 R] +/Limits [(subsubsection.2.1.7) (subsubsection.4.2.1)] +>> endobj +1219 0 obj << +/Names [(subsubsection.4.2.2) 162 0 R (subsubsection.4.2.3) 166 0 R (subsubsection.4.2.4) 170 0 R (subsubsection.4.3.1) 178 0 R (subsubsection.4.3.2) 182 0 R (subsubsection.4.3.3) 186 0 R] +/Limits [(subsubsection.4.2.2) (subsubsection.4.3.3)] +>> endobj +1220 0 obj << +/Names [(subsubsection.4.3.4) 190 0 R (subsubsection.4.3.5) 194 0 R (subsubsection.4.3.6) 198 0 R (subsubsection.4.3.7) 202 0 R (subsubsection.4.3.8) 206 0 R (subsubsection.4.3.9) 210 0 R] +/Limits [(subsubsection.4.3.4) (subsubsection.4.3.9)] +>> endobj +1221 0 obj << +/Names [(subsubsection.5.2.1) 226 0 R (subsubsection.5.2.2) 230 0 R (subsubsection.5.2.3) 234 0 R (subsubsection.6.2.1) 250 0 R (subsubsection.6.2.2) 254 0 R (subsubsection.6.2.3) 258 0 R] +/Limits [(subsubsection.5.2.1) (subsubsection.6.2.3)] +>> endobj +1222 0 obj << +/Names [(subsubsection.7.2.1) 274 0 R (subsubsection.7.2.2) 278 0 R (subsubsection.8.6.1) 310 0 R (subsubsection.8.6.2) 314 0 R (subsubsection.8.6.3) 318 0 R (subsubsection.8.6.4) 322 0 R] +/Limits [(subsubsection.7.2.1) (subsubsection.8.6.4)] +>> endobj +1223 0 obj << +/Names [(subsubsection.8.6.5) 326 0 R (subsubsection.9.2.1) 342 0 R (subsubsection.9.2.2) 346 0 R (subsubsection.9.2.3) 350 0 R (subsubsection.9.2.4) 354 0 R (subsubsection.9.2.5) 358 0 R] +/Limits [(subsubsection.8.6.5) (subsubsection.9.2.5)] +>> endobj +1224 0 obj << +/Names [(subsubsection.9.2.6) 362 0 R (subsubsection.9.2.7) 366 0 R (subsubsection.A.1.1) 386 0 R (subsubsection.A.1.2) 390 0 R] +/Limits [(subsubsection.9.2.6) (subsubsection.A.1.2)] +>> endobj +1225 0 obj << +/Kids [1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R] +/Limits [(Doc-Start) (Item.13)] +>> endobj +1226 0 obj << +/Kids [1169 0 R 1170 0 R 1171 0 R 1172 0 R 1173 0 R 1174 0 R] +/Limits [(Item.130) (Item.27)] +>> endobj +1227 0 obj << +/Kids [1175 0 R 1176 0 R 1177 0 R 1178 0 R 1179 0 R 1180 0 R] +/Limits [(Item.28) (Item.6)] +>> endobj +1228 0 obj << +/Kids [1181 0 R 1182 0 R 1183 0 R 1184 0 R 1185 0 R 1186 0 R] +/Limits [(Item.60) (Item.92)] +>> endobj +1229 0 obj << +/Kids [1187 0 R 1188 0 R 1189 0 R 1190 0 R 1191 0 R 1192 0 R] +/Limits [(Item.93) (page.21)] +>> endobj +1230 0 obj << +/Kids [1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R] +/Limits [(page.22) (page.54)] +>> endobj +1231 0 obj << +/Kids [1199 0 R 1200 0 R 1201 0 R 1202 0 R 1203 0 R 1204 0 R] +/Limits [(page.55) (section*.21)] +>> endobj +1232 0 obj << +/Kids [1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R] +/Limits [(section*.22) (subsection.2.1)] +>> endobj +1233 0 obj << +/Kids [1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R] +/Limits [(subsection.3.1) (subsubsection.1.3.2)] +>> endobj +1234 0 obj << +/Kids [1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R] +/Limits [(subsubsection.2.1.1) (subsubsection.8.6.4)] +>> endobj +1235 0 obj << +/Kids [1223 0 R 1224 0 R] +/Limits [(subsubsection.8.6.5) (subsubsection.A.1.2)] +>> endobj +1236 0 obj << +/Kids [1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R] +/Limits [(Doc-Start) (page.54)] +>> endobj +1237 0 obj << +/Kids [1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R] +/Limits [(page.55) (subsubsection.A.1.2)] +>> endobj +1238 0 obj << +/Kids [1236 0 R 1237 0 R] +/Limits [(Doc-Start) (subsubsection.A.1.2)] +>> endobj +1239 0 obj << +/Dests 1238 0 R +>> endobj +1240 0 obj << +/Type /Catalog +/Pages 1161 0 R +/Outlines 1162 0 R +/Names 1239 0 R +/PageMode/UseOutlines +/OpenAction 401 0 R +>> endobj +1241 0 obj << +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() +/CreationDate (D:20100203173214-05'00') +/ModDate (D:20100203173214-05'00') +/Trapped /False +/PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) +>> endobj +xref +0 1242 +0000000001 65535 f +0000000002 00000 f +0000000003 00000 f +0000000004 00000 f +0000000000 00000 f +0000000015 00000 n +0000033008 00000 n +0000402000 00000 n +0000000060 00000 n +0000000106 00000 n +0000033063 00000 n +0000401891 00000 n +0000000156 00000 n +0000000183 00000 n +0000033119 00000 n +0000401817 00000 n +0000000239 00000 n +0000000269 00000 n +0000033175 00000 n +0000401730 00000 n +0000000325 00000 n +0000000358 00000 n +0000033231 00000 n +0000401643 00000 n +0000000414 00000 n +0000000444 00000 n +0000036480 00000 n +0000401556 00000 n +0000000500 00000 n +0000000552 00000 n +0000048312 00000 n +0000401469 00000 n +0000000608 00000 n +0000000647 00000 n +0000048368 00000 n +0000401395 00000 n +0000000703 00000 n +0000000738 00000 n +0000048424 00000 n +0000401272 00000 n +0000000789 00000 n +0000000829 00000 n +0000050955 00000 n +0000401198 00000 n +0000000885 00000 n +0000000917 00000 n +0000051011 00000 n +0000401111 00000 n +0000000973 00000 n +0000000996 00000 n +0000051067 00000 n +0000401024 00000 n +0000001052 00000 n +0000001078 00000 n +0000053673 00000 n +0000400937 00000 n +0000001134 00000 n +0000001158 00000 n +0000053729 00000 n +0000400850 00000 n +0000001214 00000 n +0000001240 00000 n +0000053785 00000 n +0000400776 00000 n +0000001296 00000 n +0000001324 00000 n +0000056207 00000 n +0000400666 00000 n +0000001375 00000 n +0000001419 00000 n +0000056263 00000 n +0000400592 00000 n +0000001475 00000 n +0000001506 00000 n +0000056490 00000 n +0000400518 00000 n +0000001562 00000 n +0000001597 00000 n +0000075328 00000 n +0000400392 00000 n +0000001643 00000 n +0000001683 00000 n +0000075384 00000 n +0000400293 00000 n +0000001734 00000 n +0000001761 00000 n +0000075440 00000 n +0000400219 00000 n +0000001817 00000 n +0000001859 00000 n +0000075496 00000 n +0000400132 00000 n +0000001915 00000 n +0000001943 00000 n +0000075552 00000 n +0000400045 00000 n +0000001999 00000 n +0000002028 00000 n +0000078044 00000 n +0000399956 00000 n +0000002084 00000 n +0000002135 00000 n +0000078100 00000 n +0000399865 00000 n +0000002192 00000 n +0000002222 00000 n +0000078157 00000 n +0000399773 00000 n +0000002279 00000 n +0000002313 00000 n +0000079378 00000 n +0000399681 00000 n +0000002370 00000 n +0000002406 00000 n +0000081675 00000 n +0000399589 00000 n +0000002463 00000 n +0000002506 00000 n +0000081732 00000 n +0000399511 00000 n +0000002563 00000 n +0000002600 00000 n +0000084419 00000 n +0000399379 00000 n +0000002647 00000 n +0000002698 00000 n +0000084476 00000 n +0000399261 00000 n +0000002750 00000 n +0000002778 00000 n +0000084533 00000 n +0000399196 00000 n +0000002835 00000 n +0000002872 00000 n +0000084590 00000 n +0000399064 00000 n +0000002924 00000 n +0000002966 00000 n +0000084647 00000 n +0000398999 00000 n +0000003023 00000 n +0000003058 00000 n +0000099727 00000 n +0000398920 00000 n +0000003110 00000 n +0000003161 00000 n +0000104552 00000 n +0000398787 00000 n +0000003208 00000 n +0000003257 00000 n +0000104609 00000 n +0000398708 00000 n +0000003309 00000 n +0000003337 00000 n +0000104666 00000 n +0000398576 00000 n +0000003389 00000 n +0000003439 00000 n +0000104723 00000 n +0000398497 00000 n +0000003496 00000 n +0000003536 00000 n +0000104778 00000 n +0000398404 00000 n +0000003593 00000 n +0000003634 00000 n +0000107375 00000 n +0000398311 00000 n +0000003691 00000 n +0000003725 00000 n +0000107432 00000 n +0000398232 00000 n +0000003782 00000 n +0000003814 00000 n +0000122238 00000 n +0000398114 00000 n +0000003866 00000 n +0000003919 00000 n +0000122295 00000 n +0000398035 00000 n +0000003976 00000 n +0000004031 00000 n +0000129446 00000 n +0000397942 00000 n +0000004088 00000 n +0000004126 00000 n +0000129845 00000 n +0000397849 00000 n +0000004183 00000 n +0000004227 00000 n +0000131719 00000 n +0000397756 00000 n +0000004284 00000 n +0000004318 00000 n +0000132628 00000 n +0000397663 00000 n +0000004375 00000 n +0000004411 00000 n +0000135340 00000 n +0000397570 00000 n +0000004468 00000 n +0000004499 00000 n +0000138863 00000 n +0000397477 00000 n +0000004556 00000 n +0000004588 00000 n +0000138920 00000 n +0000397384 00000 n +0000004645 00000 n +0000004679 00000 n +0000140961 00000 n +0000397305 00000 n +0000004736 00000 n +0000004776 00000 n +0000143509 00000 n +0000397172 00000 n +0000004823 00000 n +0000004881 00000 n +0000143566 00000 n +0000397093 00000 n +0000004933 00000 n +0000004961 00000 n +0000143623 00000 n +0000396975 00000 n +0000005013 00000 n +0000005049 00000 n +0000143680 00000 n +0000396896 00000 n +0000005106 00000 n +0000005135 00000 n +0000146571 00000 n +0000396803 00000 n +0000005192 00000 n +0000005233 00000 n +0000149569 00000 n +0000396724 00000 n +0000005290 00000 n +0000005318 00000 n +0000153595 00000 n +0000396591 00000 n +0000005365 00000 n +0000005414 00000 n +0000153652 00000 n +0000396512 00000 n +0000005466 00000 n +0000005494 00000 n +0000153709 00000 n +0000396394 00000 n +0000005546 00000 n +0000005580 00000 n +0000153766 00000 n +0000396315 00000 n +0000005637 00000 n +0000005670 00000 n +0000153823 00000 n +0000396222 00000 n +0000005727 00000 n +0000005760 00000 n +0000157303 00000 n +0000396143 00000 n +0000005817 00000 n +0000005854 00000 n +0000164501 00000 n +0000396010 00000 n +0000005901 00000 n +0000005950 00000 n +0000164558 00000 n +0000395931 00000 n +0000006002 00000 n +0000006030 00000 n +0000164615 00000 n +0000395813 00000 n +0000006082 00000 n +0000006116 00000 n +0000164672 00000 n +0000395734 00000 n +0000006173 00000 n +0000006198 00000 n +0000185071 00000 n +0000395655 00000 n +0000006255 00000 n +0000006288 00000 n +0000198641 00000 n +0000395522 00000 n +0000006335 00000 n +0000006379 00000 n +0000198699 00000 n +0000395443 00000 n +0000006431 00000 n +0000006459 00000 n +0000198757 00000 n +0000395350 00000 n +0000006511 00000 n +0000006545 00000 n +0000234559 00000 n +0000395257 00000 n +0000006597 00000 n +0000006626 00000 n +0000234617 00000 n +0000395164 00000 n +0000006678 00000 n +0000006707 00000 n +0000256404 00000 n +0000395071 00000 n +0000006759 00000 n +0000006788 00000 n +0000259133 00000 n +0000394953 00000 n +0000006840 00000 n +0000006874 00000 n +0000259191 00000 n +0000394874 00000 n +0000006931 00000 n +0000006964 00000 n +0000261969 00000 n +0000394781 00000 n +0000007021 00000 n +0000007054 00000 n +0000265363 00000 n +0000394688 00000 n +0000007111 00000 n +0000007149 00000 n +0000265421 00000 n +0000394595 00000 n +0000007206 00000 n +0000007244 00000 n +0000267400 00000 n +0000394516 00000 n +0000007301 00000 n +0000007339 00000 n +0000269328 00000 n +0000394383 00000 n +0000007386 00000 n +0000007422 00000 n +0000269386 00000 n +0000394304 00000 n +0000007474 00000 n +0000007502 00000 n +0000269444 00000 n +0000394186 00000 n +0000007554 00000 n +0000007583 00000 n +0000269502 00000 n +0000394107 00000 n +0000007640 00000 n +0000007664 00000 n +0000269560 00000 n +0000394014 00000 n +0000007721 00000 n +0000007758 00000 n +0000272224 00000 n +0000393921 00000 n +0000007815 00000 n +0000007852 00000 n +0000272282 00000 n +0000393828 00000 n +0000007909 00000 n +0000007944 00000 n +0000272340 00000 n +0000393735 00000 n +0000008001 00000 n +0000008037 00000 n +0000272398 00000 n +0000393642 00000 n +0000008094 00000 n +0000008129 00000 n +0000274156 00000 n +0000393563 00000 n +0000008186 00000 n +0000008220 00000 n +0000276821 00000 n +0000393430 00000 n +0000008268 00000 n +0000008294 00000 n +0000276879 00000 n +0000393365 00000 n +0000008347 00000 n +0000008399 00000 n +0000280690 00000 n +0000393232 00000 n +0000008447 00000 n +0000008502 00000 n +0000280748 00000 n +0000393114 00000 n +0000008554 00000 n +0000008582 00000 n +0000280806 00000 n +0000393035 00000 n +0000008639 00000 n +0000008671 00000 n +0000280864 00000 n +0000392956 00000 n +0000008728 00000 n +0000008757 00000 n +0000283488 00000 n +0000392877 00000 n +0000008809 00000 n +0000008842 00000 n +0000286020 00000 n +0000392797 00000 n +0000008890 00000 n +0000008937 00000 n +0000010082 00000 n +0000010421 00000 n +0000010572 00000 n +0000010728 00000 n +0000010890 00000 n +0000011052 00000 n +0000011214 00000 n +0000011376 00000 n +0000011538 00000 n +0000011700 00000 n +0000011856 00000 n +0000012018 00000 n +0000012179 00000 n +0000012339 00000 n +0000012501 00000 n +0000012663 00000 n +0000012825 00000 n +0000012981 00000 n +0000013142 00000 n +0000013303 00000 n +0000013454 00000 n +0000013610 00000 n +0000013772 00000 n +0000013933 00000 n +0000014094 00000 n +0000014256 00000 n +0000014417 00000 n +0000016701 00000 n +0000014750 00000 n +0000008989 00000 n +0000014579 00000 n +0000014636 00000 n +0000389946 00000 n +0000389515 00000 n +0000014693 00000 n +0000389370 00000 n +0000390964 00000 n +0000016863 00000 n +0000017025 00000 n +0000017187 00000 n +0000017338 00000 n +0000017494 00000 n +0000017656 00000 n +0000017812 00000 n +0000017973 00000 n +0000018128 00000 n +0000018279 00000 n +0000018435 00000 n +0000018587 00000 n +0000018749 00000 n +0000018911 00000 n +0000019073 00000 n +0000019235 00000 n +0000019391 00000 n +0000019553 00000 n +0000019714 00000 n +0000019876 00000 n +0000020038 00000 n +0000020199 00000 n +0000020361 00000 n +0000020523 00000 n +0000020685 00000 n +0000020846 00000 n +0000020997 00000 n +0000021153 00000 n +0000021308 00000 n +0000021470 00000 n +0000021631 00000 n +0000021793 00000 n +0000021944 00000 n +0000022100 00000 n +0000022255 00000 n +0000022416 00000 n +0000022578 00000 n +0000024674 00000 n +0000022796 00000 n +0000016266 00000 n +0000014848 00000 n +0000022739 00000 n +0000024825 00000 n +0000024981 00000 n +0000025137 00000 n +0000025298 00000 n +0000025459 00000 n +0000025610 00000 n +0000025766 00000 n +0000025921 00000 n +0000026076 00000 n +0000026232 00000 n +0000026388 00000 n +0000026543 00000 n +0000026704 00000 n +0000026866 00000 n +0000027026 00000 n +0000027188 00000 n +0000027350 00000 n +0000027501 00000 n +0000027657 00000 n +0000027811 00000 n +0000027973 00000 n +0000028135 00000 n +0000028297 00000 n +0000028459 00000 n +0000028621 00000 n +0000028782 00000 n +0000028944 00000 n +0000029096 00000 n +0000029253 00000 n +0000029405 00000 n +0000029561 00000 n +0000029721 00000 n +0000029883 00000 n +0000030039 00000 n +0000030246 00000 n +0000024263 00000 n +0000022881 00000 n +0000030189 00000 n +0000032647 00000 n +0000032799 00000 n +0000033287 00000 n +0000032500 00000 n +0000030331 00000 n +0000032951 00000 n +0000036121 00000 n +0000036274 00000 n +0000036593 00000 n +0000035974 00000 n +0000033372 00000 n +0000036423 00000 n +0000036536 00000 n +0000390527 00000 n +0000038278 00000 n +0000048542 00000 n +0000038159 00000 n +0000036691 00000 n +0000048255 00000 n +0000048480 00000 n +0000047477 00000 n +0000051123 00000 n +0000050779 00000 n +0000048671 00000 n +0000050898 00000 n +0000391082 00000 n +0000053841 00000 n +0000053497 00000 n +0000051208 00000 n +0000053616 00000 n +0000055695 00000 n +0000055847 00000 n +0000056829 00000 n +0000055540 00000 n +0000053926 00000 n +0000056150 00000 n +0000056319 00000 n +0000056376 00000 n +0000055999 00000 n +0000056433 00000 n +0000056546 00000 n +0000056603 00000 n +0000056660 00000 n +0000056717 00000 n +0000056773 00000 n +0000061981 00000 n +0000060131 00000 n +0000059386 00000 n +0000056914 00000 n +0000059505 00000 n +0000059562 00000 n +0000059619 00000 n +0000059676 00000 n +0000059733 00000 n +0000059790 00000 n +0000059847 00000 n +0000059904 00000 n +0000059960 00000 n +0000060017 00000 n +0000060074 00000 n +0000063971 00000 n +0000065855 00000 n +0000066262 00000 n +0000061842 00000 n +0000060229 00000 n +0000066026 00000 n +0000066083 00000 n +0000066144 00000 n +0000389079 00000 n +0000390094 00000 n +0000389803 00000 n +0000066205 00000 n +0000063852 00000 n +0000065722 00000 n +0000291129 00000 n +0000069142 00000 n +0000069588 00000 n +0000069003 00000 n +0000066443 00000 n +0000069305 00000 n +0000069362 00000 n +0000069419 00000 n +0000069476 00000 n +0000069532 00000 n +0000072365 00000 n +0000072821 00000 n +0000072226 00000 n +0000069686 00000 n +0000072537 00000 n +0000072594 00000 n +0000072651 00000 n +0000072708 00000 n +0000072765 00000 n +0000389660 00000 n +0000390819 00000 n +0000391200 00000 n +0000075608 00000 n +0000075152 00000 n +0000072945 00000 n +0000075271 00000 n +0000078214 00000 n +0000077868 00000 n +0000075706 00000 n +0000077987 00000 n +0000079435 00000 n +0000079202 00000 n +0000078338 00000 n +0000079321 00000 n +0000081789 00000 n +0000081499 00000 n +0000079546 00000 n +0000081618 00000 n +0000083755 00000 n +0000083906 00000 n +0000084058 00000 n +0000084210 00000 n +0000084704 00000 n +0000083592 00000 n +0000081887 00000 n +0000084362 00000 n +0000390673 00000 n +0000087044 00000 n +0000087263 00000 n +0000086905 00000 n +0000084828 00000 n +0000087206 00000 n +0000390381 00000 n +0000391318 00000 n +0000089749 00000 n +0000089910 00000 n +0000090072 00000 n +0000090519 00000 n +0000089594 00000 n +0000087400 00000 n +0000090234 00000 n +0000090291 00000 n +0000090348 00000 n +0000090405 00000 n +0000090462 00000 n +0000091988 00000 n +0000093685 00000 n +0000091869 00000 n +0000090669 00000 n +0000093509 00000 n +0000093566 00000 n +0000093623 00000 n +0000093360 00000 n +0000095571 00000 n +0000097245 00000 n +0000095452 00000 n +0000093840 00000 n +0000097070 00000 n +0000097127 00000 n +0000097189 00000 n +0000096921 00000 n +0000099784 00000 n +0000099437 00000 n +0000097413 00000 n +0000099556 00000 n +0000099613 00000 n +0000099670 00000 n +0000101598 00000 n +0000101422 00000 n +0000099921 00000 n +0000101541 00000 n +0000103737 00000 n +0000103888 00000 n +0000104040 00000 n +0000104192 00000 n +0000104834 00000 n +0000103566 00000 n +0000101670 00000 n +0000104495 00000 n +0000104344 00000 n +0000391436 00000 n +0000106864 00000 n +0000107016 00000 n +0000107551 00000 n +0000106709 00000 n +0000104945 00000 n +0000107318 00000 n +0000107168 00000 n +0000107489 00000 n +0000109643 00000 n +0000109793 00000 n +0000110095 00000 n +0000110247 00000 n +0000110399 00000 n +0000110551 00000 n +0000113884 00000 n +0000114036 00000 n +0000111727 00000 n +0000109456 00000 n +0000107706 00000 n +0000110703 00000 n +0000110760 00000 n +0000110817 00000 n +0000110874 00000 n +0000109943 00000 n +0000110931 00000 n +0000110988 00000 n +0000111045 00000 n +0000111102 00000 n +0000111159 00000 n +0000111216 00000 n +0000111273 00000 n +0000111330 00000 n +0000111387 00000 n +0000111443 00000 n +0000111499 00000 n +0000111556 00000 n +0000111613 00000 n +0000111670 00000 n +0000114188 00000 n +0000114350 00000 n +0000115305 00000 n +0000113721 00000 n +0000111825 00000 n +0000114510 00000 n +0000114567 00000 n +0000114624 00000 n +0000114680 00000 n +0000114737 00000 n +0000114794 00000 n +0000114851 00000 n +0000114908 00000 n +0000114965 00000 n +0000115022 00000 n +0000115079 00000 n +0000115135 00000 n +0000115191 00000 n +0000115248 00000 n +0000388787 00000 n +0000118423 00000 n +0000117165 00000 n +0000115429 00000 n +0000117284 00000 n +0000117341 00000 n +0000117398 00000 n +0000117455 00000 n +0000117512 00000 n +0000117569 00000 n +0000117626 00000 n +0000117683 00000 n +0000117740 00000 n +0000117797 00000 n +0000117854 00000 n +0000117911 00000 n +0000117968 00000 n +0000118024 00000 n +0000118081 00000 n +0000118138 00000 n +0000118195 00000 n +0000118252 00000 n +0000118309 00000 n +0000118366 00000 n +0000120935 00000 n +0000121097 00000 n +0000121248 00000 n +0000121553 00000 n +0000121706 00000 n +0000122864 00000 n +0000120748 00000 n +0000118521 00000 n +0000122012 00000 n +0000122069 00000 n +0000122126 00000 n +0000122183 00000 n +0000122352 00000 n +0000122409 00000 n +0000122466 00000 n +0000122523 00000 n +0000122580 00000 n +0000122637 00000 n +0000122694 00000 n +0000122751 00000 n +0000121400 00000 n +0000122807 00000 n +0000121859 00000 n +0000126217 00000 n +0000124846 00000 n +0000122975 00000 n +0000124965 00000 n +0000125022 00000 n +0000389225 00000 n +0000125079 00000 n +0000125136 00000 n +0000125193 00000 n +0000125250 00000 n +0000125307 00000 n +0000125364 00000 n +0000125421 00000 n +0000125478 00000 n +0000125534 00000 n +0000125591 00000 n +0000125648 00000 n +0000125705 00000 n +0000125762 00000 n +0000125819 00000 n +0000125876 00000 n +0000125932 00000 n +0000125989 00000 n +0000126046 00000 n +0000126103 00000 n +0000126160 00000 n +0000391554 00000 n +0000128757 00000 n +0000128919 00000 n +0000129081 00000 n +0000129235 00000 n +0000129959 00000 n +0000128594 00000 n +0000126354 00000 n +0000129389 00000 n +0000129503 00000 n +0000129560 00000 n +0000129617 00000 n +0000129674 00000 n +0000129731 00000 n +0000129788 00000 n +0000129902 00000 n +0000188141 00000 n +0000132685 00000 n +0000131543 00000 n +0000130057 00000 n +0000131662 00000 n +0000131776 00000 n +0000131833 00000 n +0000131890 00000 n +0000131947 00000 n +0000132003 00000 n +0000132060 00000 n +0000132117 00000 n +0000132174 00000 n +0000132231 00000 n +0000132287 00000 n +0000132344 00000 n +0000132401 00000 n +0000132458 00000 n +0000132515 00000 n +0000132572 00000 n +0000135397 00000 n +0000134254 00000 n +0000132783 00000 n +0000134373 00000 n +0000134430 00000 n +0000134487 00000 n +0000134544 00000 n +0000134601 00000 n +0000134658 00000 n +0000134715 00000 n +0000134772 00000 n +0000134829 00000 n +0000134885 00000 n +0000134942 00000 n +0000134999 00000 n +0000135056 00000 n +0000135113 00000 n +0000135170 00000 n +0000135226 00000 n +0000135283 00000 n +0000138330 00000 n +0000138502 00000 n +0000138654 00000 n +0000138977 00000 n +0000138175 00000 n +0000135495 00000 n +0000138806 00000 n +0000140731 00000 n +0000141018 00000 n +0000140592 00000 n +0000139101 00000 n +0000140904 00000 n +0000143737 00000 n +0000143333 00000 n +0000141103 00000 n +0000143452 00000 n +0000391672 00000 n +0000146685 00000 n +0000146395 00000 n +0000143887 00000 n +0000146514 00000 n +0000146628 00000 n +0000149282 00000 n +0000149682 00000 n +0000149143 00000 n +0000146796 00000 n +0000149455 00000 n +0000149512 00000 n +0000149625 00000 n +0000151104 00000 n +0000150643 00000 n +0000149806 00000 n +0000150762 00000 n +0000150819 00000 n +0000150876 00000 n +0000150933 00000 n +0000150990 00000 n +0000151047 00000 n +0000153376 00000 n +0000153880 00000 n +0000153237 00000 n +0000151202 00000 n +0000153538 00000 n +0000157085 00000 n +0000157360 00000 n +0000156946 00000 n +0000154017 00000 n +0000157246 00000 n +0000388934 00000 n +0000160650 00000 n +0000160075 00000 n +0000157548 00000 n +0000160194 00000 n +0000160251 00000 n +0000160308 00000 n +0000160365 00000 n +0000160422 00000 n +0000390239 00000 n +0000160479 00000 n +0000160536 00000 n +0000160593 00000 n +0000391790 00000 n +0000161769 00000 n +0000161308 00000 n +0000160838 00000 n +0000161427 00000 n +0000161484 00000 n +0000161541 00000 n +0000161598 00000 n +0000161655 00000 n +0000161712 00000 n +0000165690 00000 n +0000164729 00000 n +0000164325 00000 n +0000161854 00000 n +0000164444 00000 n +0000169349 00000 n +0000173341 00000 n +0000180549 00000 n +0000178430 00000 n +0000165571 00000 n +0000164827 00000 n +0000178187 00000 n +0000178244 00000 n +0000178306 00000 n +0000178368 00000 n +0000168916 00000 n +0000172910 00000 n +0000177684 00000 n +0000185128 00000 n +0000180430 00000 n +0000178572 00000 n +0000184952 00000 n +0000185009 00000 n +0000184518 00000 n +0000187762 00000 n +0000187922 00000 n +0000188198 00000 n +0000187615 00000 n +0000185296 00000 n +0000188084 00000 n +0000190791 00000 n +0000190953 00000 n +0000192808 00000 n +0000191229 00000 n +0000190644 00000 n +0000188335 00000 n +0000191115 00000 n +0000191172 00000 n +0000391908 00000 n +0000193026 00000 n +0000192669 00000 n +0000191366 00000 n +0000192969 00000 n +0000195176 00000 n +0000195338 00000 n +0000195500 00000 n +0000195716 00000 n +0000195021 00000 n +0000193137 00000 n +0000195658 00000 n +0000198815 00000 n +0000198460 00000 n +0000195853 00000 n +0000198582 00000 n +0000200100 00000 n +0000199612 00000 n +0000199431 00000 n +0000198927 00000 n +0000199553 00000 n +0000232819 00000 n +0000199978 00000 n +0000199685 00000 n +0000232697 00000 n +0000232756 00000 n +0000231855 00000 n +0000234675 00000 n +0000234377 00000 n +0000232938 00000 n +0000234500 00000 n +0000392029 00000 n +0000235705 00000 n +0000256525 00000 n +0000235582 00000 n +0000234787 00000 n +0000256345 00000 n +0000256462 00000 n +0000255569 00000 n +0000259249 00000 n +0000258951 00000 n +0000256670 00000 n +0000259074 00000 n +0000262027 00000 n +0000261787 00000 n +0000259374 00000 n +0000261910 00000 n +0000263862 00000 n +0000263680 00000 n +0000262152 00000 n +0000263803 00000 n +0000265479 00000 n +0000265181 00000 n +0000263961 00000 n +0000265304 00000 n +0000267635 00000 n +0000267218 00000 n +0000265617 00000 n +0000267341 00000 n +0000267458 00000 n +0000267517 00000 n +0000267576 00000 n +0000392154 00000 n +0000269618 00000 n +0000269146 00000 n +0000267773 00000 n +0000269269 00000 n +0000272455 00000 n +0000272042 00000 n +0000269756 00000 n +0000272165 00000 n +0000274214 00000 n +0000273974 00000 n +0000272580 00000 n +0000274097 00000 n +0000276936 00000 n +0000276639 00000 n +0000274326 00000 n +0000276762 00000 n +0000277753 00000 n +0000277571 00000 n +0000277061 00000 n +0000277694 00000 n +0000279993 00000 n +0000280145 00000 n +0000280298 00000 n +0000280465 00000 n +0000280922 00000 n +0000279822 00000 n +0000277852 00000 n +0000280631 00000 n +0000392279 00000 n +0000283546 00000 n +0000283306 00000 n +0000281034 00000 n +0000283429 00000 n +0000285289 00000 n +0000285048 00000 n +0000283671 00000 n +0000285171 00000 n +0000285230 00000 n +0000286078 00000 n +0000285838 00000 n +0000285401 00000 n +0000285961 00000 n +0000287511 00000 n +0000289074 00000 n +0000289243 00000 n +0000289421 00000 n +0000289874 00000 n +0000287340 00000 n +0000286177 00000 n +0000289756 00000 n +0000289815 00000 n +0000289588 00000 n +0000288813 00000 n +0000288970 00000 n +0000289051 00000 n +0000290599 00000 n +0000291186 00000 n +0000290446 00000 n +0000290003 00000 n +0000291012 00000 n +0000291071 00000 n +0000290806 00000 n +0000291285 00000 n +0000291309 00000 n +0000291755 00000 n +0000292269 00000 n +0000292295 00000 n +0000292327 00000 n +0000292851 00000 n +0000293423 00000 n +0000293503 00000 n +0000293661 00000 n +0000294312 00000 n +0000294890 00000 n +0000295310 00000 n +0000295953 00000 n +0000296437 00000 n +0000297080 00000 n +0000298708 00000 n +0000298936 00000 n +0000301837 00000 n +0000302171 00000 n +0000307564 00000 n +0000307844 00000 n +0000309985 00000 n +0000310213 00000 n +0000326050 00000 n +0000326626 00000 n +0000331741 00000 n +0000332023 00000 n +0000335354 00000 n +0000335622 00000 n +0000338257 00000 n +0000338507 00000 n +0000350279 00000 n +0000350712 00000 n +0000352765 00000 n +0000353052 00000 n +0000354263 00000 n +0000354489 00000 n +0000356051 00000 n +0000356293 00000 n +0000365710 00000 n +0000366061 00000 n +0000374509 00000 n +0000374911 00000 n +0000388239 00000 n +0000392404 00000 n +0000392524 00000 n +0000392647 00000 n +0000392720 00000 n +0000402110 00000 n +0000402288 00000 n +0000402467 00000 n +0000402645 00000 n +0000402824 00000 n +0000403001 00000 n +0000403178 00000 n +0000403357 00000 n +0000403535 00000 n +0000403714 00000 n +0000403893 00000 n +0000404063 00000 n +0000404234 00000 n +0000404404 00000 n +0000404575 00000 n +0000404745 00000 n +0000404916 00000 n +0000405085 00000 n +0000405254 00000 n +0000405425 00000 n +0000405595 00000 n +0000405766 00000 n +0000405936 00000 n +0000406107 00000 n +0000406277 00000 n +0000406448 00000 n +0000406652 00000 n +0000406836 00000 n +0000407011 00000 n +0000407182 00000 n +0000407352 00000 n +0000407523 00000 n +0000407693 00000 n +0000407864 00000 n +0000408034 00000 n +0000408205 00000 n +0000408378 00000 n +0000408552 00000 n +0000408729 00000 n +0000408904 00000 n +0000409086 00000 n +0000409289 00000 n +0000409491 00000 n +0000409694 00000 n +0000409896 00000 n +0000410098 00000 n +0000410287 00000 n +0000410474 00000 n +0000410688 00000 n +0000410915 00000 n +0000411142 00000 n +0000411369 00000 n +0000411609 00000 n +0000411870 00000 n +0000412131 00000 n +0000412394 00000 n +0000412661 00000 n +0000412928 00000 n +0000413195 00000 n +0000413462 00000 n +0000413729 00000 n +0000413996 00000 n +0000414203 00000 n +0000414321 00000 n +0000414438 00000 n +0000414553 00000 n +0000414669 00000 n +0000414785 00000 n +0000414901 00000 n +0000415021 00000 n +0000415148 00000 n +0000415283 00000 n +0000415423 00000 n +0000415527 00000 n +0000415645 00000 n +0000415764 00000 n +0000415858 00000 n +0000415898 00000 n +0000416030 00000 n +trailer +<< /Size 1242 +/Root 1240 0 R +/Info 1241 0 R +/ID [ ] >> +startxref +416362 +%%EOF diff --git a/Dependencies/libvorbis/doc/Vorbis_I_spec.tex b/Dependencies/libvorbis/doc/Vorbis_I_spec.tex new file mode 100644 index 0000000..6e9ceef --- /dev/null +++ b/Dependencies/libvorbis/doc/Vorbis_I_spec.tex @@ -0,0 +1,132 @@ +% $Id$ +\documentclass[12pt,paper=a4]{scrartcl} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Packages +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ... +%\usepackage[margin=3cm]{geometry} +\usepackage{a4wide} + +% ... +\usepackage[english]{babel} + +%\usepackage[latin1]{inputenc} +%\usepackage[T1]{fontenc} + +% Do not indent paragraphs, instead separate them via vertical spacing +\usepackage{parskip} + +% Support for graphics, provides \includegraphics +\usepackage{graphicx} +%\graphicspath{{images/}} % Specify subdir containing the images + +% Hyperref enriches the generated PDF with clickable links, +% and provides many other useful features. +\usepackage{nameref} +\usepackage[colorlinks]{hyperref} +\def\sectionautorefname{Section} % Write section with capital 'S' +\def\subsectionautorefname{Subsection} % Write subsection with capital 'S' + + +% The fancyvrb package provides the "Verbatim" environment, which, +% unlike the built-in "verbatim", allows embedding TeX commands, as +% well as tons of other neat stuff (line numbers, formatting adjustments, ...) +\usepackage{fancyvrb} +\fvset{tabsize=4,fontsize=\scriptsize,numbers=left} + +% Normally, one can not use the underscore character in LaTeX without +% escaping it (\_ instead of _). Since the Vorbis specs use it a lot, +% we use the underscore package to change this default behavior. +\usepackage[nohyphen]{underscore} + +% In LaTeX, pictures are normally put into floating environments, and it is +% left to the typesetting engine to place them in the "optimal" spot. These +% docs however expect pictures to be placed in a *specific* position. So we +% don't use \begin{figure}...\end{figure}, but rather a center environment. +% To still be able to use captions, we use the capt-of package. +\usepackage{capt-of} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Custom commands +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Custom ref command, using hyperrefs autoref & nameref, to simulate the +% behavior of DocBook's ''. +\newcommand{\xref}[1]{\autoref{#1}, ``\nameref{#1}''} + +% Emulat DocBook's ''. +\newcommand{\link}[2]{\hyperref[#1]{#2}} + +% Simple 'Note' environment. Can be customized later on. +\newenvironment{note}{\subparagraph*{Note:}}{} + +% Map DocBook's to fancyvrb's Verbatim environment +\let\programlisting\Verbatim +\let\endprogramlisting\endVerbatim + +% Fake some more DocBook elements +\newcommand{\function}[1]{\texttt{#1}} +\newcommand{\filename}[1]{\texttt{#1}} +\newcommand{\varname}[1]{\texttt{#1}} +\newcommand{\literal}[1]{\texttt{#1}} + +% Redefine \~ to generate something that looks more appropriate when used in text. +\renewcommand{\~}{$\sim$} + +% Useful helper macro that inserts TODO comments very visibly into the generated +% file. Helps you to not forget to resolve those TODOs... :) +\newcommand{\TODO}[1]{\textcolor{red}{*** #1 ***}} + +% Configure graphics formats: Prefer PDF, fall back to PNG or JPG, as available. +\DeclareGraphicsExtensions{.pdf,.png,.jpg,.jpeg} + + +% NOTE: Things to watch out for: Some chars are reserved in LaTeX. You need to translate them... +% ~ -> $\sim$ (or \~ which we defined above) +% % -> \% +% & -> \& +% < -> $<$ +% > -> $>$ +% and others. Refer to any of the many LaTeX refs out there if in doubt! + +\begin{document} + + +\title{Vorbis I specification} +\author{Xiph.org Foundation} +\maketitle + +\tableofcontents + +\include{01-introduction} +\include{02-bitpacking} +\include{03-codebook} +\include{04-codec} +\include{05-comment} +\include{06-floor0} +\include{07-floor1} +\include{08-residue} +\include{09-helper} +\include{10-tables} + +\appendix +\include{a1-encapsulation-ogg} +\include{a2-encapsulation-rtp} + +\include{footer} + + +% TODO: Use a bibliography, as in the example below? +\begin{thebibliography}{99} + +\bibitem{Sporer/Brandenburg/Edler} T.~Sporer, K.~Brandenburg and B.~Edler, +The use of multirate filter banks for coding of high quality digital audio, +\url{http://www.iocon.com/resource/docs/ps/eusipco_corrected.ps}. + + +\end{thebibliography} + +\end{document} diff --git a/Dependencies/libvorbis/doc/a1-encapsulation-ogg.tex b/Dependencies/libvorbis/doc/a1-encapsulation-ogg.tex new file mode 100644 index 0000000..47355f6 --- /dev/null +++ b/Dependencies/libvorbis/doc/a1-encapsulation-ogg.tex @@ -0,0 +1,185 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Embedding Vorbis into an Ogg stream} \label{vorbis:over:ogg} + +\subsection{Overview} + +This document describes using Ogg logical and physical transport +streams to encapsulate Vorbis compressed audio packet data into file +form. + +The \xref{vorbis:spec:intro} provides an overview of the construction +of Vorbis audio packets. + +The \href{oggstream.html}{Ogg +bitstream overview} and \href{framing.html}{Ogg logical +bitstream and framing spec} provide detailed descriptions of Ogg +transport streams. This specification document assumes a working +knowledge of the concepts covered in these named backround +documents. Please read them first. + +\subsubsection{Restrictions} + +The Ogg/Vorbis I specification currently dictates that Ogg/Vorbis +streams use Ogg transport streams in degenerate, unmultiplexed +form only. That is: + +\begin{itemize} + \item + A meta-headerless Ogg file encapsulates the Vorbis I packets + + \item + The Ogg stream may be chained, i.e., contain multiple, contigous logical streams (links). + + \item + The Ogg stream must be unmultiplexed (only one stream, a Vorbis audio stream, per link) + +\end{itemize} + + +This is not to say that it is not currently possible to multiplex +Vorbis with other media types into a multi-stream Ogg file. At the +time this document was written, Ogg was becoming a popular container +for low-bitrate movies consisting of DivX video and Vorbis audio. +However, a 'Vorbis I audio file' is taken to imply Vorbis audio +existing alone within a degenerate Ogg stream. A compliant 'Vorbis +audio player' is not required to implement Ogg support beyond the +specific support of Vorbis within a degenrate Ogg stream (naturally, +application authors are encouraged to support full multiplexed Ogg +handling). + + + + +\subsubsection{MIME type} + +The MIME type of Ogg files depend on the context. Specifically, complex +multimedia and applications should use \literal{application/ogg}, +while visual media should use \literal{video/ogg}, and audio +\literal{audio/ogg}. Vorbis data encapsulated in Ogg may appear +in any of those types. RTP encapsulated Vorbis should use +\literal{audio/vorbis} + \literal{audio/vorbis-config}. + + +\subsection{Encapsulation} + +Ogg encapsulation of a Vorbis packet stream is straightforward. + +\begin{itemize} + +\item + The first Vorbis packet (the identification header), which + uniquely identifies a stream as Vorbis audio, is placed alone in the + first page of the logical Ogg stream. This results in a first Ogg + page of exactly 58 bytes at the very beginning of the logical stream. + + +\item + This first page is marked 'beginning of stream' in the page flags. + + +\item + The second and third vorbis packets (comment and setup + headers) may span one or more pages beginning on the second page of + the logical stream. However many pages they span, the third header + packet finishes the page on which it ends. The next (first audio) packet + must begin on a fresh page. + + +\item + The granule position of these first pages containing only headers is zero. + + +\item + The first audio packet of the logical stream begins a fresh Ogg page. + + +\item + Packets are placed into ogg pages in order until the end of stream. + + +\item + The last page is marked 'end of stream' in the page flags. + + +\item + Vorbis packets may span page boundaries. + + +\item + The granule position of pages containing Vorbis audio is in units + of PCM audio samples (per channel; a stereo stream's granule position + does not increment at twice the speed of a mono stream). + + +\item + The granule position of a page represents the end PCM sample + position of the last packet \emph{completed} on that + page. The 'last PCM sample' is the last complete sample returned by + decode, not an internal sample awaiting lapping with a + subsequent block. A page that is entirely spanned by a single + packet (that completes on a subsequent page) has no granule + position, and the granule position is set to '-1'. + + + Note that the last decoded (fully lapped) PCM sample from a packet + is not necessarily the middle sample from that block. If, eg, the + current Vorbis packet encodes a "long block" and the next Vorbis + packet encodes a "short block", the last decodable sample from the + current packet be at position (3*long\_block\_length/4) - + (short\_block\_length/4). + + +\item + The granule (PCM) position of the first page need not indicate + that the stream started at position zero. Although the granule + position belongs to the last completed packet on the page and a + valid granule position must be positive, by + inference it may indicate that the PCM position of the beginning + of audio is positive or negative. + + + \begin{itemize} + \item + A positive starting value simply indicates that this stream begins at + some positive time offset, potentially within a larger + program. This is a common case when connecting to the middle + of broadcast stream. + + \item + A negative value indicates that + output samples preceeding time zero should be discarded during + decoding; this technique is used to allow sample-granularity + editing of the stream start time of already-encoded Vorbis + streams. The number of samples to be discarded must not exceed + the overlap-add span of the first two audio packets. + + \end{itemize} + + + In both of these cases in which the initial audio PCM starting + offset is nonzero, the second finished audio packet must flush the + page on which it appears and the third packet begin a fresh page. + This allows the decoder to always be able to perform PCM position + adjustments before needing to return any PCM data from synthesis, + resulting in correct positioning information without any aditional + seeking logic. + + + \begin{note} + Failure to do so should, at worst, cause a + decoder implementation to return incorrect positioning information + for seeking operations at the very beginning of the stream. + \end{note} + + +\item + A granule position on the final page in a stream that indicates + less audio data than the final packet would normally return is used to + end the stream on other than even frame boundaries. The difference + between the actual available data returned and the declared amount + indicates how many trailing samples to discard from the decoding + process. + +\end{itemize} diff --git a/Dependencies/libvorbis/doc/a2-encapsulation-rtp.tex b/Dependencies/libvorbis/doc/a2-encapsulation-rtp.tex new file mode 100644 index 0000000..0678037 --- /dev/null +++ b/Dependencies/libvorbis/doc/a2-encapsulation-rtp.tex @@ -0,0 +1,9 @@ +% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*- +%!TEX root = Vorbis_I_spec.tex +% $Id$ +\section{Vorbis encapsulation in RTP} \label{vorbis:over:rtp} + +% TODO: Include draft-rtp.xml somehow? + +Please consult RFC 5215 \textit{``RTP Payload Format for Vorbis Encoded + Audio''} for description of how to embed Vorbis audio in an RTP stream. diff --git a/Dependencies/libvorbis/doc/components.png b/Dependencies/libvorbis/doc/components.png new file mode 100644 index 0000000000000000000000000000000000000000..0c4e75c6e6117ba49e23f3b47abb6618bea4a0ab GIT binary patch literal 9741 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 T`q6ju%?qHb3DIa&dlvIQ(wI9) literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/eightphase.png b/Dependencies/libvorbis/doc/eightphase.png new file mode 100644 index 0000000000000000000000000000000000000000..8272e44824c17c2c9b0e663e309042f7a714baa3 GIT binary patch literal 11130 zcmbVyXHZj7*Df7FnxLRm5f$l3?*wU51d-mGh;)R|5}KeO9YFzsKmh4ongl}cB?JP5 z8c>h~LXqC##&^D%JM+z*_s9K_?3r`cUi-{CYwxq3XFV}5^)zXzS*eMLh-kH*tGyzO zXa9aTC| zac(iUjeQ@@k}mhdPdf?rCvv3H8vpb#a&0zfqttbE z;Ir#eTgYA>H7>uz<#$g^nPY#V=dbf%6?CE3Qrmy7KMY44zmeUlM@`t}DuNq>Ye-;E zwxQ>}7uohLSLYc|9akgoAl0=)XD_OG_iF zw9~8Ob`f77VU34K-#g|GOh|PqN^7b58@T+tkxD=uQfl6Cv}?Oz9aTI`$q$YDO#>rD znh0TtY|O0=7yd!gIJPHu zxbwFc-mn%0`heeF8zaCDbZ{qT^&$gxyJsrusS>XwO1$iQ}!7t(U z0nw5VS#Ps?3+qU_jQLACTvG3V+sQp-L1xyNi4x(rp<_bU+iciBudj2DF@-RZ@^?C8 zMHZ6pjvM2TzwHlVUP6`Yz~wMs6l;K5m$RMYEb&D(V!v%!fikx);SkM{A1(}K(UnjV zlpv|Hnr5~i4P318d$BQ|BxSLLZ=9amco%m~uY2LO&2(^m3C*<+553w6E6@o2IUywN z@zz9=Qam?Ts^^p|{&^SBBwiS|?5@FD#0gYdp)@2c5U5WA3&#lC#}H-itz9XW4NthT z#JYEHq(k~fmugn6;vSKSEsy%qf4EcOBk2BEW(2>kcCyskR93{=u)N$BL9;jtwj15? z)e!IaLJPe16=ltfT$cQnqi*Td<|wp%0*iuV(fGVS za|N0U*WJfb$II7OleH64JL}s*T!9HWxxNWv?kdtdD)y`@c?H7<3u|sCHuUKAPh#)i zMj#}ymF@%7mDhEQNOB+xiDFWp_MUieUn z^K|<``Z5$jBH^E$MC!%qeiFsd#e-)?n!foX@9kMA2`GtY$)3H$nqS;!al<9@jBSqS z{)+w;R2o+!KuH3kik>%0UjP2f`M#4O-SZe{EAVloKpGXQ@K-%S;{p>?_ZOMWCiNmr(NngbMA~Q-vIzeOpE0p zajGYe$PUCt%4>^Qfr7WD$%ng+zw%RMXdM?K?NJ&RN@N;5zzNXQ{djQ$fJp5KH^k<5 z-s?<(d9%_?)$@w!vGLFCAzO5vmZ~(DHcL&zLXFhmq+r1H-~F-4C(d7X$4za`+N)uz z=TkTalc2i&D@`x=ckOer*JB}jclwBONhvzpr@1Em$qsG|SQ!d2c!L*0+NRpRc>!p`{H`*A^*&bE;QMQ}aR-)F_D5*l!f z$A4S{?MM!)g*3%*N%B%3NiIikZ6=O|A_fzWcyXE?SjF7gSy1WWK3WN5 zE{2T3bQ6iXqg4Yu;C@j0cJ$|H5|G-*!)fmC2LlyhC>^f1o+iT-w6At9QOc!fIf}-I zhv?Fv)Lc_>bi+@0aFLG=o_}m(hPkSJDhRT5h!wQOr8z9F{IU$q(QXCwndjQgLrI_4K^vv$k_H+yy0(^{M6N2ssN?T z0+EeK^N))%P4|lgsni{xig24Z9$BKDAFa|UiUl_()Te;>q8v`pN7l0gGGk-K?s>bs zxFcd9ok3SyQN}TDLR9kw-k^}RZJ(p5b>V!o11s3?i#3ec9tUHL{JMGC4e66w^%Rv? zUrDYkw3Thgi!aDcJN@!#dgIP^ns`J=0oU`~t5uT|u*M(opOz(KTD|U)ohid9n~<-W z=NkeWqmX$<`*Ez|^+JrZ?t8@X&P9L7qgtGo%=Gx0Y?sn8$MBM&FDB61`1<#ohQF;> zWqEF=ot1XBJV_fQH`#-1y_3*0lS14)QBDp{F9Q z>!;YJ$|fjGcj{RF8k`+&!&i2N#*=W{22Y#2){1*kdS5SLnm1ob+MUJKl3o@R=e&x` zP8?SLJ9J zeZtd`wBcaDm_NN>Gi3xZ2yQsyY@_V@Y&TLZyCwSCt8Fc_zHj$e`!#sZ?fFQu&`q7>8xvGa(^~mAw81-_LtPIj z-7ggq^fW0>rV#aNkyo*f{bW{1p5XZ>^W)Lm1r;jJwEhN3oSu#y zE`Cs$1&2jFj%>4UZzS^;kC9ej#6yWpq|i}CKBsomBlRiZYz?XKdS zE4QTqNczDvbg$8I{8anw3GHR7d{fCyQ}|Bh4&xi`Yzf=y9QhZEl21`P(mkBsf?s>{k|}NRpkR5I>#*;( z-x$}nVL?u)F0E%qt_c>#@zRXqpqc?k(?SCJpq?le^6V2W?oFX@0u?L@zD}t;06Snd z{v6V`aPYM5{2M1un&#f-WzI6w4{T3oib(rvid3R>d);ks;+YCdVnvk)G2xgi|i768I%mArh*^TTDduNAhH!b>0mz*}OZVU}0ry(L;A3d_i1f7uDgRIKky&r8qIr@2C;7q$Fz+}2>HVS!{7c@fmcD_ ze?fWtF$>QhK%2U+KNqjO08|qp4~v)`(tJH!`HTutfKhve8qIMPY=qw9$r}-RJ(ehS z7N>Y?kw>_m+wSzuxi$ciyo)Rgu`K|<#ttH9M}x=k#cd9tK?BarUAkiGWRsesz|ImY zSUw*0DS!BQ)tVSSkk3*SLBu(uHBc=d&djrxB~&5zvG$7NquX8r18O}>cUUj>G2}o6 zFs5+0tI6ScGF3fCF59p9?nk_N)3=Rm{K!htr=lJJZYAS@`#uS%N6jc(Z+mQwxkn39 zOvz5f02J-OG00-XXjeuHr6GM<0Q##6-D{0J#*pN*ScL$H5W&Y!4BIzZJ0^QRsHPdr z=TmHf^YpyYy~JDlihRb;iw69HA+IlT+^BEe>YZQv*Stu2}t(n zY<^l6Nh%xt^5L)BQ$2KxvfNBMdT9)FNC6hy_Kir{mUqcS-^|4ejjL`WBOTB>!vnz!@|zf{}gzonezkp=)3 zWaWqGFOQ_G#bjR%nXl7K-TNU9q?eQ8f%M;QP#Ow@td}fdKizjkxe=T^)A=B5Qe^?l3}(y@qA@M>@$t$(xae zN?(Ux)iy1Yi^N*GQQ@5S@BF8Gqa?8dD_PPK<+fht#W@QN>Wg!*p@x&-Kh8sjdfbQa zx{Gta9Kaa?`)xrz?{byYeUW$A4xlrKKC2zd8@j)?=V6%2B`SF-rwZR!5$A^1;`|Sf zAYH;z#EQSC7dD$^(XE<>m1o-%bE!z!k_$O2#) z?efHUoqcbGWf;U+t~DRCz8O>Ty^aCN!_RN-WlSp`zjE>bv_2 z5S5{Wo~LT4J*91INBpa3@fEakiPXiyC?!GABz;jpfJ5{AzrWk?bE1&8cJQQZapt zoEOZybKga+nQ(@a>B+GBG}CD0NrI2uC4*1At0knRZ{i9|4t!$lMbc`KI$j^i;0v|* z-U{D%@{V-5^&VuNs&O8&eX1@^S!a<(W}Hq`kp@?dBHo z;!a?9G*Zsf$~`e55d;a?nwyFQ4}Iao9FNSC9}v~DcQI0}=ZIIn?|T;+$#oPg2yTO( zb9lW|U{i93q&}=S(&Y8Rw90zegsu+U+Hqdn8d)L-qVjf++go&a0EoTkeDvN=K00~9 z&$m-4>E%A!1Mkl46LaWzA_iBM1KqqJOrnNUMk{?S>Cb4!Bxh)TjfWGHwk|ylV?l<% zMWNV@gq2pOacht`c9X?=Rio$*>A%F2k-^MaV%^=jKQtOa=~*QPB0*;d>)ShK7W>^I z(BhsbvM%QLkZRZ~+4q0;(ln%rBA&5}8|XXBpn6 zt~>4MA7~vpJYhxXvCi9Bz)n-XQVpVcyX5o4J-4d~496o<$Xgj&iEh6-QqlC;jQ*QA zzFI!@9qz}l(rikZ+lySa0oCAOgS(UvTAT`g^__2PLoq_jBwsUR1ci@l^_aCXVH11( zNgjwU^u;2`E#K&5qd9&S_=Kz0_Ig7qp@a{o)xT4xe|&d3M~>26Bg)KI<3lf9q$GNz z?v5NW@gl>1WeNN8OJPb5bJIu%MBRJN)j&tRoZBBOeHmZ9wrJq{GE?tBD*G`g7@Riy z(C#tu1f87tEuNss%QVFsz>rMc%tuMsqGg?GQ>G+eTt zfKI^BgR*%rW*kq`pDA0zBs|o*QVQDsGzmz6ox`lFQMC9@f~qOed={AB{o4d!zwtm#g>UBAo)dof;w$r?CM!dL3jT zW#UQ4B6+=oEqXun_lPo?;is_z6YQzO6m&+E_>DaZh-5&@b7s{y3i91Yy7{Cv>kRxP zz`a(37=25V*s6njS<)p*&LhtQo{i%mIVfe#M>_88fMbpOfh!4xP0alfXc-6#6fIxa zH*>|>|42gYEM*g=92}6&PCMgg{R(Zb!u#%ZEr8Mt9^d$SFr@;WspEO-Y58J={qlg} z>oce09BE_YrC>)3A4<4FVP$wJmOTz5s{sWkU;-OKl)-=ioe>T%{WrM4d(A)1{UD|3 z-!7wIMTqWjjGuYK844j3vs_>Y<&yCRyvUMz@giHMR`5^Qf^YHJdI7z;^*OS#sbqFh zUr?|W6hJ;G}nR?GsQjFN)I*|_h23{|8U28y>txGR{FS`8A;w0b| ze>bnJ{aA5FcCnfQ_a##)q#}pU)k!SOlqRUsReOWJinkc{QP57B2IvHQx^!iQ8MSI%M6 zrRNUyr4F|PBLs-y98f&P%Lu00kW|dZfV_Vtn)pUFSTR@TF?BiKQuM5`ek(`k>^J~D5qU7z-{SBm9+k+~x`jzzbRK_^6l{c& zi1zDSf20xi-R_W<$Ef{Y^#`B6+LZ)r_uuhx$!63+NHM8dE1P{@TdPg8PN?tLf!ps* zKif}E`lItpda~=lUvoa$scF>*KD?c;Ldkot#;nkcpdiA0LP<9X4uZfO9d(`{PdCUj z?vB4E8%{P|wDKuatY1>B7omIbU_|lppqYN3t7-A{I6ixCr~zGM4$jGi=8a8PCG?87 z9iTb%ux$Vjv3%}GJ=l25=^j-^^P4TP!!ZBBJ&W)4tAAA*nmM>@*uiSq^(=44;VoIF zi*?EUNiFA#D|Ula*Am?-@PVH;a0R5TE-l)+yjoti*pcW+#?0TJ&xg7!2=E)5B~{w1 z!I62szfXKwK%lR=u8*G*D^^jL0V{}Wd|%gk9=Lh_LHetG z?u?B?bpiOjc~<`ObQr70gufs)E-0evkLPSF?g3h?$Au+*X*cTY5h)v)oWsxUuI-!O z64*9dm$s6WtEQJi!EDNL1eUm%Y8b)5fM-aLLj3)5iEYky`vyR#E$+0&Wkm`v5m19; znTB(l-nIxGOdnK;y7$Yt(Oh_#0<>HbPR49%b8px_7`%~9qy9Z56Kq!<&gqn3*8Tv` zeWW#X58Ko=n<$JR2hAxc+ovryA_j@#KHqOA=Ia)R9PvOkJ2F$d&}5K?X-Q4`asnOi zcatxq6xg=0Wbj`^_~bGJdn}ELr;>w5-clQjk9rPKMAjoc> zq(W@YPK~&0qT2TlgI11TU&Wujq(x4!dzI3NneaAzAW}q4LY+?j4s_FHi$l22_GLHN zhZmQJ=jj$Ma;{Z|{yJd&SdjaKBT3z$#3;&ME3<%7DDRy^oKT>>3Vo}yZaRig%A!E^ z?>ovwK6MT%-oeMKYWem#`Luo^0>c< z{>~pd9r59u>#{*}-ix(3m1w3f)CanTp9slGDAtp{n?2Ks3-lF~O>WZsNMs!VaKUdr z^+rob6Uh8d-kOM=Xw=?tOj(^QS*v8rU=lH05Y63WkdQcY*3Wi=nw<*Bno)DWnHm_Nyc zMuBu$j2}|>v@QPzjHSi%VZ!~pMgOLd0;?lq1NW%s<#^>%{8eWpD0t}1Kl1zI^ggi1 zTmp@l;Crh^11sO_y$2*c{Z09EpUr&tkSlvOHn<;SokWd$qCF^((fGn|!|xRUa_x$; zIP7a%w1K4FOqQ@$NrQ|UhyjyowlRC}Tb{m$xWBD894tPU5MwZ z{F((}$}VKSd!n^?15#^cLjs^{_b>8%9Zfq|bcQ@Kk>oL6`X(sXeXM)_kU*>6z_R%Q zqc)5ty~JtY`J$Ti+Sf*#1#vpWFiLQb!%FvLGbUA-fICMj@8;K9OQMkF3s9z(ZRJ!& z(}_XPj4zsgy6(MFD(!Ok!#^e;R{FsQdAIu8<8!18bqcAL10LOY%($g1Ry8qoN z{T5P(29)*vmNo1rUtyfb;4rydthReA*~kstqqT72SH0YA)%Px!W5pXUfKo##V zUbX4Sd>R7p!d|;;zmfejF2U(j@@=G$dPR#KOdrTzXaxn=;x&3K`8d1`$gKmy3lkHX zDt+_$TvTUM;;3;>%vt8Z91*62S6s`;$Nq34EuIuIIsP~9!C*S?`Kfq3;sG6Ga4 zQ@g={pI;Qpb#&%R zUN-%(nR&E5>DaU?jjdz%!dSqx6ALqB+;umwOIJC3O2YMu!-b^{D>A!-VHzIM7|&kw^{?d^WedfV2)B z7f`6>Va}&oYATSdBRZ7~l<6eW)tT7nmnfe8{SnQ+_&sW3co)EHB~akqCTN0iCd2Oz z3Ouya0F3FJW5-N&#^gnW?iNkf;K`})bElYoNbu92&?<`| zhd4=1qizN%o!J)a87G9C_4Mtg-9{P^Ojeojq1Ylx5|EMlUI@pA*%M^#s?OP=PFAYs z;%?eQWP_8J{=W^1rVO*2GS}4C9>NlMiWkUvCX)F#RHOHvd9o=hnWQOD{mYvx!sp|e z9aa5SYUFPUV5{9ck+FJ|9X^HYiDmJ#?UwNrgly48aE=<&wn!H$m z3o(zqW?~yFO1m|7W$>c;FUjFt2l2)k6}_34YhES8N}?0if>==l>O5ZrI~W@)>+Oze zwjK2-J6{U56k4B`ZcJ>tk6aQ1wC@jv8Sp4utusGUa--Xh8}Qe=pYoOM^mzr37{gaC$A;!Zmy72 zD4{5~afs_96oXmvP3EKHwYZ*^vD4Sp_%AxzbJ(5;gp~k_F@_?flcNcoV1K&YiOE** zpsI8;ZSd&&pcedCi$rns2W3y6;oXnxa@oe`Rd;ai4)&gOt0(R$`LT2v<}%BM1!}A&UcayMKN4#?Pqgt zi}vzMs8ZXDJzo+~;d`YP{hd@BbINe5MCoa?IjC-wJF1wgU(fB+YDD$U{2yjZCm3Z~ zaP6)x**U|kbHr5&X>X3H?IECJkMNY*Jtc&mbpZo+o?rA)`FJT$xkrz|RJIP++JNg- zm^EJR*nEBFZZBDHpU4L0k_?B~zuZn&CNQ2_UX@m9)B9Psyt23g0URY&CTu&+{eDCC z>lRfldhogW8Efa_|7l!i|NY3&zhhIs5z;ink5YX5_hGvz#3*h|PG`zrxw%yeA8}LR z2GE&70vP6hY~ly=O%jDFH@L-}o6oww8FCgAC;M=5jlTA7w^W|1!|c`NmU<*9u1%+( zZVKb{f-ZB%2n`^u{pJE(>M?R%a;7cT}^=8C?cxMb0l%_0`-#E1Rn!J+?dl z2D=OmmZ*4%0(fo0m!Y~KL@f^Rldq=+^nd%Hlt-}Rz^xTX9w5wRC~p09-}eiscmx!d z7j8r4U^c&OCQA#-`W?QwY<3`5ObiEOIb0EJ)h#B=Y176zQ?)`?VdeXB^Y}6IHlz?a zydUA=dQ@?5d;f&cPNG?I9)o;6yk=sn;u&&ZLj7xc;wN13cwQNvaD*rOS!QcaR_V+| zKW|B9u2sQ?p*+o~oTNSB&8o?GS!EzSiO2 zS*mncN-Mnf*(L?8Sk$FD4;*~NYZt&8I;tO9vGyX=X4DFuG8NG?ozM11`RY(kvdxh9 z@UQY!0qhvdQ(mfelfm2_;HCz#A=!yMQt)phsUwFdI z5S5WYBKwa}eRjP88&AvH&JSQ+>e^?W?3bksxgL%F-B-T;6)s4s_m6_8*ep(L07;*o z)7g2dN=VoJmFEAvgwny5Ym;9#Bn31xAa2%L`~KbNEnA`n1H2F3(X)pYQdq~qZ?OUw zqn<3$nPW*npDTlkcsy$vY1$9gGfvk?*xDTp-y&V&>7!)G?sFl#7kIdk`{rlV=j?)u z5KhL0qi{Op+>;x)r;K;hx>h`dKH z=ACx!_Gfxr17S;h4wo%fH^KJHw;bh;^7iaOO=8u_uQ`@$=XV}mEk#n&kNN^XG?K8yOXhl4hL zMB_+r&0Rv+64{(~i+p-^O>z!3+$uWq>OO);`zZi>xo?v}@$t~>FFOG9)_?`*uAode zRUX2Z5n0h}bCfU6tCxS*PY7FJTH~H4$tG{oe-y~I+-LFGbYVJ^-o=F`*!D^S?HC%+ zzJbh(v^=r7#_0M&sQ58Vx?nmvet6^MtHkf|a*v-ykF8nY*X~^u@PtZ* zX-2=v8R~l5lkG#MZbglwV*HCtuE#2|;MNW$Xrl5igi)dkT&qE1c77S? zy*qbDW$Uk(V^N+h~Dewa%U!EiXUkH&Xgh(01y?4or@C#0SjFWq- zku-v{BLm)p71PeT)JU*bHSJEi=~PL7{7}m&wIg8b%#Nb7%kP}mQ^DQta(Dmrt$Tsg zteI2iLO1Ph5XVIqcpQr7Za%H!{D|8bUD~%$vfP&BR})qsR_vQlHDlvt{=4pgA0Y8( zHO=^*(nxTK^dq9`_0MrVm;L6uCVIRKA{vvDT)yfU1b4bRlR%8=7MtG+R98FJt44P{ zkGM9)ePt)MHu5&M=!nm86@_<}5sdH|a=7LeDme&QyQ5l^lPyDm_{Kj0m&1b>`g63e+!j3vl(YRg(X zbCZ?K+WTGhBg|IqN7@*La0nJgq$L$sWbt<)+O9(NQ$*FD2ecTOsi~={si~U<9Tr*slKem-WJ}om}6LcAbv6^OUM|hx!xpU)!Cw+H&2C? zZFoq_`-p5)GZ3a-uNf`xjbV5py-8jylBcNVBb;m_j_CM@c@iw9Z+3zp*dKWjFXY)} zlInpY+j@j-|MeW%Mt11%x|>u@4*-&$6zH%w`H4SWL!&@`LkZHnmZ76*9~!;eM@qKRgP|VL|jS2yP*r2r`ewrk}2LS zpYz#W7)1Wp+lSx>LC_#`sU$1gvdxT^W}RAmh>IZVuFr$lSrQ>13Fvrx%k7$}nUGMs z{-k_ayjecyvzfv`5uu|RMbY-kYS)C-Km|pi@2alPqarneY0OmdO-vmd|+(P%#5N;yJl1B>9$8#N%`1 zdW&yYv}cIA>sxQk?00Tu%l{$1{pC{cAMv#Hv{m`M@+_fd@ZK2D0OBP)AXB_qKIf|m ziwu$U<3-(~F)*oordc9}Q!~7fXF>yFrTjOkB|`;XF<8V!!qg6%M2jACJZdlu85%Tg zq1l2J<|r{oh8EIXIq7co@WP~OPm)g$p&1^2^3G&QXiA8}FY&>n_M&d7xksr=nzhcP z9j<|=)l%?ngB3<0qD*}wP4{5-Q<}cw>fSQSq|fC^!SBdE8eEyLeU(3WBjAtXm6I?% z&XW8`ZUjjcMnf4!rNv0d+nN#aG>&pUK!fWcUoa|%F(U{3nw=$Kg3PEW z3b0HN1x#9!ilPa7@D$+H&7>vKV3K%DoEFz^YHDg~YHF%s$RHiLh4FsV)ssy!v;uN! zyx(+HSTZ8^`jVVtEWI;!cIBI$&3Dg@0(SOhR)eS2mBxJs-q?OiRz%!Z(kPIoqDWL_ zHMT%wY?C&Lv{KoFCu5~(stVfHjc|;m3ied~VjGH90NkBbY%jmtF*bkGbqt-n4a5?4 z9cbwQ=}w&dg@#;$lYp^z5-f2eP5tZN|C#?~B&Me7Od9`LbK;V)+ zz-v>gMP{yh1xUw@Cu5$MCn-%vBq(w$aP!>)nI*AA(Hcm%0PNvgGUM^51Ago#bpZUe zgw>~7Y`x+m;#W6!4u6HuWX9u92OJlZRymT*>c@)Nk!MuSJpGfVW{CLzvVYE3lI>#B zM}mssuonBuGN07Uhd4iFCewegj7rtrxolE)hOC_}Ylf)$v;GodYNlrMB*drmZ$S{O zjj{+q?P}jrH;Fr){v_Bkvhjn<4I4emC`?u6m=dQQ#)v>quLmMD8^jhtZdoggtzr_Ju z&siTuu8HURlR$ie)#6r^rANiQeJbAeeM=62Zc;@97mawCrtbRQz7t8|*nNMJ+C?;r zTPY-!kF&F4l9vF3NBm&boi)0A%E32eH0Y9~oe(cBZbe!0H79!_+^heo;Ws&X$(#|Z zNp*eSdL6g6(vu|Hz;%rH@40u0^Gn4fVMA)JxD{o|*V4_qY)8v&8P{5m%`D%_pX@`n{?#|?{S*G4tuv! zNDBLtI^87iji%E(=@~HMhv6Mu!-EGQ^SZbdW&c>u$Cx~6KE~C|pAarf^4+5CCLx=^ zfDu0o|MkK>a#u>KnBrEHC0|#LtA8YYIcHTfyUBaLBpsYIRnjw;957(S4<$U02A*FU zoOFtBi(66Mwb(cpPhZK%yx$g&f4^*bX;S@e_B;LXWcxXEVE>#wct3E&4=oz<{8D*R z`IuHH%WyhW-5tI`B!fo$)syn`OT#94y08_s?ifbUK~VdWG;qWZP5!DcaegUp*-hzk z{aYE{dw-p4Bm;Me?{FiH0Y0UMYtUkg(fLdXv7Dwy2Jz?LKO9%)>rp28mJ%ZPogw>h zT-jS(H)%4?FUd3=Wm1dL*kYvTmquV|^Cp~Ma)7+9-c@%K&M(D4D`3Ki*kh8MMbVZ~ zOcD!n(vqTRbHW}x3$%iXOOlRBk}zpJ&BU3Sn)*M)NQ|o$xX*C_0000002D*0{{R3Le$@m0004EP)t-s|Ns9Q z8XAv}kXBY$z`?;?U0wJ1`1||&-QM1uoSd<;vg70A@9*#b|Ns5{{r>*`Sjy%u!s=Ab z?n=4WGI*YPdVG@H?}&(r*{wtM_4W6)L#U{!Y|Y~T&S&Q4=f>^#!L?is4Gq@T);Xid zn#QKKy?WxteBR#P_V)Jtze(!q>X?|B(9zI}i;AP9q|VOH*z)`N$#tx)t^L4LF_5^( z$;#^a{rj^g{`2FswY9~?#(2ZOI9`Ev&);~udH>?2ZHlAq?(YBp{{N&J{_oiT{rUR( z`v2<8?CkBx&WZljj59Mc|M>0o;m`j6|JT>p{{H{k+}%E9h4Jz6;o;(@xySeY{<_Ye z^Yin(yuJL~s;H1r@Z!Av`S$bo`snEC)ZXUZw-$_4oO{zQ3ZPqyEv2!^Fk?|NoI%4}bsw00DGTPE!Ct z=GbNc00J8+FbRfTD>YH z4(v;&Ml|FcYLVTmV%nETjcDlYboKU;eaY1Kyg%0F&>U0G;oQDd>hHdN{POF?))7>z zwJ@J#W7?NUeSGXgJ!suO3Trfj?QT?~yALp*VCv8qC7j>Z1fuJ|VpL9!nTj9Ctm49nrUUUJCF3p3i`N57c`{ zr!^l78`!V58q^#!F7uT!T9UnvYNDHXg|x?^*-1Efq_7P;VDVMU7CI5Cg&+K~4q~VX zeZ11|FZxlvgsf$cW0&K$T`QNAExn(zgAC?$xM1v*S-Pqr9BL6N#@1Z(Y zqw7^n85=xSK9N2eUx_#Z(1zFGmb99VQMVz%M>u}MWZ0pan)qcioC(@;T>WB2B3m%E zA0QfMHYPq=SWpjbjct@+bc9=k7}~h3(S{vQP@T9bT?b64mGPT8cux_HBOF zs*V)$vsTqxAEbtzi>R zFRj&CHx|U_u%?x-C(x0tD$y8qPJerZta`!rb(S^U($2Pq*WW0BEwK7&wM<_Y?YfDF z&BHRV=T-F6aw(|tt>liKxocs;p$v~`AG%+Y;u-gA_Cx`!iLs+)t5;dqb6wXnwS;*% zlyf`2fIl5Ub&e8sJx5JJ5FXKrA9^+;T+7S)-tC>8$Mm6vcXLt^;FUPiPM@y^a)3uQq&LPZd zsm?{W5S^`lOCkY>zO_&$Mygs@Pus-6URTtPlJ$!fP_I11^=vbm*^eMA{Ngk!0GAp!Co(ZQ zu=in%@NsI>!yl&SrS^)p_#4h^or-^sWh%E9C8!wOX|&^ifB5XrE6*NkSiWaLdRF_C z;Tw_2h<-C2nshr_ihW1W&?w~l`!$g?){X69r6J(GM&X zZrX^RO7(7B*2D(SPaDwFq{avF=3T|*@8VmeoU|v6HbHHjhuWiYwkgmi4D!;RJX%{1 z9xD9vX>nkGbr-0GyVsid>MSSi38O#JbrL>y&|g1qpHmjVp%}CA)mcv36Ha=a5CTsg zM3j9VP2QzU7Ijw9oSQbFr@2heg=!ZNke@c7uSQ|oR|<`31N!Q*|9%NkKLeLxS|VGa R#~uIx002ovPDHLkV1gu$DbfG{ literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/floor1-1.png b/Dependencies/libvorbis/doc/floor1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7faba6680caabc6cf15ffb723e1048adc6610b GIT binary patch literal 3420 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 literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/floor1-3.png b/Dependencies/libvorbis/doc/floor1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..4d03c6a1b722d66faaa58c8c8cfe2929c37de67e GIT binary patch literal 4627 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 N002ovPDHLkV1nnGL0SL+ literal 0 HcmV?d00001 diff --git a/libvorbis-1.0.1/doc/floor1_inverse_dB_table.html b/Dependencies/libvorbis/doc/floor1_inverse_dB_table.html similarity index 71% rename from libvorbis-1.0.1/doc/floor1_inverse_dB_table.html rename to Dependencies/libvorbis/doc/floor1_inverse_dB_table.html index f30c1bc..52d15e8 100644 --- a/libvorbis-1.0.1/doc/floor1_inverse_dB_table.html +++ b/Dependencies/libvorbis/doc/floor1_inverse_dB_table.html @@ -1,16 +1,80 @@ -xiph.org: Ogg Vorbis documentation - -

+ + + -

-Ogg Vorbis I format specification: floor1_inverse_dB_table -

+ +Ogg Vorbis Documentation -Last update to this document: July 18, 2002

+ + + + + + +

+ +

Ogg Vorbis I format specification: floor1_inverse_dB_table

+ +

The vector [floor1_inverse_dB_table] is a 256 element static lookup table consiting of the following values (read left to right -then top to bottom): +then top to bottom):

   1.0649863e-07, 1.1341951e-07, 1.2079015e-07, 1.2863978e-07, 
@@ -77,36 +141,14 @@ then top to bottom):
   0.50028648,    0.53279791,    0.56742212,    0.60429640, 
   0.64356699,    0.68538959,    0.72993007,    0.77736504, 
   0.82788260,    0.88168307,    0.9389798,     1.
-
+
-
- - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

- -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

- -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

- -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

+

+ + diff --git a/Dependencies/libvorbis/doc/floorval.png b/Dependencies/libvorbis/doc/floorval.png new file mode 100644 index 0000000000000000000000000000000000000000..49d6ec190f851627ae91539fb961f4803233b5e2 GIT binary patch literal 2545 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 TXw~DXZ3NHM^`6wI+C}{rdnX(T literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/framing.html b/Dependencies/libvorbis/doc/framing.html new file mode 100644 index 0000000..22b3838 --- /dev/null +++ b/Dependencies/libvorbis/doc/framing.html @@ -0,0 +1,431 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg logical bitstream framing

+ +

Ogg bitstreams

+ +

The Ogg transport bitstream is designed to provide framing, error +protection and seeking structure for higher-level codec streams that +consist of raw, unencapsulated data packets, such as the Vorbis audio +codec or Theora video codec.

+ +

Application example: Vorbis

+ +

Vorbis encodes short-time blocks of PCM data into raw packets of +bit-packed data. These raw packets may be used directly by transport +mechanisms that provide their own framing and packet-separation +mechanisms (such as UDP datagrams). For stream based storage (such as +files) and transport (such as TCP streams or pipes), Vorbis uses the +Ogg bitstream format to provide framing/sync, sync recapture +after error, landmarks during seeking, and enough information to +properly separate data back into packets at the original packet +boundaries without relying on decoding to find packet boundaries.

+ +

Design constraints for Ogg bitstreams

+ +
    +
  1. True streaming; we must not need to seek to build a 100% + complete bitstream.
  2. +
  3. Use no more than approximately 1-2% of bitstream bandwidth for + packet boundary marking, high-level framing, sync and seeking.
  4. +
  5. Specification of absolute position within the original sample + stream.
  6. +
  7. Simple mechanism to ease limited editing, such as a simplified + concatenation mechanism.
  8. +
  9. Detection of corruption, recapture after error and direct, random + access to data at arbitrary positions in the bitstream.
  10. +
+ +

Logical and Physical Bitstreams

+ +

A logical Ogg bitstream is a contiguous stream of +sequential pages belonging only to the logical bitstream. A +physical Ogg bitstream is constructed from one or more +than one logical Ogg bitstream (the simplest physical bitstream +is simply a single logical bitstream). We describe below the exact +formatting of an Ogg logical bitstream. Combining logical +bitstreams into more complex physical bitstreams is described in the +Ogg bitstream overview. The exact +mapping of raw Vorbis packets into a valid Ogg Vorbis physical +bitstream is described in the Vorbis I Specification.

+ +

Bitstream structure

+ +

An Ogg stream is structured by dividing incoming packets into +segments of up to 255 bytes and then wrapping a group of contiguous +packet segments into a variable length page preceded by a page +header. Both the header size and page size are variable; the page +header contains sizing information and checksum data to determine +header/page size and data integrity.

+ +

The bitstream is captured (or recaptured) by looking for the beginning +of a page, specifically the capture pattern. Once the capture pattern +is found, the decoder verifies page sync and integrity by computing +and comparing the checksum. At that point, the decoder can extract the +packets themselves.

+ +

Packet segmentation

+ +

Packets are logically divided into multiple segments before encoding +into a page. Note that the segmentation and fragmentation process is a +logical one; it's used to compute page header values and the original +page data need not be disturbed, even when a packet spans page +boundaries.

+ +

The raw packet is logically divided into [n] 255 byte segments and a +last fractional segment of < 255 bytes. A packet size may well +consist only of the trailing fractional segment, and a fractional +segment may be zero length. These values, called "lacing values" are +then saved and placed into the header segment table.

+ +

An example should make the basic concept clear:

+ +
+
+raw packet:
+  ___________________________________________
+ |______________packet data__________________| 753 bytes
+
+lacing values for page header segment table: 255,255,243
+
+
+ +

We simply add the lacing values for the total size; the last lacing +value for a packet is always the value that is less than 255. Note +that this encoding both avoids imposing a maximum packet size as well +as imposing minimum overhead on small packets (as opposed to, eg, +simply using two bytes at the head of every packet and having a max +packet size of 32k. Small packets (<255, the typical case) are +penalized with twice the segmentation overhead). Using the lacing +values as suggested, small packets see the minimum possible +byte-aligned overheade (1 byte) and large packets, over 512 bytes or +so, see a fairly constant ~.5% overhead on encoding space.

+ +

Note that a lacing value of 255 implies that a second lacing value +follows in the packet, and a value of < 255 marks the end of the +packet after that many additional bytes. A packet of 255 bytes (or a +multiple of 255 bytes) is terminated by a lacing value of 0:

+ +

+raw packet:
+  _______________________________
+ |________packet data____________|          255 bytes
+
+lacing values: 255, 0
+
+ +

Note also that a 'nil' (zero length) packet is not an error; it +consists of nothing more than a lacing value of zero in the header.

+ +

Packets spanning pages

+ +

Packets are not restricted to beginning and ending within a page, +although individual segments are, by definition, required to do so. +Packets are not restricted to a maximum size, although excessively +large packets in the data stream are discouraged; the Ogg +bitstream specification strongly recommends nominal page size of +approximately 4-8kB (large packets are foreseen as being useful for +initialization data at the beginning of a logical bitstream).

+ +

After segmenting a packet, the encoder may decide not to place all the +resulting segments into the current page; to do so, the encoder places +the lacing values of the segments it wishes to belong to the current +page into the current segment table, then finishes the page. The next +page is begun with the first value in the segment table belonging to +the next packet segment, thus continuing the packet (data in the +packet body must also correspond properly to the lacing values in the +spanned pages. The segment data in the first packet corresponding to +the lacing values of the first page belong in that page; packet +segments listed in the segment table of the following page must begin +the page body of the subsequent page).

+ +

The last mechanic to spanning a page boundary is to set the header +flag in the new page to indicate that the first lacing value in the +segment table continues rather than begins a packet; a header flag of +0x01 is set to indicate a continued packet. Although mandatory, it +is not actually algorithmically necessary; one could inspect the +preceding segment table to determine if the packet is new or +continued. Adding the information to the packet_header flag allows a +simpler design (with no overhead) that needs only inspect the current +page header after frame capture. This also allows faster error +recovery in the event that the packet originates in a corrupt +preceding page, implying that the previous page's segment table +cannot be trusted.

+ +

Note that a packet can span an arbitrary number of pages; the above +spanning process is repeated for each spanned page boundary. Also a +'zero termination' on a packet size that is an even multiple of 255 +must appear even if the lacing value appears in the next page as a +zero-length continuation of the current packet. The header flag +should be set to 0x01 to indicate that the packet spanned, even though +the span is a nil case as far as data is concerned.

+ +

The encoding looks odd, but is properly optimized for speed and the +expected case of the majority of packets being between 50 and 200 +bytes (note that it is designed such that packets of wildly different +sizes can be handled within the model; placing packet size +restrictions on the encoder would have only slightly simplified design +in page generation and increased overall encoder complexity).

+ +

The main point behind tracking individual packets (and packet +segments) is to allow more flexible encoding tricks that requiring +explicit knowledge of packet size. An example is simple bandwidth +limiting, implemented by simply truncating packets in the nominal case +if the packet is arranged so that the least sensitive portion of the +data comes last.

+ +

Page header

+ +

The headering mechanism is designed to avoid copying and re-assembly +of the packet data (ie, making the packet segmentation process a +logical one); the header can be generated directly from incoming +packet data. The encoder buffers packet data until it finishes a +complete page at which point it writes the header followed by the +buffered packet segments.

+ +

capture_pattern

+ +

A header begins with a capture pattern that simplifies identifying +pages; once the decoder has found the capture pattern it can do a more +intensive job of verifying that it has in fact found a page boundary +(as opposed to an inadvertent coincidence in the byte stream).

+ +

+ byte value
+
+  0  0x4f 'O'
+  1  0x67 'g'
+  2  0x67 'g'
+  3  0x53 'S'  
+
+ +

stream_structure_version

+ +

The capture pattern is followed by the stream structure revision:

+ +

+ byte value
+
+  4  0x00
+
+ +

header_type_flag

+ +

The header type flag identifies this page's context in the bitstream:

+ +

+ byte value
+
+  5  bitflags: 0x01: unset = fresh packet
+	               set = continued packet
+	       0x02: unset = not first page of logical bitstream
+                       set = first page of logical bitstream (bos)
+	       0x04: unset = not last page of logical bitstream
+                       set = last page of logical bitstream (eos)
+
+ +

absolute granule position

+ +

(This is packed in the same way the rest of Ogg data is packed; LSb +of LSB first. Note that the 'position' data specifies a 'sample' +number (eg, in a CD quality sample is four octets, 16 bits for left +and 16 bits for right; in video it would likely be the frame number. +It is up to the specific codec in use to define the semantic meaning +of the granule position value). The position specified is the total +samples encoded after including all packets finished on this page +(packets begun on this page but continuing on to the next page do not +count). The rationale here is that the position specified in the +frame header of the last page tells how long the data coded by the +bitstream is. A truncated stream will still return the proper number +of samples that can be decoded fully.

+ +

A special value of '-1' (in two's complement) indicates that no packets +finish on this page.

+ +

+ byte value
+
+  6  0xXX LSB
+  7  0xXX
+  8  0xXX
+  9  0xXX
+ 10  0xXX
+ 11  0xXX
+ 12  0xXX
+ 13  0xXX MSB
+
+ +

stream serial number

+ +

Ogg allows for separate logical bitstreams to be mixed at page +granularity in a physical bitstream. The most common case would be +sequential arrangement, but it is possible to interleave pages for +two separate bitstreams to be decoded concurrently. The serial +number is the means by which pages physical pages are associated with +a particular logical stream. Each logical stream must have a unique +serial number within a physical stream:

+ +

+ byte value
+
+ 14  0xXX LSB
+ 15  0xXX
+ 16  0xXX
+ 17  0xXX MSB
+
+ +

page sequence no

+ +

Page counter; lets us know if a page is lost (useful where packets +span page boundaries).

+ +

+ byte value
+
+ 18  0xXX LSB
+ 19  0xXX
+ 20  0xXX
+ 21  0xXX MSB
+
+ +

page checksum

+ +

32 bit CRC value (direct algorithm, initial val and final XOR = 0, +generator polynomial=0x04c11db7). The value is computed over the +entire header (with the CRC field in the header set to zero) and then +continued over the page. The CRC field is then filled with the +computed value.

+ +

(A thorough discussion of CRC algorithms can be found in "A +Painless Guide to CRC Error Detection Algorithms" by Ross +Williams ross@ross.net.)

+ +

+ byte value
+
+ 22  0xXX LSB
+ 23  0xXX
+ 24  0xXX
+ 25  0xXX MSB
+
+ +

page_segments

+ +

The number of segment entries to appear in the segment table. The +maximum number of 255 segments (255 bytes each) sets the maximum +possible physical page size at 65307 bytes or just under 64kB (thus +we know that a header corrupted so as destroy sizing/alignment +information will not cause a runaway bitstream. We'll read in the +page according to the corrupted size information that's guaranteed to +be a reasonable size regardless, notice the checksum mismatch, drop +sync and then look for recapture).

+ +

+ byte value
+
+ 26 0x00-0xff (0-255)
+
+ +

segment_table (containing packet lacing values)

+ +

The lacing values for each packet segment physically appearing in +this page are listed in contiguous order.

+ +

+ byte value
+
+ 27 0x00-0xff (0-255)
+ [...]
+ n  0x00-0xff (0-255, n=page_segments+26)
+
+ +

Total page size is calculated directly from the known header size and +lacing values in the segment table. Packet data segments follow +immediately after the header.

+ +

Page headers typically impose a flat .25-.5% space overhead assuming +nominal ~8k page sizes. The segmentation table needed for exact +packet recovery in the streaming layer adds approximately .5-1% +nominal assuming expected encoder behavior in the 44.1kHz, 128kbps +stereo encodings.

+ + + + + diff --git a/Dependencies/libvorbis/doc/helper.html b/Dependencies/libvorbis/doc/helper.html new file mode 100644 index 0000000..f8ff0c7 --- /dev/null +++ b/Dependencies/libvorbis/doc/helper.html @@ -0,0 +1,239 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis I format specification: helper equations

+ +

Overview

+ +

The equations below are used in multiple places by the Vorbis codec +specification. Rather than cluttering up the main specification +documents, they are defined here and linked in the main documents +where appropriate.

+ +

ilog

+ +

The "ilog(x)" function returns the position number (1 through n) of the +highest set bit in the two's complement integer value +[x]. Values of [x] less than zero are defined to return zero.

+ +
+  1) [return_value] = 0;
+  2) if ( [x] is greater than zero ){
+      
+       3) increment [return_value];
+       4) logical shift [x] one bit to the right, padding the MSb with zero
+       5) repeat at step 2)
+
+     }
+
+   6) done
+
+ +

Examples:

+ +
    +
  • ilog(0) = 0;
  • +
  • ilog(1) = 1;
  • +
  • ilog(2) = 2;
  • +
  • ilog(3) = 2;
  • +
  • ilog(4) = 3;
  • +
  • ilog(7) = 3;
  • +
  • ilog(negative number) = 0;
  • +
+ +

float32_unpack

+ +

"float32_unpack(x)" is intended to translate the packed binary +representation of a Vorbis codebook float value into the +representation used by the decoder for floating point numbers. For +purposes of this example, we will unpack a Vorbis float32 into a +host-native floating point number.

+ +
+  1) [mantissa] = [x] bitwise AND 0x1fffff (unsigned result)
+  2) [sign] = [x] bitwise AND 0x80000000 (unsigned result)
+  3) [exponent] = ( [x] bitwise AND 0x7fe00000) shifted right 21 bits (unsigned result)
+  4) if ( [sign] is nonzero ) then negate [mantissa]
+  5) return [mantissa] * ( 2 ^ ( [exponent] - 788 ) )
+
+ +

lookup1_values

+ +

"lookup1_values(codebook_entries,codebook_dimensions)" is used to +compute the correct length of the value index for a codebook VQ lookup +table of lookup type 1. The values on this list are permuted to +construct the VQ vector lookup table of size +[codebook_entries].

+ +

The return value for this function is defined to be 'the greatest +integer value for which [return_value] to the power of +[codebook_dimensions] is less than or equal to +[codebook_entries]'.

+ +

low_neighbor

+ +

"low_neighbor(v,x)" finds the position n in vector [v] of +the greatest value scalar element for which n is less than +[x] and vector [v] element n is less +than vector [v] element [x].

+ +

high_neighbor

+ +

"high_neighbor(v,x)" finds the position n in vector [v] of +the lowest value scalar element for which n is less than +[x] and vector [v] element n is greater +than vector [v] element [x].

+ +

render_point

+ +

"render_point(x0,y0,x1,y1,X)" is used to find the Y value at point X +along the line specified by x0, x1, y0 and y1. This function uses an +integer algorithm to solve for the point directly without calculating +intervening values along the line.

+ +
+  1)  [dy] = [y1] - [y0]
+  2) [adx] = [x1] - [x0]
+  3) [ady] = absolute value of [dy]
+  4) [err] = [ady] * ([X] - [x0])
+  5) [off] = [err] / [adx] using integer division
+  6) if ( [dy] is less than zero ) {
+
+       7) [Y] = [y0] - [off]
+
+     } else {
+
+       8) [Y] = [y0] + [off]
+  
+     }
+
+  9) done
+
+ +

render_line

+ +

Floor decode type one uses the integer line drawing algorithm of +"render_line(x0, y0, x1, y1, v)" to construct an integer floor +curve for contiguous piecewise line segments. Note that it has not +been relevant elsewhere, but here we must define integer division as +rounding division of both positive and negative numbers toward zero.

+ +
+  1)   [dy] = [y1] - [y0]
+  2)  [adx] = [x1] - [x0]
+  3)  [ady] = absolute value of [dy]
+  4) [base] = [dy] / [adx] using integer division
+  5)    [x] = [x0]
+  6)    [y] = [y0]
+  7)  [err] = 0
+
+  8) if ( [dy] is less than 0 ) {
+
+        9) [sy] = [base] - 1
+
+     } else {
+
+       10) [sy] = [base] + 1
+
+     }
+
+ 11) [ady] = [ady] - (absolute value of [base]) * [adx]
+ 12) vector [v] element [x] = [y]
+
+ 13) iterate [x] over the range [x0]+1 ... [x1]-1 {
+
+       14) [err] = [err] + [ady];
+       15) if ( [err] >= [adx] ) {
+
+             15) [err] = [err] - [adx]
+             16)   [y] = [y] + [sy]
+
+           } else {
+
+             17) [y] = [y] + [base]
+   
+           }
+
+       18) vector [v] element [x] = [y]
+
+     }
+
+ + + + + diff --git a/Dependencies/libvorbis/doc/hufftree-under.png b/Dependencies/libvorbis/doc/hufftree-under.png new file mode 100644 index 0000000000000000000000000000000000000000..be6e8d6bb8e5cb37a812be7120619331ee72aa0c GIT binary patch literal 1206 zcmZWpTToL65WPVJC%mOZMU{ z5#g4XI)=$mFqlgt4e}_7DWsstV`7{b5o`(wF|?vkAi!;C|LA_4b7ntwcXrP1wV30P z4p``FnD`=)9Lia#zwVTjVhHS z5~;MbG&3_3Ehs>>S~M*Ul}Jzu1!XeP>1njGk}w_S1pw9|QIx|cc?qTweVPZ=IfC6t z%Njd7xw1WnQ`2-NFr!hmqb&uZUe9z(oqaQ9fAZctt(S|7%gw4oH~_S=0}+J<{>NNi z==M=%c8zrI+4xI^~ECaVAhdBB}{o?ix;wk&G-WX9 z5u_Fr(%o&TH#YU}r9%A)pEo^Tkl#b%PQgfAXWq-1w^-^A<0Ib-IQiMru13ukn89v) zJe-tWWGS(o8*-pkatC>cHE>!wK{kPp*$ORW6KUxgzAPpmM7F(s-8-HqUSe`_%`7yhuu^~GsRLB2=@_jjwJUd_T^-Z{aFsxO z_%f~g;L3jZn4aA*$x5~72Ww|YQ2hktp_;!Tej)RRdk{Mtgr*oa>Tujgi>|8#jZtUy z1owyYfvuMPJZttDbfnIe`sS%QI?)n|toSBoKiJ|e*}Xgj%RjYjtD?)VmN_@@S?UVJ zDyq#2hIEMoLPs6BZ-gZ-ZNAPtHYE9&UjY`?epwIIF&CUY`AQGd@T=W0b7`k>1HQT> zDo((5lT9TC)Ku(6PP7FSozw1O5T7hH`NP#ugCGJu!4dKm&(7VVYm3DuVZ6k!`X17O zf;-HNBHNCi!>`i2)H_nyBu$;JQp8L!)D^DfI{(YDA5sIQWA`*?&IL3qL1j3YdOGu& zk>4)!q7FZvZD_x;%UdR2!N6qEdwKYb`rrlY`?+S7a#k!C{@d$KjK7H!7+n4kp>*y6 z@255IhfEVotP8*ME<58OPgHt)&7&q^NWPmWXQv{wDbb@p8Cg!2#gM#g@Ql%X)<)T- zSovWq2C*h_4&wxOe}Z@7A&G-F*Ic1n#G{J1jvN5KTL02vGty(MawEy6cTc%OZsR{j zpGIB<(f)E+^S{QJXt|588gfH}e(C!;JvpBh7pyH8Ekerk9l7Y_z}=g%_VWeZNHU22>eA~|l^)4#eO7Wi zq9zBg_9G3D8BqjK3v@O~P5=RUIK`v6f#j#D0d!7BI%36(ms literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/hufftree.png b/Dependencies/libvorbis/doc/hufftree.png new file mode 100644 index 0000000000000000000000000000000000000000..f4dc537425bfc1fd8a06bc32b795dcbbd98ae493 GIT binary patch literal 1228 zcmY*ZX;71A5dLDgBpf4<*aDFj<^BNifI*M|Lb)-Zq;FcaNsxkoV4)O5nH-P~lol09 z5DQ^ip%wg;L>#cfa0ElF0jXE8lR_W}7y<>+a0v1>vHocP>^{%VJMTWbv%6*F_y}`T zTT=*v%%dX15+Mi!>+n4jtj?xj;8dOSC&wNRM^RJ(!|7sR4VoN_eXns zD=I2-a&pkHFqFeV5d_W3LgjLlN=0X8&`Xz`XLy$($RIu{EaY&(vAGd-mSU$(Ny6ad zFOrx?%gkr}rR)%m?Qzi8aCepE$mDIWK3~*w;lz+zV^v}_rofXWtP++u!Su~BAR36R z_1C89nq+h1H9yFT*m0sr}Ux+xr7)n zI|fqeyuI1e>YH(5_rP0iCkYh#@M>;)Nh4cwcE109*lihIzPFJs;ce3cNQK|m(4G#qEqJcU6pX5(OSnrwT=>%& zm+I|E{jD?as{gMJ)d#)-EIdIftifakz@tM`z`pNGBcZ2g@$rUCO$4=YkY6^JSHJX1 z;*IR#bWKIs=TwK+)pNFx2|@V0WI@iqBrmv>E=?QlgFQ?0w1Fx_ys#z;0+7}RRkj@ZFU zABsV3e()?-)@R)MhZ|*+I1biwco1#Q8n>W4UPSZ%=ybZ4i)T;DXoiffV3g@&X#Bb~ zh4nJxbGQw1Mk-CcBf!J8mACi5TkBITNw>=VZvAY8|PH@41K7d>W3n_J|=4W_D-i&xl;(kifji$+67)&01gigiUis=y(ZDPNVhL; z_;O`MLxNzJc(>IT>mwO`7@>TiCAv~uPib1{7`Dh-2Dn9_se7J)i+pUOUg^YNQ~JqO z#6^IKT%JeQ*LE**dXKSiXZlrThkTPo5po*g{*>!x*{xh8t!+y5^YR72+&b9HMe;8% zRfKaMwT$ndx-c!U7n8xp?>=1x$Bj)rDr=m2#3rDZM3NL^LoMD2%vpG%P+si4!N;Br z4B}%R2s}KU#-yayG`wIx`|YZd3@jGD(Xj8L+Dvcc-h}_F8$ODcqVK`#xwQL-qTgMD c|Cu-DAzp5gpAG(YQ+Jb~sPOo(8=*ALKY8y}F8}}l literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/index.html b/Dependencies/libvorbis/doc/index.html new file mode 100644 index 0000000..bcf18c0 --- /dev/null +++ b/Dependencies/libvorbis/doc/index.html @@ -0,0 +1,114 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis Documentation

+ +

Vorbis technical discussion documents

+ + +

Ogg Vorbis I specification

+ + + +

Ogg Vorbis programming documents

+ + + +

Ogg bitstream documentation

+ + + + + + + diff --git a/Dependencies/libvorbis/doc/lspmap.png b/Dependencies/libvorbis/doc/lspmap.png new file mode 100644 index 0000000000000000000000000000000000000000..463b7025d3596208923bbc2228304c1c883646a9 GIT binary patch literal 3799 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 literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/oddlsp.png b/Dependencies/libvorbis/doc/oddlsp.png new file mode 100644 index 0000000000000000000000000000000000000000..c754617641cea457f6ede7e98029782d134adc51 GIT binary patch literal 1928 zcmV;32Y2|1P)Z;bi$1=JBf00quESy zD@c@KUdvwgrEOBOm2SF2h^Ebg<Ai_3ZeH71egDWPVB>IXF4}C|T)b@wUtig) z6pMuGN*V>yc#2GUb7>6BU)e~jBw8tV8g#!zEUeoiAc8)|&%LAzpTVjiPAb;uAIOd`YKetE1gohYKd~ zOFAvhPVsW#PB=de;%lcx<7mXtND|QW5cHFlV_^X#XAoz7szC!?&P^J`GDDoWHK&U- z!y+|{ErqT+uzVrj?FCc6ZM&_8UUO}FNW-8a#I$=CYR+vACWc1px;00^;~|m6%X~{g zX%*AMGe?`^=+srR0JQ1#m_bV8hztcsSk6hbfP_Jzc56-;ya3|IhZZvcmcvFvotiX@Zf3kpHn8)1MBK!;%<){d8ZSJvA@@;naV+hmbysP2 zTc&>ZzM0@h`DA=gZi{X2RHVE*^cVB?1O2$F+eEeQVO;=< zs!eDQL{c)gTW-sp@N}f&u)o-3=9`Zx zDyI4ENWQ`8i4;ZP8{7r?;~-zls}7I!*hP}txbxU}qFtoo_#==q{gLwO&|mDMQTQ2N$^*XP9*-z^rYBNkH%zBe&#tqVujN(Ok*%STJi{IP zSnh~@U(bteR9qZ;dyOKJ_qt(yvz48=tF&|6QdxhbygKw38;hsXrp4E+e>2j*Qwm`W zGMT|)>p9}~2EQ#B+*)2$?Bm%Xkvz-;mIw%hz@Ds)6N%fk=a2SE!it zX}bsGYXIXhCk#^LS_JmHA_ba0!`321HW+E}>mpN2mh*_(2z;)g3^EoOgNhFWO~g0I zSB4&zud~CS#J4)bzs@zj$4R)9N1`yKmnkePt*@wD zx4xos-TI2kb?bXnuUp^L-TDdDY$ewYpm$D%7nXJTr{S zCF$0GEcY3eOVX{c*{)h7!i-XsHGrVc_*8%>=cfa)2q4NCK#0z0iW8Z8cT~ouiD`76 zlrwBOEolIuiGxi2Y?hz(Qp3!{9lF5_Xrp3A;h!uQ zGZzl8k#F`&8bI(3&gV@__~|Y-K|H4&?&7}92!t(?qV?SgV-QbD8bI(3A|D%Y7iH@f z39?O_r=yFcViJ0J09z#uAozwbS^pAAzBJ`T>bvo}E=EZM2$LG;^QL7~nyT#wgl%G; z!)+QZMj+VfzwrW%h0T%%5N2`sys4?D*pd5_@GtSJ+=Crd$_Ru{Z!A+F;a+m@#_Hd1 zl{A2G7l%)qkV{>Dyr~1jKa%NthDOE|BhfraD3Hh`Sr1=Dx|{)oFk?_r#DjN?NOJaL z>(=N75T+Sonx5g-k|GUu>yK&xK{JHtc@iHH`HL>UTOYctaZzMs%kS2A0|-=$8$fWX zHGoh#YnAKPpINP3xBi^1yY=gC{kmJf0_tx4OQ7!7ubf(~R;$%&wf_P1Iy6re3OMfo O0000 + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg logical and physical bitstream overview

+ +

Ogg bitstreams

+ +

Ogg codecs use octet vectors of raw, compressed data +(packets). These compressed packets do not have any +high-level structure or boundary information; strung together, they +appear to be streams of random bytes with no landmarks.

+ +

Raw packets may be used directly by transport mechanisms that provide +their own framing and packet-separation mechanisms (such as UDP +datagrams). For stream based storage (such as files) and transport +(such as TCP streams or pipes), Vorbis and other future Ogg codecs use +the Ogg bitstream format to provide framing/sync, sync recapture +after error, landmarks during seeking, and enough information to +properly separate data back into packets at the original packet +boundaries without relying on decoding to find packet boundaries.

+ +

Logical and physical bitstreams

+ +

Raw packets are grouped and encoded into contiguous pages of +structured bitstream data called logical bitstreams. A +logical bitstream consists of pages, in order, belonging to a single +codec instance. Each page is a self contained entity (although it is +possible that a packet may be split and encoded across one or more +pages); that is, the page decode mechanism is designed to recognize, +verify and handle single pages at a time from the overall bitstream.

+ +

Multiple logical bitstreams can be combined (with restrictions) into a +single physical bitstream. A physical bitstream consists of +multiple logical bitstreams multiplexed at the page level and may +include a 'meta-header' at the beginning of the multiplexed logical +stream that serves as identification magic. Whole pages are taken in +order from multiple logical bitstreams and combined into a single +physical stream of pages. The decoder reconstructs the original +logical bitstreams from the physical bitstream by taking the pages in +order from the physical bitstream and redirecting them into the +appropriate logical decoding entity. The simplest physical bitstream +is a single, unmultiplexed logical bitstream with no meta-header; this +is referred to as a 'degenerate stream'.

+ +

Ogg Logical Bitstream Framing discusses +the page format of an Ogg bitstream, the packet coding process +and logical bitstreams in detail. The remainder of this document +specifies requirements for constructing finished, physical Ogg +bitstreams.

+ +

Mapping Restrictions

+ +

Logical bitstreams may not be mapped/multiplexed into physical +bitstreams without restriction. Here we discuss design restrictions +on Ogg physical bitstreams in general, mostly to introduce +design rationale. Each 'media' format defines its own (generally more +restrictive) mapping. An 'Ogg Vorbis Audio Bitstream', for example, has a +specific physical bitstream structure. +An 'Ogg A/V' bitstream (not currently specified) will also mandate a +specific, restricted physical bitstream format.

+ +

additional end-to-end structure

+ +

The framing specification defines +'beginning of stream' and 'end of stream' page markers via a header +flag (it is possible for a stream to consist of a single page). A +stream always consists of an integer number of pages, an easy +requirement given the variable size nature of pages.

+ +

In addition to the header flag marking the first and last pages of a +logical bitstream, the first page of an Ogg bitstream obeys +additional restrictions. Each individual media mapping specifies its +own implementation details regarding these restrictions.

+ +

The first page of a logical Ogg bitstream consists of a single, +small 'initial header' packet that includes sufficient information to +identify the exact CODEC type and media requirements of the logical +bitstream. The intent of this restriction is to simplify identifying +the bitstream type and content; for a given media type (or across all +Ogg media types) we can know that we only need a small, fixed +amount of data to uniquely identify the bitstream type.

+ +

As an example, Ogg Vorbis places the name and revision of the Vorbis +CODEC, the audio rate and the audio quality into this initial header, +thus simplifying vastly the certain identification of an Ogg Vorbis +audio bitstream.

+ +

sequential multiplexing (chaining)

+ +

The simplest form of logical bitstream multiplexing is concatenation +(chaining). Complete logical bitstreams are strung +one-after-another in order. The bitstreams do not overlap; the final +page of a given logical bitstream is immediately followed by the +initial page of the next. Chaining is the only logical->physical +mapping allowed by Ogg Vorbis.

+ +

Each chained logical bitstream must have a unique serial number within +the scope of the physical bitstream.

+ +

concurrent multiplexing (grouping)

+ +

Logical bitstreams may also be multiplexed 'in parallel' +(grouped). An example of grouping would be to allow +streaming of separate audio and video streams, using different codecs +and different logical bitstreams, in the same physical bitstream. +Whole pages from multiple logical bitstreams are mixed together.

+ +

The initial pages of each logical bitstream must appear first; the +media mapping specifies the order of the initial pages. For example, +Ogg A/V will eventually specify an Ogg video bitstream with +audio. The mapping may specify that the physical bitstream must begin +with the initial page of a logical video bitstream, followed by the +initial page of an audio stream. Unlike initial pages, terminal pages +for the logical bitstreams need not all occur contiguously (although a +specific media mapping may require this; it is not mandated by the +generic Ogg stream spec). Terminal pages may be 'nil' pages, +that is, pages containing no content but simply a page header with +position information and the 'last page of bitstream' flag set in the +page header.

+ +

Each grouped bitstream must have a unique serial number within the +scope of the physical bitstream.

+ +

sequential and concurrent multiplexing

+ +

Groups of concurrently multiplexed bitstreams may be chained +consecutively. Such a physical bitstream obeys all the rules of both +grouped and chained multiplexed streams; the groups, when unchained , +must stand on their own as a valid concurrently multiplexed +bitstream.

+ +

multiplexing example

+ +

Below, we present an example of a grouped and chained bitstream:

+ +

stream

+ +

In this example, we see pages from five total logical bitstreams +multiplexed into a physical bitstream. Note the following +characteristics:

+ +
    +
  1. Grouped bitstreams begin together; all of the initial pages +must appear before any data pages. When concurrently multiplexed +groups are chained, the new group does not begin until all the +bitstreams in the previous group have terminated.
  2. + +
  3. The pages of concurrently multiplexed bitstreams need not conform +to a regular order; the only requirement is that page n of a +logical bitstream follow page n-1 in the physical bitstream. +There are no restrictions on intervening pages belonging to other +logical bitstreams. (Tying page appearance to bitrate demands is one +logical strategy, ie, the page appears at the chronological point +where decode requires more information).
  4. +
+ + + + + diff --git a/Dependencies/libvorbis/doc/programming.html b/Dependencies/libvorbis/doc/programming.html new file mode 100644 index 0000000..000adce --- /dev/null +++ b/Dependencies/libvorbis/doc/programming.html @@ -0,0 +1,554 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Programming with Xiph.org libvorbis

+ +

Description

+ +

Libvorbis is the Xiph.org Foundation's portable Ogg Vorbis CODEC +implemented as a programmatic library. Libvorbis provides primitives +to handle framing and manipulation of Ogg bitstreams (used by the +Vorbis for streaming), a full analysis (encoding) interface as well as +packet decoding and synthesis for playback.

+ +

The libvorbis library does not provide any system interface; a +full-featured demonstration player included with the library +distribtion provides example code for a variety of system interfaces +as well as a working example of using libvorbis in production code.

+ +

Encoding Overview

+ +

Decoding Overview

+ +

Decoding a bitstream with libvorbis follows roughly the following +steps:

+ +
    +
  1. Frame the incoming bitstream into pages
  2. +
  3. Sort the pages by logical bitstream and buffer then into logical streams
  4. +
  5. Decompose the logical streams into raw packets
  6. +
  7. Reconstruct segments of the original data from each packet
  8. +
  9. Glue the reconstructed segments back into a decoded stream
  10. +
+ +

Framing

+ +

An Ogg bitstream is logically arranged into pages, but to decode +the pages, we have to find them first. The raw bitstream is first fed +into an ogg_sync_state buffer using ogg_sync_buffer() +and ogg_sync_wrote(). After each block we submit to the sync +buffer, we should check to see if we can frame and extract a complete +page or pages using ogg_sync_pageout(). Extra pages are +buffered; allowing them to build up in the ogg_sync_state +buffer will eventually exhaust memory.

+ +

The Ogg pages returned from ogg_sync_pageout need not be +decoded further to be used as landmarks in seeking; seeking can be +either a rough process of simply jumping to approximately intuited +portions of the bitstream, or it can be a precise bisection process +that captures pages and inspects data position. When seeking, +however, sequential multiplexing (chaining) must be accounted for; +beginning play in a new logical bitstream requires initializing a +synthesis engine with the headers from that bitstream. Vorbis +bitstreams do not make use of concurent multiplexing (grouping).

+ +

Sorting

+ +

The pages produced by ogg_sync_pageout are then sorted by +serial number to seperate logical bitstreams. Initialize logical +bitstream buffers (og_stream_state) using +ogg_stream_init(). Pages are submitted to the matching +logical bitstream buffer using ogg_stream_pagein; the serial +number of the page and the stream buffer must match, or the page will +be rejected. A page submitted out of sequence will simply be noted, +and in the course of outputting packets, the hole will be flagged +(ogg_sync_pageout and ogg_stream_packetout will +return a negative value at positions where they had to recapture the +stream).

+ +

Extracting packets

+ +

After submitting page[s] to a logical stream, read available packets +using ogg_stream_packetout.

+ +

Decoding packets

+ +

Reassembling data segments

+ +

Ogg Bitstream Manipulation Structures

+ +

Two of the Ogg bitstream data structures are intended to be +transparent to the developer; the fields should be used directly.

+ +

ogg_packet

+ +
+typedef struct {
+  unsigned char *packet;
+  long  bytes;
+  long  b_o_s;
+  long  e_o_s;
+
+  size64 granulepos;
+
+} ogg_packet;
+
+ +
+
packet:
+
a pointer to the byte data of the raw packet
+
bytes:
+
the size of the packet' raw data
+
b_o_s:
+
beginning of stream; nonzero if this is the first packet of + the logical bitstream
+
e_o_s:
+
end of stream; nonzero if this is the last packet of the + logical bitstream
+
granulepos:
+
the absolute position of this packet in the original + uncompressed data stream.
+
+ +

encoding notes

+ +

The encoder is responsible for setting all of +the fields of the packet to appropriate values before submission to +ogg_stream_packetin(); however, it is noted that the value in +b_o_s is ignored; the first page produced from a given +ogg_stream_state structure will be stamped as the initial +page. e_o_s, however, must be set; this is the means by +which the stream encoding primitives handle end of stream and cleanup.

+ +

decoding notes

+ +

ogg_stream_packetout() sets the fields +to appropriate values. Note that granulepos will be >= 0 only in the +case that the given packet actually represents that position (ie, only +the last packet completed on any page will have a meaningful +granulepos). Intervening frames will see granulepos set +to -1.

+ +

ogg_page

+ +
+typedef struct {
+  unsigned char *header;
+  long header_len;
+  unsigned char *body;
+  long body_len;
+} ogg_page;
+
+ +
+
header:
+
pointer to the page header data
+
header_len:
+
length of the page header in bytes
+
body:
+
pointer to the page body
+
body_len:
+
length of the page body
+
+ +

Note that although the header and body pointers do +not necessarily point into a single contiguous page vector, the page +body must immediately follow the header in the bitstream.

+ +

Ogg Bitstream Manipulation Functions

+ +

+int ogg_page_bos(ogg_page *og); +

+ +

Returns the 'beginning of stream' flag for the given Ogg page. The +beginning of stream flag is set on the initial page of a logical +bitstream.

+ +

Zero indicates the flag is cleared (this is not the initial page of a +logical bitstream). Nonzero indicates the flag is set (this is the +initial page of a logical bitstream).

+ +

+int ogg_page_continued(ogg_page *og); +

+ +

Returns the 'packet continued' flag for the given Ogg page. The packet +continued flag indicates whether or not the body data of this page +begins with packet continued from a preceeding page.

+ +

Zero (unset) indicates that the body data begins with a new packet. +Nonzero (set) indicates that the first packet data on the page is a +continuation from the preceeding page.

+ +

+int ogg_page_eos(ogg_page *og); +

+ +

Returns the 'end of stream' flag for a give Ogg page. The end of page +flag is set on the last (terminal) page of a logical bitstream.

+ +

Zero (unset) indicates that this is not the last page of a logical +bitstream. Nonzero (set) indicates that this is the last page of a +logical bitstream and that no addiitonal pages belonging to this +bitstream may follow.

+ +

+size64 ogg_page_granulepos(ogg_page *og); +

+ +

Returns the position of this page as an absolute position within the +original uncompressed data. The position, as returned, is 'frames +encoded to date up to and including the last whole packet on this +page'. Partial packets begun on this page but continued to the +following page are not included. If no packet ends on this page, the +frame position value will be equal to the frame position value of the +preceeding page. If none of the original uncompressed data is yet +represented in the logical bitstream (for example, the first page of a +bitstream consists only of a header packet; this packet encodes only +metadata), the value shall be zero.

+ +

The units of the framenumber are determined by media mapping. A +vorbis audio bitstream, for example, defines one frame to be the +channel values from a single sampling period (eg, a 16 bit stereo +bitstream consists of two samples of two bytes for a total of four +bytes, thus a frame would be four bytes). A video stream defines one +frame to be a single frame of video.

+ +

+int ogg_page_pageno(ogg_page *og); +

+ +

Returns the sequential page number of the given Ogg page. The first +page in a logical bitstream is numbered zero; following pages are +numbered in increasing monotonic order.

+ +

+int ogg_page_serialno(ogg_page *og); +

+ +

Returns the serial number of the given Ogg page. The serial number is +used as a handle to distinguish various logical bitstreams in a +physical Ogg bitstresm. Every logical bitstream within a +physical bitstream must use a unique (within the scope of the physical +bitstream) serial number, which is stamped on all bitstream pages.

+ +

+int ogg_page_version(ogg_page *og); +

+ +

Returns the revision of the Ogg bitstream structure of the given page. +Currently, the only permitted number is zero. Later revisions of the +bitstream spec will increment this version should any changes be +incompatable.

+ +

+int ogg_stream_clear(ogg_stream_state *os); +

+ +

Clears and deallocates the internal storage of the given Ogg stream. +After clearing, the stream structure is not initialized for use; +ogg_stream_init must be called to reinitialize for use. +Use ogg_stream_reset to reset the stream state +to a fresh, intiialized state.

+ +

ogg_stream_clear does not call free() on the pointer +os, allowing use of this call on stream structures in static +or automatic storage. ogg_stream_destroyis a complimentary +function that frees the pointer as well.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+int ogg_stream_destroy(ogg_stream_state *os); +

+ +

Clears and deallocates the internal storage of the given Ogg stream, +then frees the storage associated with the pointer os.

+ +

ogg_stream_clear does not call free() on the pointer +os, allowing use of that call on stream structures in static +or automatic storage.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+int ogg_stream_init(ogg_stream_state *os,int serialno); +

+ +

Initialize the storage associated with os for use as an Ogg +stream. This call is used to initialize a stream for both encode and +decode. The given serial number is the serial number that will be +stamped on pages of the produced bitstream (during encode), or used as +a check that pages match (during decode).

+ +

Returns zero on success, nonzero on failure.

+ +

+int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +

+ +

Used during encoding to add the given raw packet to the given Ogg +bitstream. The contents of op are copied; +ogg_stream_packetin does not retain any pointers into +op's storage. The encoding proccess buffers incoming packets +until enough packets have been assembled to form an entire page; +ogg_stream_pageout is used to read complete pages.

+ +

Returns zero on success, nonzero on failure.

+ +

+int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +

+ +

Used during decoding to read raw packets from the given logical +bitstream. ogg_stream_packetout will only return complete +packets for which checksumming indicates no corruption. The size and +contents of the packet exactly match those given in the encoding +process.

+ +

Returns zero if the next packet is not ready to be read (not buffered +or incomplete), positive if it returned a complete packet in +op and negative if there is a gap, extra bytes or corruption +at this position in the bitstream (essentially that the bitstream had +to be recaptured). A negative value is not necessarily an error. It +would be a common occurence when seeking, for example, which requires +recapture of the bitstream at the position decoding continued.

+ +

If the return value is positive, ogg_stream_packetout placed +a packet in op. The data in op points to static +storage that is valid until the next call to +ogg_stream_pagein, ogg_stream_clear, +ogg_stream_reset, or ogg_stream_destroy. The +pointers are not invalidated by more calls to +ogg_stream_packetout.

+ +

+int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +

+ +

Used during decoding to buffer the given complete, pre-verified page +for decoding into raw Ogg packets. The given page must be framed, +normally produced by ogg_sync_pageout, and from the logical +bitstream associated with os (the serial numbers must match). +The contents of the given page are copied; ogg_stream_pagein +retains no pointers into og storage.

+ +

Returns zero on success and non-zero on failure.

+ +

+int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +

+ +

Used during encode to read complete pages from the stream buffer. The +returned page is ready for sending out to the real world.

+ +

Returns zero if there is no complete page ready for reading. Returns +nonzero when it has placed data for a complete page into +og. Note that the storage returned in og points into internal +storage; the pointers in og are valid until the next call to +ogg_stream_pageout, ogg_stream_packetin, +ogg_stream_reset, ogg_stream_clear or +ogg_stream_destroy.

+ +

+int ogg_stream_reset(ogg_stream_state *os); +

+ +

Resets the given stream's state to that of a blank, unused stream; +this may be used during encode or decode.

+ +

Note that if used during encode, it does not alter the stream's serial +number. In addition, the next page produced during encoding will be +marked as the 'initial' page of the logical bitstream.

+ +

When used during decode, this simply clears the data buffer of any +pending pages. Beginning and end of stream cues are read from the +bitstream and are unaffected by reset.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+char *ogg_sync_buffer(ogg_sync_state *oy, long size); +

+ +

This call is used to buffer a raw bitstream for framing and +verification. ogg_sync_buffer handles stream capture and +recapture, checksumming, and division into Ogg pages (as required by +ogg_stream_pagein).

+ +

ogg_sync_buffer exposes a buffer area into which the decoder +copies the next (up to) size bytes. We expose the buffer +(rather than taking a buffer) in order to avoid an extra copy many +uses; this way, for example, read() can transfer data +directly into the stream buffer without first needing to place it in +temporary storage.

+ +

Returns a pointer into oy's internal bitstream sync buffer; +the remaining space in the sync buffer is at least size +bytes. The decoder need not write all of size bytes; +ogg_sync_wrote is used to inform the engine how many bytes +were actually written. Use of ogg_sync_wrote after writing +into the exposed buffer is mandantory.

+ +

+int ogg_sync_clear(ogg_sync_state *oy); +

+ +

ogg_sync_clear +clears and deallocates the internal storage of the given Ogg sync +buffer. After clearing, the sync structure is not initialized for +use; ogg_sync_init must be called to reinitialize for use. +Use ogg_sync_reset to reset the sync state and buffer to a +fresh, intiialized state.

+ +

ogg_sync_clear does not call free() on the pointer +oy, allowing use of this call on sync structures in static +or automatic storage. ogg_sync_destroyis a complimentary +function that frees the pointer as well.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+int ogg_sync_destroy(ogg_sync_state *oy); +

+ +

Clears and deallocates the internal storage of the given Ogg sync +buffer, then frees the storage associated with the pointer +oy.

+ +

An alternative function,ogg_sync_clear, does not call +free() on the pointer oy, allowing use of that call on +stream structures in static or automatic storage.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+int ogg_sync_init(ogg_sync_state *oy); +

+ +

Initializes the sync buffer oy for use.

+ +

Returns zero on success and non-zero on failure. This function always +succeeds.

+ +

+int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +

+ +

Reads complete, framed, verified Ogg pages from the sync buffer, +placing the page data in og.

+ +

Returns zero when there's no complete pages buffered for +retrieval. Returns negative when a loss of sync or recapture occurred +(this is not necessarily an error; recapture would be required after +seeking, for example). Returns positive when a page is returned in +og. Note that the data in og points into the sync +buffer storage; the pointers are valid until the next call to +ogg_sync_buffer, ogg_sync_clear, +ogg_sync_destroy or ogg_sync_reset.

+ +

+int ogg_sync_reset(ogg_sync_state *oy); +

+ +

ogg_sync_reset resets the sync state in oy to a +clean, empty state. This is useful, for example, when seeking to a +new location in a bitstream.

+ +

Returns zero on success, nonzero on failure.

+ +

+int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +

+ +

Used to inform the sync state as to how many bytes were actually +written into the exposed sync buffer. It must be equal to or less +than the size of the buffer requested.

+ +

Returns zero on success and non-zero on failure; failure occurs only +when the number of bytes written were larger than the buffer.

+ + + + + diff --git a/Dependencies/libvorbis/doc/residue-pack.png b/Dependencies/libvorbis/doc/residue-pack.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed071b857362cf5760aa4a77d9d0bb472ec49fb GIT binary patch literal 32318 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°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 Q$tXd3T85f+5ZkE#1AlvNwg3PC literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/residue2.png b/Dependencies/libvorbis/doc/residue2.png new file mode 100644 index 0000000000000000000000000000000000000000..e8bde3262cb60c7405cd536061413087bb701906 GIT binary patch literal 20427 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 aN4Fo(9F=)IMSBnc0000 + IETF Audio/Video Transport Working Group + + Intended usage: + + COMMON + + Restriction on usage: + + This media type depends on RTP framing, hence is only defined for + transfer via RTP [RFC3550]. + + Author: + + Luca Barbato + + Change controller: + + IETF AVT Working Group delegated from the IESG + +6.1. Packed Headers IANA Considerations + + The following IANA considerations refers to the split configuration + Packed Headers (Section 3.2.1) used within RFC 5215. + + Type name: audio + + Subtype name: vorbis-config + + Required parameters: + + None + + Optional parameters: + + None + + Encoding considerations: + + This media type contains binary data. + + Security considerations: + + See Section 10 of RFC 5215. + + + + + +Barbato Standards Track [Page 19] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + + Interoperability considerations: + + None + + Published specification: + + RFC 5215 + + Applications which use this media type: + + Vorbis encoded audio, configuration data + + Additional information: + + None + + Person & email address to contact for further information: + + Luca Barbato: + IETF Audio/Video Transport Working Group + + Intended usage: COMMON + + Restriction on usage: + + This media type doesn't depend on the transport. + + Author: + + Luca Barbato + + Change controller: + + IETF AVT Working Group delegated from the IESG + +7. SDP Related Considerations + + The following paragraphs define the mapping of the parameters + described in the IANA considerations section and their usage in the + Offer/Answer Model [RFC3264]. In order to be forward compatible, the + implementation MUST ignore unknown parameters. + +7.1. Mapping Media Type Parameters into SDP + + The information carried in the Media Type specification has a + specific mapping to fields in the Session Description Protocol (SDP) + [RFC4566], which is commonly used to describe RTP sessions. When SDP + is used to specify sessions, the mapping are as follows: + + + +Barbato Standards Track [Page 20] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + + o The type name ("audio") goes in SDP "m=" as the media name. + + o The subtype name ("vorbis") goes in SDP "a=rtpmap" as the encoding + name. + + o The parameter "rate" also goes in "a=rtpmap" as the clock rate. + + o The parameter "channels" also goes in "a=rtpmap" as the channel + count. + + o The mandated parameters "configuration" MUST be included in the + SDP "a=fmtp" attribute. + + If the stream comprises chained Vorbis files and all of them are + known in advance, the Configuration Packet for each file SHOULD be + passed to the client using the configuration attribute. + + The port value is specified by the server application bound to the + address specified in the c= line. The channel count value specified + in the rtpmap attribute SHOULD match the current Vorbis stream or + should be considered the maximum number of channels to be expected. + The timestamp clock rate MUST be a multiple of the sample rate; a + different payload number MUST be used if the clock rate changes. The + Configuration payload delivers the exact information, thus the SDP + information SHOULD be considered a hint. An example is found below. + +7.1.1. SDP Example + + The following example shows a basic SDP single stream. The first + configuration packet is inside the SDP; other configurations could be + fetched at any time from the URIs provided. The following base64 + [RFC4648] configuration string is folded in this example due to RFC + line length limitations. + + c=IN IP4 192.0.2.1 + + m=audio RTP/AVP 98 + + a=rtpmap:98 vorbis/44100/2 + + a=fmtp:98 configuration=AAAAAZ2f4g9NAh4aAXZvcmJpcwA...; + + Note that the payload format (encoding) names are commonly shown in + uppercase. Media Type subtypes are commonly shown in lowercase. + These names are case-insensitive in both places. Similarly, + parameter names are case-insensitive both in Media Type types and in + the default mapping to the SDP a=fmtp attribute. The a=fmtp line is + + + + +Barbato Standards Track [Page 21] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + + a single line, even if it is shown as multiple lines in this document + for clarity. + +7.2. Usage with the SDP Offer/Answer Model + + There are no negotiable parameters. All of them are declarative. + +8. Congestion Control + + The general congestion control considerations for transporting RTP + data apply to Vorbis audio over RTP as well. See the RTP + specification [RFC3550] and any applicable RTP profile (e.g., + [RFC3551]). Audio data can be encoded using a range of different bit + rates, so it is possible to adapt network bandwidth by adjusting the + encoder bit rate in real time or by having multiple copies of content + encoded at different bit rates. + +9. Example + + The following example shows a common usage pattern that MAY be + applied in such a situation. The main scope of this section is to + explain better usage of the transmission vectors. + +9.1. Stream Radio + + This is one of the most common situations: there is one single server + streaming content in multicast, and the clients may start a session + at a random time. The content itself could be a mix of a live stream + (as the webjockey's voice) and stored streams (as the music she + plays). + + In this situation, we don't know in advance how many codebooks we + will use. The clients can join anytime and users expect to start + listening to the content in a short time. + + Upon joining, the client will receive the current Configuration + necessary to decode the current stream inside the SDP so that the + decoding will start immediately after. + + When the streamed content changes, the new Configuration is sent in- + band before the actual stream, and the Configuration that has to be + sent inside the SDP is updated. Since the in-band method is + unreliable, an out-of-band fallback is provided. + + The client may choose to fetch the Configuration from the alternate + source as soon as it discovers a Configuration packet got lost in- + band, or use selective retransmission [RFC3611] if the server + supports this feature. + + + +Barbato Standards Track [Page 22] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + + A server-side optimization would be to keep a hash list of the + Configurations per session, which avoids packing all of them and + sending the same Configuration with different Ident tags. + + A client-side optimization would be to keep a tag list of the + Configurations per session and not process configuration packets that + are already known. + +10. Security Considerations + + RTP packets using this payload format are subject to the security + considerations discussed in the RTP specification [RFC3550], the + base64 specification [RFC4648], and the URI Generic syntax + specification [RFC3986]. Among other considerations, this implies + that the confidentiality of the media stream is achieved by using + encryption. Because the data compression used with this payload + format is applied end-to-end, encryption may be performed on the + compressed data. + +11. Copying Conditions + + The authors agree to grant third parties the irrevocable right to + copy, use, and distribute the work, with or without modification, in + any medium, without royalty, provided that, unless separate + permission is granted, redistributed modified works do not contain + misleading author, version, name of work, or endorsement information. + +12. Acknowledgments + + This document is a continuation of the following documents: + + Moffitt, J., "RTP Payload Format for Vorbis Encoded Audio", February + 2001. + + Kerr, R., "RTP Payload Format for Vorbis Encoded Audio", December + 2004. + + The Media Type declaration is a continuation of the following + document: + + Short, B., "The audio/rtp-vorbis MIME Type", January 2008. + + Thanks to the AVT, Vorbis Communities / Xiph.Org Foundation including + Steve Casner, Aaron Colwell, Ross Finlayson, Fluendo, Ramon Garcia, + Pascal Hennequin, Ralph Giles, Tor-Einar Jarnbjo, Colin Law, John + Lazzaro, Jack Moffitt, Christopher Montgomery, Colin Perkins, Barry + Short, Mike Smith, Phil Kerr, Michael Sparks, Magnus Westerlund, + David Barrett, Silvia Pfeiffer, Stefan Ehmann, Gianni Ceccarelli, and + + + +Barbato Standards Track [Page 23] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + + Alessandro Salvatori. Thanks to the LScube Group, in particular + Federico Ridolfo, Francesco Varano, Giampaolo Mancini, Dario + Gallucci, and Juan Carlos De Martin. + +13. References + +13.1. Normative References + + [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", + RFC 1191, November 1990. + + [RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU + Discovery for IP version 6", RFC 1981, + August 1996. + + [RFC2119] Bradner, S., "Key words for use in RFCs to + Indicate Requirement Levels", BCP 14, RFC 2119, + March 1997. + + [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer + Model with Session Description Protocol (SDP)", + RFC 3264, June 2002. + + [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, July 2003. + + [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for + Audio and Video Conferences with Minimal Control", + STD 65, RFC 3551, July 2003. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, + "Uniform Resource Identifier (URI): Generic + Syntax", STD 66, RFC 3986, January 2005. + + [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: + Session Description Protocol", RFC 4566, + July 2006. + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 + Data Encodings", RFC 4648, October 2006. + + [VORBIS-SPEC-REF] "Ogg Vorbis I specification: Codec setup and + packet decode. Available from the Xiph website, + http://xiph.org/vorbis/doc/Vorbis_I_spec.html". + + + + + + +Barbato Standards Track [Page 24] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + +13.2. Informative References + + [LIBVORBIS] "libvorbis: Available from the dedicated website, + http://vorbis.com/". + + [RFC3533] Pfeiffer, S., "The Ogg Encapsulation Format + Version 0", RFC 3533, May 2003. + + [RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP + Control Protocol Extended Reports (RTCP XR)", + RFC 3611, November 2003. + + [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. + Hakenberg, "RTP Retransmission Payload Format", + RFC 4588, July 2006. + +Author's Address + + Luca Barbato + Xiph.Org Foundation + + EMail: lu_zero@gentoo.org + URI: http://xiph.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Barbato Standards Track [Page 25] + +RFC 5215 Vorbis RTP Payload Format August 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Barbato Standards Track [Page 26] + diff --git a/Dependencies/libvorbis/doc/rfc5215.xml b/Dependencies/libvorbis/doc/rfc5215.xml new file mode 100755 index 0000000..719c100 --- /dev/null +++ b/Dependencies/libvorbis/doc/rfc5215.xml @@ -0,0 +1,1176 @@ + + + + + + + + + + + + +RTP Payload Format for Vorbis Encoded Audio + + +Xiph.Org Foundation +
+lu_zero@gentoo.org +http://xiph.org/ +
+
+ + + +General +AVT Working Group +I-D + +Internet-Draft +Vorbis +RTP + +example + + + + +This document describes an RTP payload format for transporting Vorbis encoded +audio. It details the RTP encapsulation mechanism for raw Vorbis data and +the delivery mechanisms for the decoder probability model (referred to +as a codebook), as well as other setup information. + + + +Also included within this memo are media type registrations and the details +necessary for the use of Vorbis with the Session Description Protocol (SDP). + + + + +
+ + + +
+ + +Vorbis is a general purpose perceptual audio codec intended to allow +maximum encoder flexibility, thus allowing it to scale competitively +over an exceptionally wide range of bit rates. At the high +quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits), it +is in the same league as MPEG-4 AAC. +Vorbis is also intended for lower and higher sample rates (from +8kHz telephony to 192kHz digital masters) and a range of channel +representations (monaural, polyphonic, stereo, quadraphonic, 5.1, +ambisonic, or up to 255 discrete channels). + + + +Vorbis encoded audio is generally encapsulated within an Ogg format bitstream +, which provides framing and synchronization. +For the purposes of RTP transport, this layer is unnecessary, and so raw Vorbis +packets are used in the payload. + + +
+ +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, and indicate requirement levels for compliant implementations. Requirements apply to all implementations unless otherwise stated. +An implementation is a software module that supports one of the media types defined in this document. Software modules may support multiple media types, but conformance is considered individually for each type. +Implementations that fail to satisfy one or more "MUST" requirements are considered non-compliant. Implementations that satisfy all "MUST" requirements, but fail to satisfy one or more "SHOULD" requirements, are said to be "conditionally compliant". All other implementations are "unconditionally compliant". + +
+
+ +
+ + +For RTP-based transport of Vorbis-encoded audio, the standard RTP header is +followed by a 4-octet payload header, and then the payload data. The payload +headers are used to associate the Vorbis data with its associated decoding +codebooks as well as indicate if the following packet contains fragmented +Vorbis data and/or the number of whole Vorbis data frames. The payload data +contains the raw Vorbis bitstream information. There are 3 types of Vorbis +data; an RTP payload MUST contain just one of them at a time. + + +
+ + +The format of the RTP header is specified in +and shown in . This payload format +uses the fields of the header in a manner consistent with that specification. + + + +
+ +
+
+ + +The RTP header begins with an octet of fields (V, P, X, and CC) to support +specialized RTP uses (see and + for details). For Vorbis RTP, the following +values are used. + + + +Version (V): 2 bits + +This field identifies the version of RTP. The version used by this +specification is two (2). + + + +Padding (P): 1 bit + +Padding MAY be used with this payload format according to Section 5.1 of +. + + + +Extension (X): 1 bit + +The Extension bit is used in accordance with . + + + +CSRC count (CC): 4 bits + +The CSRC count is used in accordance with . + + + +Marker (M): 1 bit + +Set to zero. Audio silence suppression is not used. This conforms to Section 4.1 +of . + + + +Payload Type (PT): 7 bits + +An RTP profile for a class of applications is expected to assign a payload type +for this format, or a dynamically allocated payload type SHOULD be chosen that +designates the payload as Vorbis. + + + +Sequence number: 16 bits + +The sequence number increments by one for each RTP data packet sent, and may be +used by the receiver to detect packet loss and to restore the packet sequence. This +field is detailed further in . + + + +Timestamp: 32 bits + +A timestamp representing the sampling time of the first sample of the first +Vorbis packet in the RTP payload. The clock frequency MUST be set to the sample +rate of the encoded audio data and is conveyed out-of-band (e.g., as an SDP parameter). + + + +SSRC/CSRC identifiers: + +These two fields, 32 bits each with one SSRC field and a maximum of 16 CSRC +fields, are as defined in +. + + +
+ +
+ + +The 4 octets following the RTP Header section are the Payload Header. This +header is split into a number of bit fields detailing the format of the +following payload data packets. + + +
+ +
+ + +Ident: 24 bits + +This 24-bit field is used to associate the Vorbis data to a decoding +Configuration. It is stored as a network byte order integer. + + + +Fragment type (F): 2 bits + +This field is set according to the following list: + + + + 0 = Not Fragmented + 1 = Start Fragment + 2 = Continuation Fragment + 3 = End Fragment + + + +Vorbis Data Type (VDT): 2 bits + +This field specifies the kind of Vorbis data stored in this RTP packet. There +are currently three different types of Vorbis payloads. Each packet MUST contain only a single type of Vorbis packet (e.g., you must not aggregate configuration and comment packets in the same RTP payload). + + + + + 0 = Raw Vorbis payload + 1 = Vorbis Packed Configuration payload + 2 = Legacy Vorbis Comment payload + 3 = Reserved + + + The packets with a VDT of value 3 MUST be ignored. + + +The last 4 bits represent the number of complete packets in this payload. This +provides for a maximum number of 15 Vorbis packets in the payload. If the +payload contains fragmented data, the number of packets MUST be set to 0. + + +
+ +
+ + +Raw Vorbis packets are currently unbounded in length; application profiles will +likely define a practical limit. Typical Vorbis packet sizes range from very +small (2-3 bytes) to quite large (8-12 kilobytes). The reference implementation + typically produces packets less than ~800 +bytes, except for the setup header packets, which are ~4-12 kilobytes. Within an +RTP context, to avoid fragmentation, the Vorbis data packet size SHOULD be kept +sufficiently small so that after adding the RTP and payload headers, the +complete RTP packet is smaller than the path MTU. + + +
+ +
+ + +Each Vorbis payload packet starts with a two octet length header, which is used +to represent the size in bytes of the following data payload, and is followed by the +raw Vorbis data padded to the nearest byte boundary, as explained by the Vorbis I Specification. The length value is stored +as a network byte order integer. + + + +For payloads that consist of multiple Vorbis packets, the payload data consists +of the packet length followed by the packet data for each of the Vorbis packets +in the payload. + + + +The Vorbis packet length header is the length of the Vorbis data block only and +does not include the length field. + + + +The payload packing of the Vorbis data packets MUST follow the guidelines +set out in , where the oldest Vorbis packet occurs +immediately after the RTP packet header. Subsequent Vorbis packets, if any, MUST +follow in temporal order. + + + +Audio channel mapping is in accordance with the +Vorbis I Specification. + + +
+ +
+ + +Here is an example RTP payload containing two Vorbis packets. + + +
+ +
+ + +The payload data section of the RTP packet begins with the 24-bit Ident field +followed by the one octet bit field header, which has the number of Vorbis +frames set to 2. Each of the Vorbis data frames is prefixed by the two octets +length field. The Packet Type and Fragment Type are set to 0. The Configuration +that will be used to decode the packets is the one indexed by the ident value. + + +
+
+ + + +
+ + +Unlike other mainstream audio codecs, Vorbis has no statically +configured probability model. Instead, it packs all entropy decoding +configuration, Vector Quantization and Huffman models into a data block +that must be transmitted to the decoder with the compressed data. +A decoder also requires information detailing the number of audio +channels, bitrates, and similar information to configure itself for a +particular compressed data stream. These two blocks of information are +often referred to collectively as the "codebooks" for a Vorbis stream, +and are included as special "header" packets at the start +of the compressed data. In addition, +the Vorbis I specification +requires the presence of a comment header packet that gives simple +metadata about the stream, but this information is not required for +decoding the frame sequence. + + + +Thus, these two codebook header packets must be received by the decoder before +any audio data can be interpreted. These requirements pose problems in RTP, +which is often used over unreliable transports. + + + +Since this information must be transmitted reliably and, as the RTP +stream may change certain configuration data mid-session, there are +different methods for delivering this configuration data to a +client, both in-band and out-of-band, which are detailed below. +In order to set up an initial state for the client application, the +configuration MUST be conveyed via the signalling channel used to set up +the session. One example of such signalling is +SDP with the +Offer/Answer Model. +Changes to the configuration MAY be communicated via a re-invite, +conveying a new SDP, or sent in-band in the RTP channel. +Implementations MUST support an in-band delivery of updated codebooks, +and SHOULD support out-of-band codebook update using a new SDP file. +The changes may be due to different codebooks as well as +different bitrates of the RTP stream. + + +For non-chained streams, the recommended Configuration delivery +method is inside the Packed +Configuration in the SDP as explained the Mapping Media Type +Parameters into SDP. + + + +The 24-bit Ident field is used to map which Configuration will be used to +decode a packet. When the Ident field changes, it indicates that a change in +the stream has taken place. The client application MUST have in advance the +correct configuration. If the client detects a change in the Ident value and +does not have this information, it MUST NOT decode the raw associated Vorbis +data until it fetches the correct Configuration. + + +
+ + +The Packed Configuration Payload is +sent in-band with the packet type bits set to match the Vorbis Data Type. +Clients MUST be capable of dealing with fragmentation and periodic +re-transmission of the configuration headers. +The RTP timestamp value MUST reflect the transmission time of the first data packet for which this configuration applies. + + +
+ + +A Vorbis Packed Configuration is indicated with the Vorbis Data Type field set +to 1. Of the three headers defined in the +Vorbis I specification, the +Identification and the Setup MUST be packed as they are, while the Comment +header MAY be replaced with a dummy one. + +The packed configuration stores Xiph codec +configurations in a generic way: the first field stores the number of the following packets +minus one (count field), the next ones represent the size of the headers +(length fields), and the headers immediately follow the list of length fields. +The size of the last header is implicit. + +The count and the length fields are encoded using the following logic: the data +is in network byte order; every byte has the most significant bit used +as a flag, and the following 7 bits are used to store the value. +The first 7 most significant bits are stored in the first byte. +If there are remaining bits, the flag bit is set to 1 and the subsequent +7 bits are stored in the following byte. +If there are remaining bits, set the flag to 1 and the same procedure is +repeated. +The ending byte has the flag bit set to 0. To decode, simply iterate +over the bytes until the flag bit is set to 0. For every byte, the data +is added to the accumulated value multiplied by 128. + +The headers are packed in the same order as they are present in Ogg : +Identification, Comment, Setup. + + +The 2 byte length tag defines the length of the packed headers as the sum of +the Configuration, Comment, and Setup lengths. + +
+ +
+ +The Ident field is set with the value that will be used by the Raw Payload +Packets to address this Configuration. The Fragment type is set to 0 because the +packet bears the full Packed configuration. The number of the packet is set to 1. +
+
+ +
+ + +The following packet definition MUST be used when Configuration is inside +in the SDP. + + +
+ + +As mentioned above, the RECOMMENDED delivery vector for Vorbis configuration +data is via a retrieval method that can be performed using a reliable transport +protocol. As the RTP headers are not required for this method of delivery, the +structure of the configuration data is slightly different. The packed header +starts with a 32-bit (network-byte ordered) count field, which details +the number of packed headers that are contained in the bundle. The +following shows the Packed header +payload for each chained Vorbis stream. + + +
+ +
+ +
+ +
+ +The key difference between the in-band format and this one is that there is no +need for the payload header octet. In this figure, the comment has a size bigger +than 127 bytes. + +
+ +
+ +
+ + +Unlike the loss of raw Vorbis payload data, loss of a configuration header +leads to a situation where it will not be possible to successfully decode the +stream. Implementations MAY try to recover from an error by requesting again the +missing Configuration or, if the delivery method is in-band, by buffering the +payloads waiting for the Configuration needed to decode them. +The baseline reaction SHOULD either be reset or end the RTP session. + + +
+ +
+ +
+ + +Vorbis Data Type flag set to 2 indicates that the packet contains +the comment metadata, such as artist name, track title, and so on. These +metadata messages are not intended to be fully descriptive but rather to offer basic +track/song information. Clients MAY ignore it completely. The details on the +format of the comments can be found in the Vorbis I Specification. + +
+ +
+ + +The 2-byte length field is necessary since this packet could be fragmented. + + +
+
+ + +Each RTP payload contains either one Vorbis packet fragment or an integer +number of complete Vorbis packets (up to a maximum of 15 packets, since the +number of packets is defined by a 4-bit value). + + + +Any Vorbis data packet that is less than path MTU SHOULD be bundled in the RTP +payload with as many Vorbis packets as will fit, up to a maximum of 15, except +when such bundling would exceed an application's desired transmission latency. +Path MTU is detailed in and . + + + +A fragmented packet has a zero in the last four bits of the payload header. +The first fragment will set the Fragment type to 1. Each fragment after the +first will set the Fragment type to 2 in the payload header. The consecutive +fragments MUST be sent without any other payload being sent between the first +and the last fragment. The RTP payload containing the last fragment of the +Vorbis packet will have the Fragment type set to 3. To maintain the correct +sequence for fragmented packet reception, the timestamp field of fragmented +packets MUST be the same as the first packet sent, with the sequence number +incremented as normal for the subsequent RTP payloads; this will affect the +RTCP jitter measurement. The length field shows the fragment length. + + +
+ + +Here is an example of a fragmented Vorbis packet split over three RTP payloads. +Each of them contains the standard RTP headers as well as the 4-octet Vorbis +headers. + + +
+ +
+ + +In this payload, the initial sequence number is 1000 and the timestamp is 12345. The Fragment type is set to 1, the number of packets field is set to 0, and as +the payload is raw Vorbis data, the VDT field is set to 0. + + +
+ +
+ + +The Fragment type field is set to 2, and the number of packets field is set to 0. +For large Vorbis fragments, there can be several of these types of payloads. +The maximum packet size SHOULD be no greater than the path MTU, +including all RTP and payload headers. The sequence number has been incremented +by one, but the timestamp field remains the same as the initial payload. + + +
+ +
+ + +This is the last Vorbis fragment payload. The Fragment type is set to 3 and the +packet count remains set to 0. As in the previous payloads, the timestamp remains +set to the first payload timestamp in the sequence and the sequence number has +been incremented. + +
+ +
+ + +As there is no error correction within the Vorbis stream, packet loss will +result in a loss of signal. Packet loss is more of an issue for fragmented +Vorbis packets as the client will have to cope with the handling of the +Fragment Type. In case of loss of fragments, the client MUST discard all the +remaining Vorbis fragments and decode the incomplete packet. If we use the +fragmented Vorbis packet example above and the first RTP payload is lost, the +client MUST detect that the next RTP payload has the packet count field set +to 0 and the Fragment type 2 and MUST drop it. +The next RTP payload, which is the final fragmented packet, MUST be dropped +in the same manner. +If the missing RTP payload is the last, the two fragments received will be +kept and the incomplete Vorbis packet decoded. + + + +Loss of any of the Configuration fragment will result in the loss of the full +Configuration packet with the result detailed in the Loss of Configuration Headers section. + + +
+
+
+ + + audio + + vorbis + + + + + indicates the RTP timestamp clock rate as described in RTP Profile for Audio and Video Conferences with Minimal Control. + + + indicates the number of audio channels as described in RTP Profile for Audio and Video Conferences with Minimal Control. + + + + the base64 representation of the Packed Headers. + + + + + + +This media type is framed and contains binary data. + + + + +See Section 10 of RFC 5215. + + + +None + + + +RFC 5215 + +Ogg Vorbis I specification: Codec setup and packet decode. Available from the Xiph website, http://xiph.org/ + + + + + +Audio streaming and conferencing tools + + + +None + + + +Luca Barbato: <lu_zero@gentoo.org>
+ +IETF Audio/Video Transport Working Group + +
+ + + +COMMON + + + +This media type depends on RTP framing, hence is only defined for transfer via RTP. + + +Luca Barbato + + +IETF AVT Working Group delegated from the IESG +
+ +
+ + +The following IANA considerations refers to the split configuration Packed Headers used within RFC 5215. + + + + audio + + vorbis-config + + + +None + + + + +None + + + + +This media type contains binary data. + + + + +See Section 10 of RFC 5215. + + + + +None + + + + +RFC 5215 + + + + +Vorbis encoded audio, configuration data + + + + +None + + + + +Luca Barbato: <lu_zero@gentoo.org> + +IETF Audio/Video Transport Working Group + + + +COMMON + + + + +This media type doesn't depend on the transport. + + + + +Luca Barbato + + + +IETF AVT Working Group delegated from the IESG + + +
+ +
+ +
+ +The following paragraphs define the mapping of the parameters described in the IANA considerations section and their usage in the Offer/Answer Model. In order to be forward compatible, the implementation MUST ignore unknown parameters. + + +
+ + +The information carried in the Media Type specification has a +specific mapping to fields in the Session Description +Protocol (SDP), which is commonly used to describe RTP sessions. +When SDP is used to specify sessions, the mapping are as follows: + + + + +The type name ("audio") goes in SDP "m=" as the media name. + +The subtype name ("vorbis") goes in SDP "a=rtpmap" as the encoding name. + +The parameter "rate" also goes in "a=rtpmap" as the clock rate. + +The parameter "channels" also goes in "a=rtpmap" as the channel count. + +The mandated parameters "configuration" MUST be included in the SDP +"a=fmtp" attribute. + + + + +If the stream comprises chained Vorbis files and all of them are known in +advance, the Configuration Packet for each file SHOULD be passed to the client +using the configuration attribute. + + + +The port value is specified by the server application bound to the address +specified in the c= line. The channel count value specified in the rtpmap +attribute SHOULD match the current Vorbis stream or should be considered the maximum +number of channels to be expected. The timestamp clock rate MUST be a multiple +of the sample rate; a different payload number MUST be used if the clock rate +changes. The Configuration payload delivers the exact information, thus the +SDP information SHOULD be considered a hint. +An example is found below. + + +
+The following example shows a basic SDP single stream. The first +configuration packet is inside the SDP; other configurations could be +fetched at any time from the URIs provided. The following +base64 configuration string is folded in this +example due to RFC line length limitations. + + + +c=IN IP4 192.0.2.1 +m=audio RTP/AVP 98 +a=rtpmap:98 vorbis/44100/2 +a=fmtp:98 configuration=AAAAAZ2f4g9NAh4aAXZvcmJpcwA...; + +
+ + +Note that the payload format (encoding) names are commonly shown in uppercase. +Media Type subtypes are commonly shown in lowercase. These names are +case-insensitive in both places. Similarly, parameter names are +case-insensitive both in Media Type types and in the default mapping to the SDP +a=fmtp attribute. The a=fmtp line is a single line, even if it is shown as multiple lines in this document for clarity. + + +
+ +
+ + +There are no negotiable parameters. All of them are declarative. + + +
+ +
+
+ +The general congestion control considerations for transporting RTP +data apply to Vorbis audio over RTP as well. See the RTP specification + and any applicable RTP profile (e.g., ). +Audio data can be encoded using a range of different bit rates, so +it is possible to adapt network bandwidth by adjusting the encoder +bit rate in real time or by having multiple copies of content encoded + at different bit rates. + +
+
+ + +The following example shows a common usage pattern that MAY be applied in +such a situation. The main scope of this section is to explain better usage +of the transmission vectors. + + +
+ +This is one of the most common situations: there is one single server streaming +content in multicast, and the clients may start a session at a random time. The +content itself could be a mix of a live stream (as the webjockey's voice) +and stored streams (as the music she plays). + +In this situation, we don't know in advance how many codebooks we will use. +The clients can join anytime and users expect to start listening to the content +in a short time. + +Upon joining, the client will receive the current Configuration necessary to +decode the current stream inside the SDP so that the decoding will start +immediately after. + +When the streamed content changes, the new Configuration is sent in-band +before the actual stream, and the Configuration that has to be sent inside +the SDP is updated. Since the in-band method is unreliable, an out-of-band +fallback is provided. + +The client may choose to fetch the Configuration from the alternate source +as soon as it discovers a Configuration packet got lost in-band, or use +selective retransmission if the server supports +this feature. + +A server-side optimization would be to keep a hash list of the +Configurations per session, which avoids packing all of them and sending the same +Configuration with different Ident tags. + +A client-side optimization would be to keep a tag list of the Configurations +per session and not process configuration packets that are already known. + +
+
+ +
+ +RTP packets using this payload format are subject to the security +considerations discussed in the +RTP specification, the +base64 specification, and the +URI Generic syntax specification. +Among other considerations, this implies that the confidentiality of the +media stream is achieved by using encryption. Because the data compression used +with this payload format is applied end-to-end, encryption may be performed on +the compressed data. + + +
+
+ The authors agree to grant third parties the irrevocable right to copy, + use, and distribute the work, with or without modification, in any medium, + without royalty, provided that, unless separate permission is granted, + redistributed modified works do not contain misleading author, version, + name of work, or endorsement information. +
+
+ + +This document is a continuation of the following documents: + +Moffitt, J., "RTP Payload Format for Vorbis Encoded Audio", February 2001. + +Kerr, R., "RTP Payload Format for Vorbis Encoded Audio", December 2004. + +The Media Type declaration is a continuation of the following +document: +Short, B., "The audio/rtp-vorbis MIME Type", January 2008. + + + +Thanks to the AVT, Vorbis Communities / Xiph.Org Foundation including Steve Casner, +Aaron Colwell, Ross Finlayson, Fluendo, Ramon Garcia, Pascal Hennequin, Ralph +Giles, Tor-Einar Jarnbjo, Colin Law, John Lazzaro, Jack Moffitt, Christopher +Montgomery, Colin Perkins, Barry Short, Mike Smith, Phil Kerr, Michael Sparks, +Magnus Westerlund, David Barrett, Silvia Pfeiffer, Stefan Ehmann, Gianni Ceccarelli and Alessandro Salvatori. Thanks to the LScube Group, in particular Federico +Ridolfo, Francesco Varano, Giampaolo Mancini, Dario Gallucci, and Juan Carlos De Martin. + + +
+ +
+ + + + + + + + + + + + + + + + + +Ogg Vorbis I specification: Codec setup and packet decode. Available from the Xiph website, http://xiph.org/vorbis/doc/Vorbis_I_spec.html + + + + + + + + + + + +libvorbis: Available from the dedicated website, http://vorbis.com/ + + + + + + + + +
diff --git a/Dependencies/libvorbis/doc/squarepolar.png b/Dependencies/libvorbis/doc/squarepolar.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9b03d33b3945cf2b644a49301ac0232a8cf3d1 GIT binary patch literal 8406 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 A4*&oF literal 0 HcmV?d00001 diff --git a/libvorbis-1.0.1/doc/stereo.html b/Dependencies/libvorbis/doc/stereo.html similarity index 52% rename from libvorbis-1.0.1/doc/stereo.html rename to Dependencies/libvorbis/doc/stereo.html index 3a5c1e1..ef48f67 100644 --- a/libvorbis-1.0.1/doc/stereo.html +++ b/Dependencies/libvorbis/doc/stereo.html @@ -1,38 +1,103 @@ -xiph.org: Ogg Vorbis documentation - -

- - -

-Ogg Vorbis stereo-specific channel coupling discussion -

- -Last update to this document: July 16, 2002
- -

Abstract

The Vorbis audio CODEC provides a channel coupling + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis stereo-specific channel coupling discussion

+ +

Abstract

+ +

The Vorbis audio CODEC provides a channel coupling mechanisms designed to reduce effective bitrate by both eliminating interchannel redundancy and eliminating stereo image information labeled inaudible or undesirable according to spatial psychoacoustic -models. This document describes both the mechanical coupling +models. This document describes both the mechanical coupling mechanisms available within the Vorbis specification, as well as the specific stereo coupling models used by the reference -libvorbis codec provided by xiph.org. +libvorbis codec provided by xiph.org.

Mechanisms

-In encoder release beta 4 and earlier, Vorbis supported multiple +

In encoder release beta 4 and earlier, Vorbis supported multiple channel encoding, but the channels were encoded entirely separately with no cross-analysis or redundancy elimination between channels. This multichannel strategy is very similar to the mp3's dual stereo mode and Vorbis uses the same name for its analogous -uncoupled multichannel modes.

+uncoupled multichannel modes.

-However, the Vorbis spec provides for, and Vorbis release 1.0 rc1 and -later implement a coupled channel strategy. Vorbis has two specific +

However, the Vorbis spec provides for, and Vorbis release 1.0 rc1 and +later implement a coupled channel strategy. Vorbis has two specific mechanisms that may be used alone or in conjunction to implement -channel coupling. The first is channel interleaving via +channel coupling. The first is channel interleaving via residue backend type 2, and the second is square polar -mapping. These two general mechanisms are particularly well +mapping. These two general mechanisms are particularly well suited to coupling due to the structure of Vorbis encoding, as we'll explore below, and using both we can implement both totally lossless stereo image coupling [bit-for-bit decode-identical @@ -42,107 +107,110 @@ order to enhance bitrate. The exact coupling implementation is generalized to allow the encoder a great deal of flexibility in implementation of a stereo or surround model without requiring any significant complexity increase over the combinatorially simpler -mid/side joint stereo of mp3 and other current audio codecs.

+mid/side joint stereo of mp3 and other current audio codecs.

-A particular Vorbis bitstream may apply channel coupling directly to +

A particular Vorbis bitstream may apply channel coupling directly to more than a pair of channels; polar mapping is hierarchical such that polar coupling may be extrapolated to an arbitrary number of channels and is not restricted to only stereo, quadraphonics, ambisonics or 5.1 -surround. However, the scope of this document restricts itself to the -stereo coupling case.

+surround. However, the scope of this document restricts itself to the +stereo coupling case.

+

Square Polar Mapping

maximal correlation

-Recall that the basic structure of a a Vorbis I stream first generates +

Recall that the basic structure of a a Vorbis I stream first generates from input audio a spectral 'floor' function that serves as an -MDCT-domain whitening filter. This floor is meant to represent the +MDCT-domain whitening filter. This floor is meant to represent the rough envelope of the frequency spectrum, using whatever metric the -encoder cares to define. This floor is subtracted from the log +encoder cares to define. This floor is subtracted from the log frequency spectrum, effectively normalizing the spectrum by frequency. -Each input channel is associated with a unique floor function.

+Each input channel is associated with a unique floor function.

-The basic idea behind any stereo coupling is that the left and right -channels usually correlate. This correlation is even stronger if one +

The basic idea behind any stereo coupling is that the left and right +channels usually correlate. This correlation is even stronger if one first accounts for energy differences in any given frequency band across left and right; think for example of individual instruments mixed into different portions of the stereo image, or a stereo -recording with a dominant feature not perfectly in the center. The +recording with a dominant feature not perfectly in the center. The floor functions, each specific to a channel, provide the perfect means of normalizing left and right energies across the spectrum to maximize correlation before coupling. This feature of the Vorbis format is not -a convenient accident.

+a convenient accident.

-Because we strive to maximally correlate the left and right channels +

Because we strive to maximally correlate the left and right channels and generally succeed in doing so, left and right residue is typically -nearly identical. We could use channel interleaving (discussed below) +nearly identical. We could use channel interleaving (discussed below) alone to efficiently remove the redundancy between the left and right channels as a side effect of entropy encoding, but a polar representation gives benefits when left/right correlation is -strong.

+strong.

point and diffuse imaging

-The first advantage of a polar representation is that it effectively +

The first advantage of a polar representation is that it effectively separates the spatial audio information into a 'point image' (magnitude) at a given frequency and located somewhere in the sound field, and a 'diffuse image' (angle) that fills a large amount of -space simultaneously. Even if we preserve only the magnitude (point) +space simultaneously. Even if we preserve only the magnitude (point) data, a detailed and carefully chosen floor function in each channel provides us with a free, fine-grained, frequency relative intensity -stereo*. Angle information represents diffuse sound fields, such as -reverberation that fills the entire space simultaneously.

+stereo*. Angle information represents diffuse sound fields, such as +reverberation that fills the entire space simultaneously.

-*Because the Vorbis model supports a number of different possible +

*Because the Vorbis model supports a number of different possible stereo models and these models may be mixed, we do not use the term 'intensity stereo' talking about Vorbis; instead we use the terms -'point stereo', 'phase stereo' and subcategories of each.

+'point stereo', 'phase stereo' and subcategories of each.

-The majority of a stereo image is representable by polar magnitude +

The majority of a stereo image is representable by polar magnitude alone, as strong sounds tend to be produced at near-point sources; even non-diffuse, fast, sharp echoes track very accurately using magnitude representation almost alone (for those experimenting with Vorbis tuning, this strategy works much better with the precise, piecewise control of floor 1; the continuous approximation of floor 0 -results in unstable imaging). Reverberation and diffuse sounds tend +results in unstable imaging). Reverberation and diffuse sounds tend to contain less energy and be psychoacoustically dominated by the -point sources embedded in them. Thus, we again tend to concentrate +point sources embedded in them. Thus, we again tend to concentrate more represented energy into a predictably smaller number of numbers. Separating representation of point and diffuse imaging also allows us -to model and manipulate point and diffuse qualities separately.

+to model and manipulate point and diffuse qualities separately.

+ +

controlling bit leakage and symbol crosstalk

-

controlling bit leakage and symbol crosstalk

Because polar +

Because polar representation concentrates represented energy into fewer large values, we reduce bit 'leakage' during cascading (multistage VQ -encoding) as a secondary benefit. A single large, monolithic VQ +encoding) as a secondary benefit. A single large, monolithic VQ codebook is more efficient than a cascaded book due to entropy 'crosstalk' among symbols between different stages of a multistage cascade. Polar representation is a way of further concentrating entropy into predictable locations so that codebook design can take steps to -improve multistage codebook efficiency. It also allows us to cascade -various elements of the stereo image independently.

+improve multistage codebook efficiency. It also allows us to cascade +various elements of the stereo image independently.

eliminating trigonometry and rounding

-Rounding and computational complexity are potential problems with a +

Rounding and computational complexity are potential problems with a polar representation. As our encoding process involves quantization, mixing a polar representation and quantization makes it potentially impossible, depending on implementation, to construct a coupled stereo mechanism that results in bit-identical decompressed output compared -to an uncoupled encoding should the encoder desire it.

+to an uncoupled encoding should the encoder desire it.

-Vorbis uses a mapping that preserves the most useful qualities of +

Vorbis uses a mapping that preserves the most useful qualities of polar representation, relies only on addition/subtraction (during decode; high quality encoding still requires some trig), and makes it trivial before or after quantization to represent an angle/magnitude through a one-to-one mapping from possible left/right value -permutations. We do this by basing our polar representation on the -unit square rather than the unit-circle.

+permutations. We do this by basing our polar representation on the +unit square rather than the unit-circle.

-Given a magnitude and angle, we recover left and right using the +

Given a magnitude and angle, we recover left and right using the following function (note that A/B may be left/right or right/left -depending on the coupling definition used by the encoder):

+depending on the coupling definition used by the encoder):

       if(magnitude>0)
@@ -164,18 +232,17 @@ depending on the coupling definition used by the encoder):

}

-The function is antisymmetric for positive and negative magnitudes in -order to eliminate a redundant value when quantizing. For example, if +

The function is antisymmetric for positive and negative magnitudes in +order to eliminate a redundant value when quantizing. For example, if we're quantizing to integer values, we can visualize a magnitude of 5 -and an angle of -2 as follows:

+and an angle of -2 as follows:

- +

square polar

-

-This representation loses or replicates no values; if the range of A +

This representation loses or replicates no values; if the range of A and B are integral -5 through 5, the number of possible Cartesian -permutations is 121. Represented in square polar notation, the -possible values are: +permutations is 121. Represented in square polar notation, the +possible values are:

  0, 0
@@ -188,181 +255,162 @@ possible values are:
 
  2,-4   2,-3   ... following the pattern ...
 
- ...    5, 1   5, 2   5, 3   5, 4   5, 5   5, 6   5, 7   5, 8   5, 9
+ ...   5, 1   5, 2   5, 3   5, 4   5, 5   5, 6   5, 7   5, 8   5, 9
 
 
-...for a grand total of 121 possible values, the same number as in +

...for a grand total of 121 possible values, the same number as in Cartesian representation (note that, for example, 5,-10 is the same as -5,10, so there's no reason to represent both. 2,10 cannot happen, and there's no reason to account for it.) -It's also obvious that this mapping is exactly reversible.

+It's also obvious that this mapping is exactly reversible.

Channel interleaving

-We can remap and A/B vector using polar mapping into a magnitude/angle +

We can remap and A/B vector using polar mapping into a magnitude/angle vector, and it's clear that, in general, this concentrates energy in the magnitude vector and reduces the amount of information to encode -in the angle vector. Encoding these vectors independently with +in the angle vector. Encoding these vectors independently with residue backend #0 or residue backend #1 will result in bitrate -savings. However, there are still implicit correlations between the -magnitude and angle vectors. The most obvious is that the amplitude -of the angle is bounded by its corresponding magnitude value.

+savings. However, there are still implicit correlations between the +magnitude and angle vectors. The most obvious is that the amplitude +of the angle is bounded by its corresponding magnitude value.

-Entropy coding the results, then, further benefits from the entropy -model being able to compress magnitude and angle simultaneously. For +

Entropy coding the results, then, further benefits from the entropy +model being able to compress magnitude and angle simultaneously. For this reason, Vorbis implements residue backend #2 which pre-interleaves a number of input vectors (in the stereo case, two, A and B) into a single output vector (with the elements in the order of -A_0, B_0, A_1, B_1, A_2 ... A_n-1, B_n-1) before entropy encoding. Thus +A_0, B_0, A_1, B_1, A_2 ... A_n-1, B_n-1) before entropy encoding. Thus each vector to be coded by the vector quantization backend consists of -matching magnitude and angle values.

+matching magnitude and angle values.

-The astute reader, at this point, will notice that in the theoretical +

The astute reader, at this point, will notice that in the theoretical case in which we can use monolithic codebooks of arbitrarily large size, we can directly interleave and encode left and right without polar mapping; in fact, the polar mapping does not appear to lend any -benefit whatsoever to the efficiency of the entropy coding. In fact, +benefit whatsoever to the efficiency of the entropy coding. In fact, it is perfectly possible and reasonable to build a Vorbis encoder that dispenses with polar mapping entirely and merely interleaves the -channel. Libvorbis based encoders may configure such an encoding and -it will work as intended.

+channel. Libvorbis based encoders may configure such an encoding and +it will work as intended.

-However, when we leave the ideal/theoretical domain, we notice that +

However, when we leave the ideal/theoretical domain, we notice that polar mapping does give additional practical benefits, as discussed in -the above section on polar mapping and summarized again here:

+the above section on polar mapping and summarized again here:

+
  • Polar mapping aids in controlling entropy 'leakage' between stages -of a cascaded codebook.
  • Polar mapping separates the stereo image +of a cascaded codebook.
  • +
  • Polar mapping separates the stereo image into point and diffuse components which may be analyzed and handled -differently. +differently.

Stereo Models

Dual Stereo

-Dual stereo refers to stereo encoding where the channels are entirely +

Dual stereo refers to stereo encoding where the channels are entirely separate; they are analyzed and encoded as entirely distinct entities. -This terminology is familiar from mp3.

+This terminology is familiar from mp3.

Lossless Stereo

-Using polar mapping and/or channel interleaving, it's possible to +

Using polar mapping and/or channel interleaving, it's possible to couple Vorbis channels losslessly, that is, construct a stereo coupling encoding that both saves space but also decodes -bit-identically to dual stereo. OggEnc 1.0 and later uses this -mode in all high-bitrate encoding.

+bit-identically to dual stereo. OggEnc 1.0 and later uses this +mode in all high-bitrate encoding.

-Overall, this stereo mode is overkill; however, it offers a safe +

Overall, this stereo mode is overkill; however, it offers a safe alternative to users concerned about the slightest possible -degradation to the stereo image or archival quality audio.

+degradation to the stereo image or archival quality audio.

Phase Stereo

-Phase stereo is the least aggressive means of gracefully dropping -resolution from the stereo image; it affects only diffuse imaging.

+

Phase stereo is the least aggressive means of gracefully dropping +resolution from the stereo image; it affects only diffuse imaging.

-It's often quoted that the human ear is deaf to signal phase above +

It's often quoted that the human ear is deaf to signal phase above about 4kHz; this is nearly true and a passable rule of thumb, but it can be demonstrated that even an average user can tell the difference -between high frequency in-phase and out-of-phase noise. Obviously -then, the statement is not entirely true. However, it's also the case +between high frequency in-phase and out-of-phase noise. Obviously +then, the statement is not entirely true. However, it's also the case that one must resort to nearly such an extreme demonstration before -finding the counterexample.

+finding the counterexample.

-'Phase stereo' is simply a more aggressive quantization of the polar +

'Phase stereo' is simply a more aggressive quantization of the polar angle vector; above 4kHz it's generally quite safe to quantize noise and noisy elements to only a handful of allowed phases, or to thin the -phase with respect to the magnitude. The phases of high amplitude +phase with respect to the magnitude. The phases of high amplitude pure tones may or may not be preserved more carefully (they are relatively rare and L/R tend to be in phase, so there is generally -little reason not to spend a few more bits on them)

+little reason not to spend a few more bits on them)

example: eight phase stereo

-Vorbis may implement phase stereo coupling by preserving the entirety +

Vorbis may implement phase stereo coupling by preserving the entirety of the magnitude vector (essential to fine amplitude and energy resolution overall) and quantizing the angle vector to one of only four possible values. Given that the magnitude vector may be positive or negative, this results in left and right phase having eight -possible permutation, thus 'eight phase stereo':

+possible permutation, thus 'eight phase stereo':

-

+

eight phase

-Left and right may be in phase (positive or negative), the most common -case by far, or out of phase by 90 or 180 degrees.

+

Left and right may be in phase (positive or negative), the most common +case by far, or out of phase by 90 or 180 degrees.

example: four phase stereo

-Similarly, four phase stereo takes the quantization one step further; -it allows only in-phase and 180 degree out-out-phase signals:

+

Similarly, four phase stereo takes the quantization one step further; +it allows only in-phase and 180 degree out-out-phase signals:

-

+

four phase

example: point stereo

-Point stereo eliminates the possibility of out-of-phase signal -entirely. Any diffuse quality to a sound source tends to collapse -inward to a point somewhere within the stereo image. A practical +

Point stereo eliminates the possibility of out-of-phase signal +entirely. Any diffuse quality to a sound source tends to collapse +inward to a point somewhere within the stereo image. A practical example would be balanced reverberations within a large, live space; normally the sound is diffuse and soft, giving a sonic impression of -volume. In point-stereo, the reverberations would still exist, but +volume. In point-stereo, the reverberations would still exist, but sound fairly firmly centered within the image (assuming the reverberation was centered overall; if the reverberation is stronger to the left, then the point of localization in point stereo would be -to the left). This effect is most noticeable at low and mid +to the left). This effect is most noticeable at low and mid frequencies and using headphones (which grant perfect stereo separation). Point stereo is is a graceful but generally easy to detect degradation to the sound quality and is thus used in frequency -ranges where it is least noticeable.

+ranges where it is least noticeable.

Mixed Stereo

-Mixed stereo is the simultaneous use of more than one of the above +

Mixed stereo is the simultaneous use of more than one of the above stereo encoding models, generally using more aggressive modes in -higher frequencies, lower amplitudes or 'nearly' in-phase sound.

+higher frequencies, lower amplitudes or 'nearly' in-phase sound.

-It is also the case that near-DC frequencies should be encoded using -lossless coupling to avoid frame blocking artifacts.

+

It is also the case that near-DC frequencies should be encoded using +lossless coupling to avoid frame blocking artifacts.

Vorbis Stereo Modes

-Vorbis, as of 1.0, uses lossless stereo and a number of mixed modes -constructed out of lossless and point stereo. Phase stereo was used -in the rc2 encoder, but is not currently used for simplicity's sake. It -will likely be re-added to the stereo model in the future. - -

-


- - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

- -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

- -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

- -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

+

Vorbis, as of 1.0, uses lossless stereo and a number of mixed modes +constructed out of lossless and point stereo. Phase stereo was used +in the rc2 encoder, but is not currently used for simplicity's sake. It +will likely be re-added to the stereo model in the future.

+ + + + diff --git a/Dependencies/libvorbis/doc/stream.png b/Dependencies/libvorbis/doc/stream.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d2f368507dff661c6422193eebd53cf3722544 GIT binary patch literal 2171 zcmV->2!!{EP)C{-b9<5*qCO+t=0HF7K(ITj5a3r$ZSLPQ!lIXR%9pglc3 zot>TF;NWFtWzf*jRaI4ZczD3Tz%el~mzS4=gM&v$M>aM#V`F2Hk&$U>Y4GsyQBhHF zaB!TQoV2vGfPjFis;V_LHEL>VTwGjvd3jJ!P+?(V`Tu36szXy%A>HFy!pBaEjyP{} zEjKw9932Z~b^k+7sv##;S!m-UUBsi~=r zjg9(3+zbE!2KY%tK~#8N?7#sH0002OAp57b#|LWx007|Z&_NLZ00c!rUJ=6m{uvz1 zXyC*~SZBfO+(>Sa4T^ocZBE+=0s!pkf)1S|5E4QHEM`n1p_z#&SWeL1iByC~RBaDu6mFEg94rRAqNGyN{o&04V&h%LTOtRos(Hdf{P)mk0n_$mO^ z9;@keTJ3X;*wO(&1B0B*ie$mSfUu$rKr?2V`P<^BzZ zCUBg%;WQc=9$dj52}%bROR(YZCZ*!R64+-!x!~Y@4`+WfkB5`PJ^|J6t0yO?egoqP zG#e);)w=JWOhI)!t;?%7oi4^Jc-y_aY@K&Hm-B{jTM$3V|ykk9}WLdxh2)R~mW z!L%$SGysK=ER%yaoAMlRi$x?f0ELi>t^@g11XbFeloa25dmEHunIQRoVPr9oMwOHV(kv)*7%XHwNsx#MK*^xQMWAfRWmgkaw*30L{csf(2BpMhWpPjmOc_E@IZO)kfvQ2hdJ9x< z3aSU^AE4KtA5`UNd)pI%($xVdmZ3onYbY7Gbr&c%KLF(vR}>VII)YLlYX4;z6jv|JqlDT zHCg4w@Cf=0sO;usm6ydM=%H0!5Nmz|BQE)Bbv#d3d6%t=e(UP0)$3ni{P~yeuOEN= zeJ)T3hkK=s`FF|_87AB*S1c~vDbE!h3RIGj7Sf!uAcIMPl0c_G$zUlIs5FqE3JwKI zf=q%O8|WLfZi0F_PI?a?+<&J$$(FiPUO)4NJLTu^I~1tP&J(nGL2-r41SpnZ5;X|En*wE$pb9PtDoKxR$RrI*(UdT#%3)BK zS9Zz~pwfmR8zE4Gjiz9hNKn&vi9ii@qr{+2Yt4oT)SLEo7jApHo&oj8pP1_w0>vaI zi9m6g%OX&Y?brlZiGD)KoSu10BU3^~B_DG@sZ7iC6UwGQp(volbIYP=fMtcTdJxQQ zd8ZPO0L2ZHo1s4##!@VpB@)#1T_RA9<7|pS`8B^L0@Z1E+61_E04msl^8SaQOoL1b zdWux3nHm9#bI=w5rRo$`jeh#U@MYq=VGqg^bfOvLVNeoEVvI$Ak|Z%G+jf=>3R`LG z*1nerOnGmv&!a$LJA7SUq$p>SxG3kcxF~mQ@&S+}L1}3+TX9aM zyd+~(%2T*OCm2qqynKNIm0+nDIW~EN3O8oQJ`TPc_8{;iuA#KSPpF1c)nqVBB&g}T z#Gs;TsJdSh7v-HcRg`xx!=S3Kp8o5FL9N?T{-X$1sQt&j9TNZm01yyF|IjuKOk9T_ xzc_kcN?qc1;Ftga003c-{Zm_G2dn`A05~+hz}s%BE#CkD002ovPDHLkV1lo8y*mH^ literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/v-comment.html b/Dependencies/libvorbis/doc/v-comment.html new file mode 100644 index 0000000..a0390a0 --- /dev/null +++ b/Dependencies/libvorbis/doc/v-comment.html @@ -0,0 +1,285 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis I format specification: comment field and header specification

+ +

Overview

+ +

The Vorbis text comment header is the second (of three) header +packets that begin a Vorbis bitstream. It is meant for short, text +comments, not arbitrary metadata; arbitrary metadata belongs in a +separate logical bitstream (usually an XML stream type) that provides +greater structure and machine parseability.

+ +

The comment field is meant to be used much like someone jotting a +quick note on the bottom of a CDR. It should be a little information to +remember the disc by and explain it to others; a short, to-the-point +text note that need not only be a couple words, but isn't going to be +more than a short paragraph. The essentials, in other words, whatever +they turn out to be, eg:

+ +

+"Honest Bob and the Factory-to-Dealer-Incentives, _I'm Still Around_, +opening for Moxy Früvous, 1997" +

+ +

Comment encoding

+ +

Structure

+ +

The comment header logically is a list of eight-bit-clean vectors; the +number of vectors is bounded to 2^32-1 and the length of each vector +is limited to 2^32-1 bytes. The vector length is encoded; the vector +contents themselves are not null terminated. In addition to the vector +list, there is a single vector for vendor name (also 8 bit clean, +length encoded in 32 bits). For example, the 1.0 release of libvorbis +set the vendor string to "Xiph.Org libVorbis I 20020717".

+ +

The comment header is decoded as follows:

+ +
+  1) [vendor_length] = read an unsigned integer of 32 bits
+  2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets
+  3) [user_comment_list_length] = read an unsigned integer of 32 bits
+  4) iterate [user_comment_list_length] times {
+
+       5) [length] = read an unsigned integer of 32 bits
+       6) this iteration's user comment = read a UTF-8 vector as [length] octets
+
+     }
+
+  7) [framing_bit] = read a single bit as boolean
+  8) if ( [framing_bit] unset or end of packet ) then ERROR
+  9) done.
+
+ +

Content vector format

+ +

The comment vectors are structured similarly to a UNIX environment variable. +That is, comment fields consist of a field name and a corresponding value and +look like:

+ +
+comment[0]="ARTIST=me"; 
+comment[1]="TITLE=the sound of Vorbis"; 
+
+ +
    +
  • A case-insensitive field name that may consist of ASCII 0x20 through +0x7D, 0x3D ('=') excluded. ASCII 0x41 through 0x5A inclusive (A-Z) is +to be considered equivalent to ASCII 0x61 through 0x7A inclusive +(a-z).
  • +
  • The field name is immediately followed by ASCII 0x3D ('='); +this equals sign is used to terminate the field name.
  • +
  • 0x3D is followed by the 8 bit clean UTF-8 encoded value of the +field contents to the end of the field.
  • +
+ +

Field names

+ +

Below is a proposed, minimal list of standard field names with a +description of intended use. No single or group of field names is +mandatory; a comment header may contain one, all or none of the names +in this list.

+ +
+ +
TITLE
+
Track/Work name
+ +
VERSION
+
The version field may be used to differentiate multiple +versions of the same track title in a single collection. +(e.g. remix info)
+ +
ALBUM
+
The collection name to which this track belongs
+ +
TRACKNUMBER
+
The track number of this piece if part of a specific larger collection or album
+ +
ARTIST
+
The artist generally considered responsible for the work. In popular music +this is usually the performing band or singer. For classical music it would be +the composer. For an audio book it would be the author of the original text.
+ +
PERFORMER
+
The artist(s) who performed the work. In classical music this would be the +conductor, orchestra, soloists. In an audio book it would be the actor who did +the reading. In popular music this is typically the same as the ARTIST and +is omitted.
+ +
COPYRIGHT
+
Copyright attribution, e.g., '2001 Nobody's Band' or '1999 Jack Moffitt'
+ +
LICENSE
+
License information, eg, 'All Rights Reserved', 'Any +Use Permitted', a URL to a license such as a Creative Commons license +("www.creativecommons.org/blahblah/license.html") or the EFF Open +Audio License ('distributed under the terms of the Open Audio +License. see http://www.eff.org/IP/Open_licenses/eff_oal.html for +details'), etc.
+ +
ORGANIZATION
+
Name of the organization producing the track (i.e. +the 'record label')
+ +
DESCRIPTION
+
A short text description of the contents
+ +
GENRE
+
A short text indication of music genre
+ +
DATE
+
Date the track was recorded
+ +
LOCATION
+
Location where track was recorded
+ +
CONTACT
+
Contact information for the creators or distributors of the track. +This could be a URL, an email address, the physical address of +the producing label.
+ +
ISRC
+
ISRC number for the track; see the +ISRC intro page for more information on ISRC numbers.
+ +
+ +

Implications

+ +
    +
  • Field names should not be 'internationalized'; this is a +concession to simplicity not an attempt to exclude the majority of +the world that doesn't speak English. Field contents, +however, use the UTF-8 character encoding to allow easy representation +of any language.
  • +
  • We have the length of the entirety of the field and restrictions on +the field name so that the field name is bounded in a known way. Thus +we also have the length of the field contents.
  • +
  • Individual 'vendors' may use non-standard field names within +reason. The proper use of comment fields should be clear through +context at this point. Abuse will be discouraged.
  • +
  • There is no vendor-specific prefix to 'nonstandard' field names. +Vendors should make some effort to avoid arbitrarily polluting the +common namespace. We will generally collect the more useful tags +here to help with standardization.
  • +
  • Field names are not required to be unique (occur once) within a +comment header. As an example, assume a track was recorded by three +well know artists; the following is permissible, and encouraged: +
    +              ARTIST=Dizzy Gillespie 
    +              ARTIST=Sonny Rollins 
    +              ARTIST=Sonny Stitt 
    +
  • +
+ +

Encoding

+ +

The comment header comprises the entirety of the second bitstream +header packet. Unlike the first bitstream header packet, it is not +generally the only packet on the second page and may not be restricted +to within the second bitstream page. The length of the comment header +packet is (practically) unbounded. The comment header packet is not +optional; it must be present in the bitstream even if it is +effectively empty.

+ +

The comment header is encoded as follows (as per Ogg's standard +bitstream mapping which renders least-significant-bit of the word to be +coded into the least significant available bit of the current +bitstream octet first):

+ +
    +
  1. Vendor string length (32 bit unsigned quantity specifying number of octets)
  2. +
  3. Vendor string ([vendor string length] octets coded from beginning of string +to end of string, not null terminated)
  4. +
  5. Number of comment fields (32 bit unsigned quantity specifying number of fields)
  6. +
  7. Comment field 0 length (if [Number of comment fields]>0; 32 bit unsigned +quantity specifying number of octets)
  8. +
  9. Comment field 0 ([Comment field 0 length] octets coded from beginning of +string to end of string, not null terminated)
  10. +
  11. Comment field 1 length (if [Number of comment fields]>1...)...
  12. +
+ +

This is actually somewhat easier to describe in code; implementation of the above +can be found in vorbis/lib/info.c:_vorbis_pack_comment(),_vorbis_unpack_comment()

+ + + + + diff --git a/libvorbis-1.0.1/doc/vorbis-clip.txt b/Dependencies/libvorbis/doc/vorbis-clip.txt similarity index 100% rename from libvorbis-1.0.1/doc/vorbis-clip.txt rename to Dependencies/libvorbis/doc/vorbis-clip.txt diff --git a/libvorbis-1.0.1/doc/vorbis-errors.txt b/Dependencies/libvorbis/doc/vorbis-errors.txt similarity index 100% rename from libvorbis-1.0.1/doc/vorbis-errors.txt rename to Dependencies/libvorbis/doc/vorbis-errors.txt diff --git a/Dependencies/libvorbis/doc/vorbis-fidelity.html b/Dependencies/libvorbis/doc/vorbis-fidelity.html new file mode 100644 index 0000000..c62f355 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbis-fidelity.html @@ -0,0 +1,180 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis: Fidelity measurement and terminology discussion

+ +

Terminology discussed in this document is based on common terminology +associated with contemporary codecs such as MPEG I audio layer 3 +(mp3). However, some differences in terminology are useful in the +context of Vorbis as Vorbis functions somewhat differently than most +current formats. For clarity, then, we describe a common terminology +for discussion of Vorbis's and other formats' audio quality.

+ +

Subjective and Objective

+ +

Objective fidelity is a measure, based on a computable, +mechanical metric, of how carefully an output matches an input. For +example, a stereo amplifier may claim to introduce less that .01% +total harmonic distortion when amplifying an input signal; this claim +is easy to verify given proper equipment, and any number of testers are +likely to arrive at the same, exact results. One need not listen to +the equipment to make this measurement.

+ +

However, given two amplifiers with identical, verifiable objective +specifications, listeners may strongly prefer the sound quality of one +over the other. This is actually the case in the decades old debate +[some would say jihad] among audiophiles involving vacuum tube versus +solid state amplifiers. There are people who can tell the difference, +and strongly prefer one over the other despite seemingly identical, +measurable quality. This preference is subjective and +difficult to measure but nonetheless real.

+ +

Individual elements of subjective differences often can be qualified, +but overall subjective quality generally is not measurable. Different +observers are likely to disagree on the exact results of a subjective +test as each observer's perspective differs. When measuring +subjective qualities, the best one can hope for is average, empirical +results that show statistical significance across a group.

+ +

Perceptual codecs are most concerned with subjective, not objective, +quality. This is why evaluating a perceptual codec via distortion +measures and sonograms alone is useless; these objective measures may +provide insight into the quality or functioning of a codec, but cannot +answer the much squishier subjective question, "Does it sound +good?". The tube amplifier example is perhaps not the best as very few +people can hear, or care to hear, the minute differences between tubes +and transistors, whereas the subjective differences in perceptual +codecs tend to be quite large even when objective differences are +not.

+ +

Fidelity, Artifacts and Differences

+ +

Audio artifacts and loss of fidelity or more simply +put, audio differences are not the same thing.

+ +

A loss of fidelity implies differences between the perceived input and +output signal; it does not necessarily imply that the differences in +output are displeasing or that the output sounds poor (although this +is often the case). Tube amplifiers are not higher fidelity +than modern solid state and digital systems. They simply produce a +form of distortion and coloring that is either unnoticeable or actually +pleasing to many ears.

+ +

As compared to an original signal using hard metrics, all perceptual +codecs [ASPEC, ATRAC, MP3, WMA, AAC, TwinVQ, AC3 and Vorbis included] +lose objective fidelity in order to reduce bitrate. This is fact. The +idea is to lose fidelity in ways that cannot be perceived. However, +most current streaming applications demand bitrates lower than what +can be achieved by sacrificing only objective fidelity; this is also +fact, despite whatever various company press releases might claim. +Subjective fidelity eventually must suffer in one way or another.

+ +

The goal is to choose the best possible tradeoff such that the +fidelity loss is graceful and not obviously noticeable. Most listeners +of FM radio do not realize how much lower fidelity that medium is as +compared to compact discs or DAT. However, when compared directly to +source material, the difference is obvious. A cassette tape is lower +fidelity still, and yet the degradation, relatively speaking, is +graceful and generally easy not to notice. Compare this graceful loss +of quality to an average 44.1kHz stereo mp3 encoded at 80 or 96kbps. +The mp3 might actually be higher objective fidelity but subjectively +sounds much worse.

+ +

Thus, when a CODEC must sacrifice subjective quality in order +to satisfy a user's requirements, the result should be a +difference that is generally either difficult to notice +without comparison, or easy to ignore. An artifact, on the +other hand, is an element introduced into the output that is +immediately noticeable, obviously foreign, and undesired. The famous +'underwater' or 'twinkling' effect synonymous with low bitrate (or +poorly encoded) mp3 is an example of an artifact. This +working definition differs slightly from common usage, but the coined +distinction between differences and artifacts is useful for our +discussion.

+ +

The goal, when it is absolutely necessary to sacrifice subjective +fidelity, is obviously to strive for differences and not artifacts. +The vast majority of codecs today fail at this task miserably, +predictably, and regularly in one way or another. Avoiding such +failures when it is necessary to sacrifice subjective quality is a +fundamental design objective of Vorbis and that objective is reflected +in Vorbis's design and tuning.

+ + + + + diff --git a/Dependencies/libvorbis/doc/vorbis.html b/Dependencies/libvorbis/doc/vorbis.html new file mode 100644 index 0000000..66df2f4 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbis.html @@ -0,0 +1,234 @@ + + + + + +Ogg Vorbis Documentation + + + + + + + + + +

Ogg Vorbis encoding format documentation

+ +

waitAs of writing, not all the below document +links are live. They will be populated as we complete the documents.

+ +

Documents

+ + + + + + + + + +

Description

+ +

Ogg Vorbis is a general purpose compressed audio format +for high quality (44.1-48.0kHz, 16+ bit, polyphonic) audio and music +at moderate fixed and variable bitrates (40-80 kb/s/channel). This +places Vorbis in the same class as audio representations including +MPEG-1 audio layer 3, MPEG-4 audio (AAC and TwinVQ), and PAC.

+ +

Vorbis is the first of a planned family of Ogg multimedia coding +formats being developed as part of the Xiph.org Foundation's Ogg multimedia +project. See http://www.xiph.org/ +for more information.

+ +

Vorbis technical documents

+ +

A Vorbis encoder takes in overlapping (but contiguous) short-time +segments of audio data. The encoder analyzes the content of the audio +to determine an optimal compact representation; this phase of encoding +is known as analysis. For each short-time block of sound, +the encoder then packs an efficient representation of the signal, as +determined by analysis, into a raw packet much smaller than the size +required by the original signal; this phase is coding. +Lastly, in a streaming environment, the raw packets are then +structured into a continuous stream of octets; this last phase is +streaming. Note that the stream of octets is referred to both +as a 'byte-' and 'bit-'stream; the latter usage is acceptible as the +stream of octets is a physical representation of a true logical +bit-by-bit stream.

+ +

A Vorbis decoder performs a mirror image process of extracting the +original sequence of raw packets from an Ogg stream (stream +decomposition), reconstructing the signal representation from the +raw data in the packet (decoding) and them reconstituting an +audio signal from the decoded representation (synthesis).

+ +

The Programming with libvorbis +documents discuss use of the reference Vorbis codec library +(libvorbis) produced by the Xiph.org Foundation.

+ +

The data representations and algorithms necessary at each step to +encode and decode Ogg Vorbis bitstreams are described by the below +documents in sufficient detail to construct a complete Vorbis codec. +Note that at the time of writing, Vorbis is still in a 'Request For +Comments' stage of development; despite being in advanced stages of +development, input from the multimedia community is welcome.

+ +

Vorbis analysis and synthesis

+ +

Analysis begins by seperating an input audio stream into individual, +overlapping short-time segments of audio data. These segments are +then transformed into an alternate representation, seeking to +represent the original signal in a more efficient form that codes into +a smaller number of bytes. The analysis and transformation stage is +the most complex element of producing a Vorbis bitstream.

+ +

The corresponding synthesis step in the decoder is simpler; there is +no analysis to perform, merely a mechanical, deterministic +reconstruction of the original audio data from the transform-domain +representation.

+ +
    +
  • Vorbis packet structure: +Describes the basic analysis components necessary to produce Vorbis +packets and the structure of the packet itself.
  • +
  • Temporal envelope shaping and blocksize: +Use of temporal envelope shaping and variable blocksize to minimize +time-domain energy leakage during wide dynamic range and spectral energy +swings. Also discusses time-related principles of psychoacoustics.
  • +
  • Time domain segmentation and MDCT transform: +Division of time domain data into individual overlapped, windowed +short-time vectors and transformation using the MDCT
  • +
  • The resolution floor: Use of frequency +doamin psychoacoustics, and the MDCT-domain noise, masking and resolution +floors
  • +
  • MDCT-domain fine structure: Production, +quantization and massaging of MDCT-spectrum fine structure
  • +
+ +

Vorbis coding and decoding

+ +

Coding and decoding converts the transform-domain representation of +the original audio produced by analysis to and from a bitwise packed +raw data packet. Coding and decoding consist of two logically +orthogonal concepts, back-end coding and bitpacking.

+ +

Back-end coding uses a probability model to represent the raw numbers +of the audio representation in as few physical bits as possible; +familiar examples of back-end coding include Huffman coding and Vector +Quantization.

+ +

Bitpacking arranges the variable sized words of the back-end +coding into a vector of octets without wasting space. The octets +produced by coding a single short-time audio segment is one raw Vorbis +packet.

+ + + +

Vorbis streaming and stream decomposition

+ +

Vorbis packets contain the raw, bitwise-compressed representation of a +snippet of audio. These packets contain no structure and cannot be +strung together directly into a stream; for streamed transmission and +storage, Vorbis packets are encoded into an Ogg bitstream.

+ +
    +
  • Ogg bitstream overview: High-level +description of Ogg logical bitstreams, how logical bitstreams +(of mixed media types) can be combined into physical bitstreams, and +restrictions on logical-to-physical mapping. Note that this document is +not specific only to Ogg Vorbis.
  • +
  • Ogg logical bitstream and framing +spec: Low level, complete specification of Ogg logical +bitstream pages. Note that this document is not specific only to Ogg +Vorbis.
  • +
  • Vorbis bitstream mapping: +Specifically describes mapping Vorbis data into an +Ogg physical bitstream.
  • +
+ + + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/Makefile.am b/Dependencies/libvorbis/doc/vorbisenc/Makefile.am new file mode 100644 index 0000000..f7eb4a9 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/Makefile.am @@ -0,0 +1,11 @@ +## Process this file with automake to produce Makefile.in + +docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc + +doc_DATA = changes.html examples.html index.html ov_ectl_ratemanage2_arg.html \ + ov_ectl_ratemanage_arg.html overview.html reference.html style.css\ + vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html \ + vorbis_encode_setup_managed.html vorbis_encode_setup_vbr.html vorbis_info.html \ + vorbis_encode_init_vbr.html + +EXTRA_DIST = $(doc_DATA) diff --git a/Dependencies/libvorbis/doc/vorbisenc/Makefile.in b/Dependencies/libvorbis/doc/vorbisenc/Makefile.in new file mode 100644 index 0000000..54ed6fb --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/Makefile.in @@ -0,0 +1,393 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = doc/vorbisenc +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(docdir)" +docDATA_INSTALL = $(INSTALL_DATA) +DATA = $(doc_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +doc_DATA = changes.html examples.html index.html ov_ectl_ratemanage2_arg.html \ + ov_ectl_ratemanage_arg.html overview.html reference.html style.css\ + vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html \ + vorbis_encode_setup_managed.html vorbis_encode_setup_vbr.html vorbis_info.html \ + vorbis_encode_init_vbr.html + +EXTRA_DIST = $(doc_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/vorbisenc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/vorbisenc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" + @list='$(doc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ + $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(docdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-docDATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-docDATA + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/doc/vorbisenc/changes.html b/Dependencies/libvorbis/doc/vorbisenc/changes.html new file mode 100644 index 0000000..8f887a1 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/changes.html @@ -0,0 +1,104 @@ + + + +libvorbisenc - Documentation + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

Libvorbisenc API changes 1.0 through 1.1

+ +This document describes API additions to libvorbisenc between release +1.0 and 1.1. + +

1.0.1

+ +The programming API and binary application ABI are unchanged and fully +forward/backward compatible between release 1.0 and 1.0.1. Libvorbis, +libvorbisenc and libvorbisfile must match versions amongst themselves, +however. + +

1.1

+ +The binary ABI from release 1.0.1 to 1.1 is backward compatible; +applications linked against libvorbis/libvorbisenc 1.0 and 1.0.1 will +continue to function correctly when upgrading the libvorbis and +libvorbisenc dynamic libraries without re-linking.

+ +Release 1.1 adds several possible requests to the libvorbisenc vorbis_encode_ctl() call in order to +reflect the shift to bit-reservoir style +bitrate management. In addition, several vorbis_encode_ctl() requests are +deprecated (but functional) as they are redered semantically obsolete +by the new bitrate management.

+ +

Deprecated in 1.1

+ +These calls are still available to older codebases to preserve +compatability; the fields of the ovectl_ratemanage_arg argument +are mapped as closely as possible to the fields of the new ovectl_ratemanage2_arg +structure. + +
+
OV_ECTL_RATEMANAGE_GET:
Use OV_ECTL_RATEMANAGE2_GET +instead. + + +
OV_ECTL_RATEMANAGE_SET:
Use OV_ECTL_RATEMANAGE2_SET +instead. + +
OV_ECTL_RATEMANAGE_AVG:
Use OV_ECTL_RATEMANAGE2_SET +instead. + +
OV_ECTL_RATEMANAGE_HARD:
Use OV_ECTL_RATEMANAGE2_SET +instead. +
+ +

Newly added in 1.1

+ +The following calls are added in 1.1 to semantically reflect movement +to a bit-reservoir-based bitrate +management scheme by introducing the ovectl_ratemanage2_arg +structure in order to better represent the abilities of the bitrate +manager.

+ +

+
OV_ECTL_RATEMANAGE2_GET
+ +Used to query the current state of bitrate management setup. + +
OV_ECTL_RATEMANAGE2_SET
+ +Used to set or alter bitrate management settings. +
+ +

+
+ + + + + + + + +

copyright © 2000-2004 vorbis team

Ogg Vorbis
team@vorbis.org

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/examples.html b/Dependencies/libvorbis/doc/vorbisenc/examples.html new file mode 100644 index 0000000..75f50ff --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/examples.html @@ -0,0 +1,133 @@ + + + +libvorbisenc - Documentation + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

Libvorbisenc Setup Examples

+ +VBR is always the recommended mode for Vorbis encoding when +there's no need to impose bitrate constraints. True VBR encoding will +always produce the most consistent quality output as well as the +highest quality for a the bits used. + +

The following code examples prepare a +vorbis_info structure for encoding +use with libvorbis.

+ +

Example: encoding using a VBR quality mode

+ + +
 
+   vorbis_info_init(&vi);
+
+  /*********************************************************************
+   Encoding using a VBR quality mode.  The usable range is -.1
+   (lowest quality, smallest file) to 1.0 (highest quality, largest file).
+   Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR 
+   *********************************************************************/
+  
+   ret = vorbis_encode_init_vbr(&vi,2,44100,.4);
+
+  /*********************************************************************
+   do not continue if setup failed; this can happen if we ask for a
+   mode that libVorbis does not support (eg, too low a quality mode, etc,
+   will return 'OV_EIMPL')
+   *********************************************************************/
+
+   if(ret) exit(1);
+
+ +

Example: encoding using average bitrate (ABR)

+ + +
 
+   vorbis_info_init(&vi);
+
+  /*********************************************************************
+   Encoding using an average bitrate mode (ABR).
+   example: 44kHz stereo coupled, average 128kbps ABR 
+   *********************************************************************/
+  
+   ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1);
+
+  /*********************************************************************
+   do not continue if setup failed; this can happen if we ask for a
+   mode that libVorbis does not support (eg, too low a bitrate, etc,
+   will return 'OV_EIMPL')
+   *********************************************************************/
+
+   if(ret) exit(1);
+
+ +

Example: encoding using constant bitrate (CBR)

+ + +
 
+   vorbis_info_init(&vi);
+
+  /*********************************************************************
+   Encoding using a constant bitrate mode (CBR).
+   example: 44kHz stereo coupled, average 128kbps CBR 
+   *********************************************************************/
+  
+   ret = vorbis_encode_init(&vi,2,44100,128000,128000,128000);
+
+  /*********************************************************************
+   do not continue if setup failed; this can happen if we ask for a
+   mode that libVorbis does not support (eg, too low a bitrate, etc,
+   will return 'OV_EIMPL')
+   *********************************************************************/
+
+   if(ret) exit(1);
+
+ +

Example: encoding using VBR selected by approximate bitrate

+ + +
 
+   vorbis_info_init(&vi);
+
+  /*********************************************************************
+   Encode using a quality mode, but select that quality mode by asking for
+   an approximate bitrate.  This is not ABR, it is true VBR, but selected
+   using the bitrate interface, and then turning bitrate management off:
+   *********************************************************************/
+
+   ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) ||
+           vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE2_SET,NULL) ||
+           vorbis_encode_setup_init(&vi));
+
+  /*********************************************************************
+   do not continue if setup failed; this can happen if we ask for a
+   mode that libVorbis does not support (eg, too low a bitrate, etc,
+   will return 'OV_EIMPL')
+   *********************************************************************/
+
+   if(ret) exit(1);
+
+ +

+
+ + + + + + + + +

copyright © 2000-2004 vorbis team

Ogg Vorbis
team@vorbis.org

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ + + + diff --git a/libvorbis-1.0.1/doc/vorbisenc/index.html b/Dependencies/libvorbis/doc/vorbisenc/index.html similarity index 68% rename from libvorbis-1.0.1/doc/vorbisenc/index.html rename to Dependencies/libvorbis/doc/vorbisenc/index.html index 57903d6..3ee3595 100644 --- a/libvorbis-1.0.1/doc/vorbisenc/index.html +++ b/Dependencies/libvorbis/doc/vorbisenc/index.html @@ -9,7 +9,7 @@ - +

libvorbisenc documentation

libvorbisenc version 1.1.2.2 - 20001104

libvorbisenc release 1.1 - 20040709

@@ -20,16 +20,18 @@ Libvorbisenc is a convenient API for setting up an encoding environment using li

libvorbisenc api overview
libvorbisenc api reference
+libvorbisenc api changes from 1.0 and 1.0.1
+libvorbisenc encode setup examples



- + - - + +

copyright © 2000 vorbis team

copyright © 2000-2004 vorbis team

Ogg Vorbis
team@vorbis.org

vorbisfile documentation

vorbisfile version 1.25 - 20000615

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

diff --git a/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage2_arg.html b/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage2_arg.html new file mode 100644 index 0000000..a9f7207 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage2_arg.html @@ -0,0 +1,92 @@ + + + +vorbis - datatype - ov_ectl_ratemanage2_arg + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

ov_ectl_ratemanage2_arg

+ +

declared in "vorbis/vorbisenc.h"

+ +

+ +The ov_ectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and the OV_ECTL_RATEMANAGE2_GET and +OV_ECTL_RATEMANAGE2_SET calls in order to query and modify specifics +of the encoder's bitrate management configuration. + +

+ + + + + +
+
struct ovectl_ratemanage2_arg {
+  int    management_active;
+
+  long   bitrate_limit_min_kbps;
+  long   bitrate_limit_max_kbps;
+  long   bitrate_limit_reservoir_bits;
+  double bitrate_limit_reservoir_bias;
+
+  long   bitrate_average_kbps;
+  double bitrate_average_damping;
+};
+
+ +

Relevant Struct Members

+
+
management_active
+
nonzero if bitrate management is active
+ +
bitrate_limit_min_kbps
+
Lower allowed bitrate limit in kilobits per second
+
bitrate_limit_max_kbps
+
Upper allowed bitrate limit in kilobits per second
+
bitrate_limit_reservoir_bits
+
Size of the bitrate reservoir in bits
+
bitrate_limit_reservoir_bias
+ +
Regulates the bitrate reservoir's preferred fill level in a range +from 0.0 to 1.0; 0.0 tries to bank bits to buffer against future +bitrate spikes, 1.0 buffers against future sudden drops in +instantaneous bitrate. Default is 0.1
+ +
bitrate_average_kbps
+
Average bitrate setting in kilobits per second
+ +
bitrate_average_damping
Slew rate limit setting +for average bitrate adjustment; sets the minimum time in seconds the +bitrate tracker may swing from one extreme to the other when boosting +or damping average bitrate.
+ + + +
+ + +

+
+ + + + + + + + +

copyright © 2004 vorbis team

Ogg Vorbis
team@vorbis.org

vorbisfile documentation

libvorbisenc release 1.1 - 20040709

+ + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage_arg.html b/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage_arg.html new file mode 100644 index 0000000..332f0b7 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage_arg.html @@ -0,0 +1,92 @@ + + + +vorbis - datatype - ov_ectl_ratemanage_arg + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

ov_ectl_ratemanage_arg

+ +

declared in "vorbis/vorbisenc.h"

+ +

+ +The ov_ectl_ratemanage_arg structure is used with vorbis_encode_ctl() and the OV_ECTL_RATEMANAGE_GET, +OV_ECTL_RATEMANAGE_SET, OV_ECTL_RATEMANAGE_AVG, +OV_ECTL_RATEMANAGE_HARD calls in order to query and modify specifics +of the encoder's bitrate management configuration. Note that this is +a deprecated interface; please use vorbis_encode_ctl() with the ov_ectl_ratemanage2_arg struct +and OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in new +code. + +

+ + + + + +
+
struct ovectl_ratemanage_arg {
+  int    management_active;
+
+  long   bitrate_hard_min;
+  long   bitrate_hard_max;
+  double bitrate_hard_window;
+
+  long   bitrate_av_lo;
+  long   bitrate_av_hi;
+  double bitrate_av_window;
+  double bitrate_av_window_center;
+};
+
+ +

Relevant Struct Members

+
+ +
management_active
+
nonzero if bitrate management is active
+ +
bitrate_hard_min
+
hard lower limit (in kilobits per second) below which the stream bitrate will never be allowed for any given bitrate_hard_window seconds of time.
+
bitrate_hard_max
+
hard upper limit (in kilobits per second) above which the stream bitrate will never be allowed for any given bitrate_hard_window seconds of time.
+
bitrate_hard_window
+
the window period (in seconds) used to regulate the hard bitrate minimum and maximum
+ +
bitrate_av_lo
+
soft lower limit (in kilobits per second) below which the average bitrate tracker will start nudging the bitrate higher.
+
bitrate_av_hi
+
soft upper limit (in kilobits per second) above which the average bitrate tracker will start nudging the bitrate lower.
+
bitrate_av_window
+
the window period (in seconds) used to regulate the average bitrate minimum and maximum.
+
bitrate_av_window_center
+
Regulates the relative centering of the average and hard windows; in libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but followed the average window regulation. In libvorbis 1.1 a bit-reservoir interface replaces the old windowing interface; the older windowing interface is simulated and this field has no effect.
+ +
+ + +

+
+ + + + + + + + +

copyright © 2004 vorbis team

Ogg Vorbis
team@vorbis.org

vorbisfile documentation

libvorbisenc release 1.1 - 20040709

+ + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/overview.html b/Dependencies/libvorbis/doc/vorbisenc/overview.html new file mode 100644 index 0000000..284245d --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/overview.html @@ -0,0 +1,382 @@ + + + +libvorbisenc - API Overview + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

Libvorbisenc API Overview

+ +

Libvorbisenc is an encoding convenience library intended to +encapsulate the elaborate setup that libvorbis requires for encoding. +Libvorbisenc gives easy access to all high-level adjustments an +application may require when encoding and also exposes some low-level +tuning parameters to allow applications to make detailed adjustments +to the encoding process.

+ +All the libvorbisenc routines are declared in "vorbis/vorbisenc.h". + +Note: libvorbis and libvorbisenc always +encode in a single pass. Thus, all possible encoding setups will work +properly with live input and produce streams that decode properly when +streamed. See the subsection titled "managed bitrate +modes" for details on setting limits on bitrate usage when Vorbis +streams are used in a limited-bandwidth environment. + +

workflow

+ +

Libvorbisenc is used only during encoder setup; its function +is to automate initialization of a multitude of settings in a +vorbis_info structure which libvorbis then uses as a reference +during the encoding process. Libvorbisenc plays no part in the +encoding process after setup. + +

Encode setup using libvorbisenc consists of three steps: + +

    +
  1. high-level initialization of a vorbis_info structure by +calling one of vorbis_encode_setup_vbr() or vorbis_encode_setup_managed() +with the basic input audio parameters (rate and channels) and the +basic desired encoded audio output parameters (VBR quality or ABR/CBR +bitrate)

    + +

  2. optional adjustment of the basic setup defaults using vorbis_encode_ctl()

    + +

  3. calling vorbis_encode_setup_init() to +finalize the high-level setup into the detailed low-level reference +values needed by libvorbis to encode audio. The vorbis_info +structure is then ready to use for encoding by libvorbis.

    + +

+ +These three steps can be collapsed into a single call by using vorbis_encode_init_vbr to set up a +quality-based VBR stream or vorbis_encode_init to set up a managed +bitrate (ABR or CBR) stream.

+ +

adjustable encoding parameters

+ +

input audio parameters

+ +

+ + + + + + + + + + + + + +
parameterdescription
sampling rate +The sampling rate (in samples per second) of the input audio. Common examples are 8000 for telephony, 44100 for CD audio and 48000 for DAT. Note that a mono sample (one center value) and a stereo sample (one left value and one right value) both are a single sample. + +
channels + +The number of channels encoded in each input sample. By default, +stereo input modes (two channels) are 'coupled' by Vorbis 1.1 such +that the stereo relationship between the samples is taken into account +when encoding. Stereo coupling my be disabled by using vorbis_encode_ctl() with OV_ECTL_COUPLE_SET. + +
+ +

quality and VBR modes

+ +Vorbis is natively a VBR codec; a user requests a given constant +quality and the encoder keeps the encoding quality constant +while allowing the bitrate to vary. 'Quality' modes (Variable BitRate) +will always produce the most consistent encoding results as well as +the highest quality for the amount of bits used. + +

+ + + + + + + + + +
parameterdescription
quality +A decimal float value requesting a desired quality. Libvorbisenc 1.1 allows quality requests in the range of -0.1 (lowest quality, smallest files) through +1.0 (highest-quality, largest files). Quality -0.1 is intended as an ultra-low setting in which low bitrate is much more important than quality consistency. Quality settings 0.0 and above are intended to produce consistent results at all times. + +
+ + +

managed bitrate modes

+ +Although the Vorbis codec is natively VBR, libvorbis includes +infrastructure for 'managing' the bitrate of streams by setting +minimum and maximum usage constraints, as well as functionality for +nudging a stream toward a desired average value. These features +should only be used when there is a requirement to limit +bitrate in some way. Although the difference is usually slight, +managed bitrate modes will always produce output inferior to VBR +(given equal bitrate usage). Setting overly or impossibly tight +bitrate management requirements can affect output quality dramatically +for the worse.

+ +Beginning in libvorbis 1.1, bitrate management is implemented using a +bit-reservoir algorithm. The encoder has a fixed-size +reservoir used as a 'savings account' in encoding. When a frame is +smaller than the target rate, the unused bits go into the reservoir so +that they may be used by future frames. When a frame is larger than +target bitrate, it draws 'banked' bits out of the reservoir. Encoding +is managed so that the reservoir never goes negative (when a maximum +bitrate is specified) or fills beyond a fixed limit (when a minimum +bitrate is specified). An 'average bitrate' request is used as the +set-point in a long-range bitrate tracker which adjusts the encoder's +aggressiveness up or down depending on whether or not frames are coming +in larger or smaller than the requested average point. + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
parameterdescription
maximum bitrate The maximum allowed bitrate, set in bits +per second. If the bitrate would otherwise rise such that oversized +frames would underflow the bit-reservoir by consuming banked bits, +bitrate management will force the encoder to use fewer bits per frame +by encoding with a more aggressive psychoacoustic model.

This +setting is a hard limit; the bitstream will never be allowed, under +any circumstances, to increase above the specified bitrate over the +average period set by the reservoir; it may momentarily rise over if +inspected on a granularity much finer than the average period across +the reservoir. Normally, the encoder will conserve bits gracefully by +using more aggressive psychoacoustics to shrink a frame when forced +to. However, if the encoder runs out of means of gracefully shrinking +a frame, it will simply take the smallest frame it can otherwise +generate and truncate it to the maximum allowed length. Note that +this is not an error and although it will obviously adversely affect +audio quality, a Vorbis decoder will be able to decode a truncated +frame into audio. + +

average bitrate + +The average desired bitrate of a stream, set +in bits per second. Average bitrate is tracked via a reservoir like +minimum and maximum bitrate, however the averaging reservior does not +impose a hard limit; it is used to nudge the bitrate toward the +desired average by slowly adjusting the psychoacoustic aggressiveness. +As such, the reservoir size does not affect the average bitrate +behavior. Because this setting alone is not used to impose hard +bitrate limits, the bitrate of a stream produced using only the +average bitrate constraint will track the average over time +but not necessarily adhere strictly to that average for any given +period. Should a strict localized average be required, average +bitrate should be used along with minimum bitrate and +maximum bitrate. +
minimum bitrate + The minimum allowed bitrate, set in bits per second. If +the bitrate would otherwise fall such that undersized frames would +overflow the bit-reservoir with unused bits, bitrate management will +force the encoder to use more bits per frame by encoding with a less +aggressive psychoacoustic model.

This setting is a hard limit; the +bitstream will never be allowed, under any circumstances, to drop +below the specified bitrate over the average period set by the +reservoir; it may momentarily fall under if inspected on a granularity +much finer than the average period across the reservoir. Normally, +the encoder will fill out undersided frames with additional useful +coding information by increasing the perceived quality of the stream. +If the encoder runs out of useful ways to consume more bits, it will +pad frames out with zeroes. +

reservoir size The size of the minimum/maximum bitrate +tracking reservoir, set in bits. The reservoir is used as a 'bit +bank' to average out localized surges and dips in bitrate while +providing predictable, guaranteed buffering behavior for streams to be +used in situations with constrained transport bandwidth. The default +setting is two seconds of average bitrate.

+ +When a single frame is larger than the maximum allowed overall +bitrate, the bits are 'borrowed' from the bitrate reservoir; if the +reservoir contains insufficient bits to cover the defecit, the encoder +must find some way to reduce the frame size.

+ +When a frame is under the minimum limit, the surplus bits are placed +into the reservoir, banking them for future use. If the reservoir is +already full of banked bits, the encoder is forced to find some way to +make the frame larger.

+ +If the frame size is between the minimum and maximum rates (thus +implying the minimum and maximum allowed rates are different), the +reservoir gravitates toward a fill point configured by the +reservoir bias setting described next. If the reservoir is +fuller than the fill point (a 'surplus of surplus'), the encoder will +consume a number bits from the reservoir equal to the number of the +bits by which the frame exceeds minimum size. If the reservoir is +emptier than the fillpoint (a 'surplus of defecit'), bits are returned +to the reservoir equaling the current frame's number of bits under the +maximum frame size. The idea of the fill point is to buffer against +both underruns and overruns, by trying to hold the reservoir to a +middle course. +

reservoir bias + +Reservoir bias is a setting between 0.0 and 1.0 that biases bitrate +management toward smoothing bitrate spikes (0.0) or bitrate peaks +(1.0); the default setting is 0.1.

+ +Using settings toward 0.0 causes the bitrate manager to hoard bits in +the bit reservoir such that there is a large pool of banked surplus to +draw upon during short spikes in bitrate. As a result, the encoder +will react less aggressively and less drastically to curtail framesize +during brief surges in bitrate.

+ +Using settings toward 1.0 causes the bitrate manager to empty the bit +reservoir such that there is a large buffer available to store surplus +bits during sudden drops in bitrate. As a result, the encoder will +react less aggressively and less drastically to support minimum frame +sizes during drops in bitrate and will tend not to store any extra +bits in the reservoir for future bitrate spikes.

+ +

average track damping + +A decimal value, in seconds, that controls how quickly the average +bitrate tracker is allowed to slew from enforcing minimum frame sizes +to maximum framesizes and vice versa. Default value is 1.5 +seconds.

+ +When the 'average bitrate' setting is in use, the average bitrate +tracker uses an unbounded reservoir to track overall bitrate-to-date +in the stream. When bitrates are too low, the tracker will try to +nudge bitrates up and when the bitrate is too high, nudge it down. +The damping value regulates the maximum strength of the nudge; it +describes, in seconds, how quickly the tracker may transition from an +extreme nudge in one direction to an extreme nudge in the other.

+ +

+ +

encoding model adjustments

+ +The
vorbis_encode_ctl() call provides +a generalized interface for making encoding setup adjustments to the +basic high-level setup provided by vorbis_encode_setup_vbr() or vorbis_encode_setup_managed(). +In reality, these two calls use vorbis_encode_ctl() internally, and vorbis_encode_ctl() can be used to adjust +most of the parameters set by other calls.

+ +In Vorbis 1.1, vorbis_encode_ctl() can +adjust the following additional parameters not described elsewhere: + +

+ + + + + + + + + + + + + + + + + + + + +
parameterdescription
management mode Configures whether or not bitrate +management is in use or not. Normally, this value is set implicitly +during encoding setup; however, the supported means of selecting a +quality mode by bitrate (that is, requesting a true VBR stream, but +doing so by asking for an approximate bitrate) is to use vorbis_encode_setup_managed() +and then to explicitly turn off bitrate management by calling vorbis_encode_ctl() with OV_ECTL_RATEMANAGE2_SET +
coupling Stereo encoding (and in the future, surround +encodings) are normally encoded assuming the channels form a stereo +image and that lossy-stereo modelling is appropriate; this is called +'coupling'. Stereo coupling may be explicitly enabled or disabled. +
lowpass Sets the hard lowpass of a given encoding mode; +this may be used to conserve a few bits in high-rate audio that has +limited bandwidth, or in testing of the encoder's acoustic model. The +encoder is generally already configured with ideal lowpasses (if any +at all) for given modes; use of this parameter is strongly discouraged +if the point is to try to 'improve' a given encoding mode for general +encoding. +
impulse coding aggressiveness By default, libvorbis +attempts to compromise between preventing wide bitrate swings and +high-resolution impulse coding (which is required for the crispest +possible attacks, but also requires a relatively large momentary +bitrate increase). This parameter allows an application to tune the +compromise or eliminate it; A value of 0.0 indicates normal behavior +while a value of -15.0 requests maximum possible impulse +resolution.
+ + +

+


+ + + + + + + + +

copyright © 2004 Vorbis team

Ogg Vorbis
team@vorbis.org

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ + + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/reference.html b/Dependencies/libvorbis/doc/vorbisenc/reference.html new file mode 100644 index 0000000..9bda280 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/reference.html @@ -0,0 +1,74 @@ + + + +Vorbisfile API Reference + + + + + + + + + +

vorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

Vorbisenc API Reference

+ +

Data Structures

+ +

+vorbis_info
+ov_ectl_ratemanage_arg
+ov_ectl_ratemanage2_arg
+

+ +

Encoder Setup

+ +

+vorbis_encode_ctl()
+vorbis_encode_init()
+vorbis_encode_init_vbr()
+vorbis_encode_setup_init()
+vorbis_encode_setup_managed()
+vorbis_encode_setup_vbr()
+

+ +

Encoding

+ +

+vorbis_analysis_init()
+vorbis_block_init()
+

+ +

+vorbis_analysis_headerout()
+

+ +

+vorbis_analysis_buffer()
+vorbis_analysis_wrote()
+vorbis_analysis_blockout()
+

+

+vorbis_analysis()
+vorbis_bitrate_addblock()
+vorbis_bitrate_flushpacket()
+

+ +
+
+
+ + + + + + + + +

copyright © 2004 vorbis team

Ogg Vorbis
team@vorbis.org

libvorbisenc release 1.1 - 20040709

vorbisenc version 1.1

+ + + + diff --git a/libvorbis-1.0.1/doc/vorbisenc/style.css b/Dependencies/libvorbis/doc/vorbisenc/style.css similarity index 100% rename from libvorbis-1.0.1/doc/vorbisenc/style.css rename to Dependencies/libvorbis/doc/vorbisenc/style.css diff --git a/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_ctl.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_ctl.html new file mode 100644 index 0000000..ca337da --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_ctl.html @@ -0,0 +1,183 @@ + + + +libvorbisenc - function - vorbis_encode_ctl + + + + + + + + + +

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ +

vorbis_encode_ctl

+ +

declared in "vorbis/vorbisenc.h";

+ +

This function implements a generic interface to miscellaneous +encoder settings similar to the clasasic UNIX 'ioctl()' system call. +Applications may use vorbis_encode_ctl() to query or set bitrate +management or quality mode details by using one of several +request arguments detailed below. Vorbis_encode_ctl() must be +called after one of vorbis_encode_setup_managed() +or vorbis_encode_setup_vbr(). +When used to modify settings, vorbis_encode_ctl() must be called +before vorbis_encode_setup_init(). + +

+

+ + + + +
+

+extern int vorbis_encode_ctl(vorbis_info *vi,int request,void *arg);
+
+
+
+ +

Parameters

+
+
vi
+
Pointer to an initialized vorbis_info struct.

+

request
+
Specifies the desired action; possible request fields are detailed below.

+

arg
+
void * pointing to a data structure matching the request argument.

+

+ +

Requests

+
+ +
OV_ECTL_RATEMANAGE2_GET
+ +
Argument: struct +ovectl_ratemanage2_arg *
Used to query the current +encoder bitrate management setting. Also used to initialize fields of +an ovectl_ratemanage2_arg structure for use with +OV_ECTL_RATEMANAGE2_SET.

+ +

OV_ECTL_RATEMANAGE2_SET
+
Argument: struct +ovectl_ratemanage2_arg *
Used to set the current +encoder bitrate management settings to the values listed in the +ovectl_ratemanage2_arg. Passing a NULL pointer will disable bitrate +management. +

+ +

OV_ECTL_LOWPASS_GET
+
Argument: double *
Returns the current encoder hard-lowpass +setting (kHz) in the double pointed to by arg. +

+ +

OV_ECTL_LOWPASS_SET
+
Argument: double *
Sets the encoder hard-lowpass to the value +(kHz) pointed to by arg. Valid lowpass settings range from 2 to 99. +

+ +

OV_ECTL_IBLOCK_GET
+
Argument: double *
Returns the current encoder impulse +block setting in the double pointed to by arg.

+ +

OV_ECTL_IBLOCK_SET
Argument: double *
Sets +the impulse block bias to the the value pointed to by arg; valid range +is -15.0 to 0.0 [default]. A negative impulse block bias will direct +to encoder to use more bits when incoding short blocks that contain +strong impulses, thus improving the accuracy of impulse encoding.

+ +

OV_ECTL_COUPLING_GET
+
Argument: int *
+Returns the current encoder coupling enabled/disabled +setting in the int pointed to by arg. +

+ +

OV_ECTL_COUPLING_SET
+
Argument: int *
+Enables/disables channel coupling in multichannel encoding according to arg. +*arg of zero disables all channel coupling, nonzero allows the encoder to use +coupling if a coupled mode is available for the input. At present, coupling +is available for stereo and 5.1 input modes. +

+ +

OV_ECTL_RATEMANAGE_GET [deprecated]
+
+ +Argument: struct +ovectl_ratemanage_arg *
Old interface to querying bitrate +management settings; deprecated after move to bit-reservoir style +management in 1.1 rendered this interface partially obsolete. Please +use OV_ECTL_RATEMANGE2_GET instead. + +

+ +

OV_ECTL_RATEMANAGE_SET [deprecated]
+
+Argument: struct +ovectl_ratemanage_arg *
Old interface to modifying bitrate +management settings; deprecated after move to bit-reservoir style +management in 1.1 rendered this interface partially obsolete. Please +use OV_ECTL_RATEMANGE2_SET instead. +

+ +

OV_ECTL_RATEMANAGE_AVG [deprecated]
+
+Argument: struct +ovectl_ratemanage_arg *
Old interface to setting +average-bitrate encoding mode; deprecated after move to bit-reservoir +style management in 1.1 rendered this interface partially obsolete. +Please use OV_ECTL_RATEMANGE2_SET instead. +

+ +

OV_ECTL_RATEMANAGE_HARD [deprecated]
+
+Argument: struct +ovectl_ratemanage_arg *
Old interface to setting +bounded-bitrate encoding modes; deprecated after move to bit-reservoir +style management in 1.1 rendered this interface partially obsolete. +Please use OV_ECTL_RATEMANGE2_SET instead. +

+ + +

+ + +

Return Values

vorbis_encode_ctl() returns zero on success, +placing any further return information (such as the result of a query) +into the storage pointed to by *arg. On error, +vorbis_encode_ctl() may return one of the following error codes: + +
+ +
OV_EINVAL
Invalid argument, or an attempt to modify a +setting after calling vorbis_encode_setup_init().

+ +

OV_EIMPL
Unimplemented or unknown request

+ +

+ +

+ +

+


+ + + + + + + + +

copyright © 2004 xiph.org

Ogg Vorbis
team@vorbis.org

libvorbisenc documentation

libvorbisenc release 1.1 - 20040709

+ + + + + diff --git a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init.html similarity index 71% rename from libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init.html rename to Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init.html index 159620b..f279775 100644 --- a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init.html +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init.html @@ -9,15 +9,15 @@ - +

libvorbisenc documentation

libvorbisenc version 1.1.2.2 - 20001104

libvorbisenc release 1.1 - 20040709

vorbis_encode_init

-

declared in "vorbis/libvorbisenc.h";

+

declared in "vorbis/vorbisenc.h";

-

This is the primary function within libvorbisenc. This is used to properly set up an encoding environment using libvorbisenc. +

This is the primary function within libvorbisenc for setting up managed bitrate modes.

Before this function is called, the vorbis_info struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called.

The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set constraints for the encoded file. This function uses these settings to select the appropriate encoding mode and set it up.

@@ -42,17 +42,17 @@ extern int vorbis_encode_init(vorbis_info *vi,

Parameters

vi
-
File pointer to an initialized vorbis_info struct.
+
Pointer to an initialized vorbis_info struct.
channels
The number of channels to be encoded.
rate
The sampling rate of the source audio.
max_bitrate
-
Desired maximum bitrate (limit).
+
Desired maximum bitrate (limit). -1 indicates unset.
nominal_bitrate
-
Desired average, or central, bitrate.
+
Desired average, or central, bitrate. -1 indicates unset.
min_bitrate
-
Desired minimum bitrate.
+
Desired minimum bitrate. -1 indicates unset.
@@ -64,6 +64,8 @@ extern int vorbis_encode_init(vorbis_info *vi,
  • less than zero for failure:
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    • OV_EINVAL - Invalid setup request, eg, out of range argument.
    • +
    • OV_EIMPL - Unimplemented mode; unable to comply with bitrate request.

    @@ -72,11 +74,11 @@ extern int vorbis_encode_init(vorbis_info *vi,


    - + - +

    copyright © 2000 xiph.org

    copyright © 2004 xiph.org

    Ogg Vorbis
    team@vorbis.org

    libvorbisenc documentation

    libvorbisenc version 1.1.2.2 - 20001106

    libvorbisenc release 1.1 - 20040709

    diff --git a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init_vbr.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init_vbr.html similarity index 67% rename from libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init_vbr.html rename to Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init_vbr.html index 66073eb..92f9a23 100644 --- a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_init_vbr.html +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init_vbr.html @@ -9,17 +9,16 @@ - +

    libvorbisenc documentation

    libvorbisenc - 20011218

    libvorbisenc release 1.1 - 20040709

    vorbis_encode_init_vbr

    -

    declared in "vorbis/libvorbisenc.h";

    +

    declared in "vorbis/vorbisenc.h";

    -

    This is the primary function within libvorbisenc. This is used to properly set up an encoding environment using libvorbisenc. +

    This is the primary function within libvorbisenc for setting up variable bitrate ("quality" based) modes.

    Before this function is called, the vorbis_info struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called. -

    The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set constraints for the encoded file. This function uses these settings to select the appropriate encoding mode and set it up.



    @@ -30,7 +29,7 @@ extern int vorbis_encode_init_vbr(vorbis_info *vi long channels, long rate, - float base_quality /* from 0. (lo) to 1. (hi) */); + float base_quality); @@ -40,13 +39,13 @@ extern int vorbis_encode_init_vbr(vorbis_info *vi

    Parameters

    vi
    -
    File pointer to an initialized vorbis_info struct.
    +
    Pointer to an initialized vorbis_info struct.
    channels
    The number of channels to be encoded.
    rate
    The sampling rate of the source audio.
    base_quality
    -
    Desired quality level from 0.0 to 1.0 (lo to hi).
    +
    Desired quality level, currently from -0.1 to 1.0 (lo to hi).
    @@ -58,6 +57,8 @@ extern int vorbis_encode_init_vbr(vorbis_info *vi
  • less than zero for failure:
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    • OV_EINVAL - Invalid setup request, eg, out of range argument.
    • +
    • OV_EIMPL - Unimplemented mode; unable to comply with quality level request.

    @@ -66,11 +67,11 @@ extern int vorbis_encode_init_vbr(vorbis_info *vi


    - + - +

    copyright © 2000 xiph.org

    copyright © 2004 xiph.org

    Ogg Vorbis
    team@vorbis.org

    libvorbisenc documentation

    libvorbisenc version 1.1.2.2 - 20001106

    libvorbisenc release 1.1 - 20040709

    diff --git a/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_init.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_init.html new file mode 100644 index 0000000..7d18655 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_init.html @@ -0,0 +1,88 @@ + + + +libvorbisenc - function - vorbis_encode_setup_init + + + + + + + + + +

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + +

    vorbis_encode_setup_init

    + +

    declared in "vorbis/vorbisenc.h";

    + +

    This function performs the last stage of three-step encoding setup, as described in the API overview under managed bitrate modes. + +

    Before this function is called, the vorbis_info struct should be initialized +by using vorbis_info_init() from the libvorbis API, one of vorbis_encode_setup_managed() +or vorbis_encode_setup_vbr() +called to initialize the high-level encoding setup, and vorbis_encode_ctl() called if +necessary to make encoding setup changes. vorbis_encode_setup_init() +finalizes the highlevel encoding structure into a complete encoding +setup after which the application may make no further setup changes.

    + +After encoding, vorbis_info_clear should be called. +

    +

    + + + + +
    +
    
    +extern int vorbis_encode_setup_init(vorbis_info *vi);
    +
    +
    +
    + +

    Parameters

    +
    +
    vi
    +
    Pointer to an initialized vorbis_info struct.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    • OV_EINVAL - Attempt to use vorbis_encode_setup_init() without first calling one of vorbis_encode_setup_managed() +or vorbis_encode_setup_vbr() +to initialize the high-level encoding setup +
    • +
    +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2004 xiph.org

    Ogg Vorbis
    team@vorbis.org

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + + + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_managed.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_managed.html new file mode 100644 index 0000000..6e8d8c7 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_managed.html @@ -0,0 +1,102 @@ + + + +libvorbisenc - function - vorbis_encode_setup_managed + + + + + + + + + +

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + +

    vorbis_encode_setup_managed

    + +

    declared in "vorbis/vorbisenc.h";

    + +

    This function performs step-one of a three-step bitrate-managed +encode setup. It functions similarly to the one-step setup performed +by vorbis_encode_init() but +allows an application to make further encode setup tweaks using vorbis_encode_ctl() before finally +calling vorbis_encode_setup_init() to +complete the setup process. + +

    Before this function is called, the vorbis_info struct should be initialized +by using vorbis_info_init() from the libvorbis API. After encoding, +vorbis_info_clear should be called. + +

    The max_bitrate, nominal_bitrate, and min_bitrate settings are used +to set constraints for the encoded file. This function uses these +settings to select the appropriate encoding mode and set it up. +

    +

    + + + + +
    +
    
    +extern int vorbis_encode_init(vorbis_info *vi,
    +			      long channels,
    +			      long rate,
    +			      
    +			      long max_bitrate,
    +			      long nominal_bitrate,
    +			      long min_bitrate);
    +
    +
    +
    + +

    Parameters

    +
    +
    vi
    +
    Pointer to an initialized vorbis_info struct.
    +
    channels
    +
    The number of channels to be encoded.
    +
    rate
    +
    The sampling rate of the source audio.
    +
    max_bitrate
    +
    Desired maximum bitrate (limit). -1 indicates unset.
    +
    nominal_bitrate
    +
    Desired average, or central, bitrate. -1 indicates unset.
    +
    min_bitrate
    +
    Desired minimum bitrate. -1 indicates unset.
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    • OV_EINVAL - Invalid setup request, eg, out of range argument.
    • +
    • OV_EIMPL - Unimplemented mode; unable to comply with bitrate request.
    • +
    +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2004 xiph.org

    Ogg Vorbis
    team@vorbis.org

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + + + + + diff --git a/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_vbr.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_vbr.html new file mode 100644 index 0000000..6c9a698 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_vbr.html @@ -0,0 +1,90 @@ + + + +libvorbisenc - function - vorbis_encode_setup_vbr + + + + + + + + + +

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + +

    vorbis_encode_setup_vbr

    + +

    declared in "vorbis/vorbisenc.h";

    + +

    This function performs step-one of a three-step variable bitrate +(quality-based) encode setup. It functions similarly to the one-step +setup performed by vorbis_encode_init_vbr() but +allows an application to make further encode setup tweaks using vorbis_encode_ctl() before finally +calling vorbis_encode_setup_init() to +complete the setup process. + +

    Before this function is called, the vorbis_info struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called. +

    +

    + + + + +
    +
    
    +extern int vorbis_encode_init_vbr(vorbis_info *vi,
    +			      long channels,
    +			      long rate,
    +			      
    +			      float base_quality);
    +
    +
    +
    + +

    Parameters

    +
    +
    vi
    +
    Pointer to an initialized vorbis_info struct.
    +
    channels
    +
    The number of channels to be encoded.
    +
    rate
    +
    The sampling rate of the source audio.
    +
    base_quality
    +
    Desired quality level, currently from -0.1 to 1.0 (lo to hi).
    +
    + + +

    Return Values

    +
    +
  • +0 for success
  • + +
  • less than zero for failure:
  • +
      +
    • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
    • +
    • OV_EINVAL - Invalid setup request, eg, out of range argument.
    • +
    • OV_EIMPL - Unimplemented mode; unable to comply with quality level request.
    • +
    +
    +

    + +

    +


    + + + + + + + + +

    copyright © 2004 xiph.org

    Ogg Vorbis
    team@vorbis.org

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    + + + + + diff --git a/libvorbis-1.0.1/doc/vorbisenc/vorbis_info.html b/Dependencies/libvorbis/doc/vorbisenc/vorbis_info.html similarity index 58% rename from libvorbis-1.0.1/doc/vorbisenc/vorbis_info.html rename to Dependencies/libvorbis/doc/vorbisenc/vorbis_info.html index 2e82409..99d2bbe 100644 --- a/libvorbis-1.0.1/doc/vorbisenc/vorbis_info.html +++ b/Dependencies/libvorbis/doc/vorbisenc/vorbis_info.html @@ -8,8 +8,8 @@ - - + +

    vorbisfile documentation

    vorbisfile version 1.25 - 20000615

    libvorbisenc documentation

    libvorbisenc release 1.1 - 20040709

    @@ -18,7 +18,7 @@

    declared in "vorbis/codec.h"

    -The vorbis_info structure contains information about a vorbis bitstream. Most of the information in this struct is more complex and in-depth than we need when using basic API calls. +The vorbis_info structure contains information about a vorbis bitstream.

    @@ -33,33 +33,9 @@ The vorbis_info structure contains information about a vorbis bitstream. Most o long bitrate_upper; long bitrate_nominal; long bitrate_lower; + long bitrate_window; - long blocksizes[2]; - - int modes; - int maps; - int times; - int floors; - int residues; - int books; - int psys; /* encode only */ - - vorbis_info_mode *mode_param[64]; - int map_type[64]; - vorbis_info_mapping *map_param[64]; - int time_type[64]; - vorbis_info_time *time_param[64]; - int floor_type[64]; - vorbis_info_floor *floor_param[64]; - int residue_type[64]; - vorbis_info_residue *residue_param[64]; - static_codebook *book_param[256]; - vorbis_info_psy *psy_param[64]; /* encode only */ - - /* for block long/sort tuning; encode only */ - int envelopesa; - double preecho_thresh; - double preecho_clamp; + void *codec_setup; } vorbis_info;

    @@ -80,8 +56,11 @@ The vorbis_info structure contains information about a vorbis bitstream. Most o
    Specifies the average bitrate for a VBR bitstream. May be unset. If the bitrate_upper and bitrate_lower parameters match, the stream is fixed bitrate.
    bitrate_lower
    Specifies the lower limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_upper parameters, the stream is fixed bitrate. May be unset if no limit exists.
    -
    blocksizes[2]
    -
    Contains the sizes of the long and short blocks for this particular bitstream. These are variable and can be set by the encoder. Vorbis only supports two sizes, long and short.
    +
    bitrate_window
    +
    Specifies the size of the bit reservoir in seconds relative to the nominal bitrate. May be unset.
    +
    codec_setup
    +
    Pointer to private encoder setup state.
    + @@ -89,11 +68,11 @@ The vorbis_info structure contains information about a vorbis bitstream. Most o
    - + - +

    copyright © 2000 vorbis team

    copyright © 2004 vorbis team

    Ogg Vorbis
    team@vorbis.org

    vorbisfile documentation

    vorbisfile version 1.25 - 20000615

    libvorbisenc release 1.1 - 20040709

    diff --git a/libvorbis-1.0.1/doc/vorbisfile/Makefile.am b/Dependencies/libvorbis/doc/vorbisfile/Makefile.am similarity index 97% rename from libvorbis-1.0.1/doc/vorbisfile/Makefile.am rename to Dependencies/libvorbis/doc/vorbisfile/Makefile.am index d4fadc2..26977e0 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/Makefile.am +++ b/Dependencies/libvorbis/doc/vorbisfile/Makefile.am @@ -1,7 +1,5 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign - docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisfile doc_DATA = OggVorbis_File.html callbacks.html chaining_example_c.html\ @@ -9,6 +7,7 @@ doc_DATA = OggVorbis_File.html callbacks.html chaining_example_c.html\ example.html exampleindex.html fileinfo.html index.html\ initialization.html ov_bitrate.html ov_bitrate_instant.html\ ov_callbacks.html ov_clear.html ov_comment.html ov_crosslap.html\ + ov_fopen.html\ ov_info.html ov_open.html ov_open_callbacks.html ov_pcm_seek.html\ ov_pcm_seek_lap.html ov_pcm_seek_page.html ov_pcm_seek_page_lap.html\ ov_pcm_tell.html ov_pcm_total.html ov_raw_seek.html\ diff --git a/Dependencies/libvorbis/doc/vorbisfile/Makefile.in b/Dependencies/libvorbis/doc/vorbisfile/Makefile.in new file mode 100644 index 0000000..b9cf38a --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/Makefile.in @@ -0,0 +1,406 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = doc/vorbisfile +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(docdir)" +docDATA_INSTALL = $(INSTALL_DATA) +DATA = $(doc_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisfile +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +doc_DATA = OggVorbis_File.html callbacks.html chaining_example_c.html\ + chainingexample.html crosslap.html datastructures.html decoding.html\ + example.html exampleindex.html fileinfo.html index.html\ + initialization.html ov_bitrate.html ov_bitrate_instant.html\ + ov_callbacks.html ov_clear.html ov_comment.html ov_crosslap.html\ + ov_fopen.html\ + ov_info.html ov_open.html ov_open_callbacks.html ov_pcm_seek.html\ + ov_pcm_seek_lap.html ov_pcm_seek_page.html ov_pcm_seek_page_lap.html\ + ov_pcm_tell.html ov_pcm_total.html ov_raw_seek.html\ + ov_raw_seek_lap.html ov_raw_tell.html ov_raw_total.html ov_read.html\ + ov_read_float.html ov_seekable.html ov_serialnumber.html\ + ov_streams.html ov_test.html ov_test_callbacks.html ov_test_open.html\ + ov_time_seek.html ov_time_seek_lap.html ov_time_seek_page.html\ + ov_time_seek_page_lap.html ov_time_tell.html ov_time_total.html\ + overview.html reference.html return.html seekexample.html seeking.html\ + seeking_example_c.html seeking_test_c.html seekingexample.html\ + style.css threads.html vorbis_comment.html vorbis_info.html\ + vorbisfile_example_c.html + +EXTRA_DIST = $(doc_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/vorbisfile/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/vorbisfile/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" + @list='$(doc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ + $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(docdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-docDATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-docDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-docDATA + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libvorbis-1.0.1/doc/vorbisfile/OggVorbis_File.html b/Dependencies/libvorbis/doc/vorbisfile/OggVorbis_File.html similarity index 61% rename from libvorbis-1.0.1/doc/vorbisfile/OggVorbis_File.html rename to Dependencies/libvorbis/doc/vorbisfile/OggVorbis_File.html index e4a033e..293295b 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/OggVorbis_File.html +++ b/Dependencies/libvorbis/doc/vorbisfile/OggVorbis_File.html @@ -9,7 +9,7 @@ - +

    Vorbisfile documentation

    vorbisfile version 1.68 - 20030307

    vorbisfile version 1.2.0 - 20070723

    @@ -21,28 +21,44 @@ The OggVorbis_File structure defines an Ogg Vorbis file.

    -This structure is used in all libvorbisfile routines. Before it can be used, -it must be initialized by ov_open() or ov_open_callbacks(). +This structure is used in all libvorbisfile routines. Before it can +be used, it must be initialized by ov_open(), ov_fopen(), or ov_open_callbacks(). Important +Note: The use of ov_open() is +discouraged under Windows due to a peculiarity of Windows linking +convention; use ov_fopen() or ov_open_callbacks() instead. This +caution only applies to Windows; use of ov_open() is appropriate for all other +platforms. See the ov_open() page for more +information.

    After use, the OggVorbis_File structure must be deallocated with a call to ov_clear().

    -Once a file or data source is opened successfully by libvorbisfile -(using ov_open() or ov_open_callbacks()), it is owned by -libvorbisfile. The file should not be used by any other applications or -functions outside of the libvorbisfile API. The file must not be closed -directly by the application at any time after a successful open; -libvorbisfile expects to close the file within ov_clear(). -

    -If the call to ov_open() or ov_open() call, the handle is owned by +libvorbisfile and will be closed by libvorbisfile later during the +call to ov_clear(). The handle should not +be used or closed outside of the libvorbisfile API. Similarly, files +opened by ov_fopen() will also be closed +internally by vorbisfile in ov_clear().

    + +ov_open_callbacks() allows the +application to choose whether libvorbisfile will or will not close the +handle in ov_clear(); see the ov_open_callbacks() page for more information.

    + +If a call to ov_open() or ov_open_callbacks() fails, -libvorbisfile does not assume ownership of the file and the -application is expected to close it if necessary. +libvorbisfile does not assume ownership of the handle and the +application is expected to close it if necessary. A failed ov_fopen() call will internally close the +file handle if the open process fails.



    @@ -108,11 +124,11 @@ application.
    - + - +

    copyright © 2003 Xiph.org

    copyright © 2007 Xiph.org

    Ogg Vorbis

    Vorbisfile documentation

    vorbisfile version 1.68 - 20030307

    vorbisfile version 1.2.0 - 20070723

    diff --git a/libvorbis-1.0.1/doc/vorbisfile/callbacks.html b/Dependencies/libvorbis/doc/vorbisfile/callbacks.html similarity index 72% rename from libvorbis-1.0.1/doc/vorbisfile/callbacks.html rename to Dependencies/libvorbis/doc/vorbisfile/callbacks.html index eda3c47..5ed0124 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/callbacks.html +++ b/Dependencies/libvorbis/doc/vorbisfile/callbacks.html @@ -9,7 +9,7 @@ - +

    Vorbisfile documentation

    vorbisfile version 1.68 - 20030307

    vorbisfile version 1.2.0 - 20070723

    @@ -50,9 +50,13 @@ The following behaviors are also expected:

    The seek-like function provided in the seek_func field is used to request non-sequential data access by libvorbisfile, moving -the access cursor to the requested position.

    +the access cursor to the requested position. The seek function is +optional; if callbacks are only to handle non-seeking (streaming) data +or the application wishes to force streaming behavior, +seek_func and tell_func should be set to NULL. If +the seek function is non-NULL, libvorbisfile mandates the following +behavior: -libvorbisfile expects the following behavior:

    • The seek function must always return -1 (failure) if the given data abstraction is not seekable. It may choose to always return -1 @@ -73,15 +77,17 @@ one past the last byte of accessible data, as would stdio The close function should deallocate any access state used by the passed in instance of the data access abstraction and invalidate the -instance handle. The close function is assumed to succeed.

      - -One common use of callbacks and the close function is to change the -behavior of libvorbisfile with respect to file closure for applications -that must fclose data files themselves. By passing -the normal stdio calls as callback functions, but passing a -close_func that does nothing, an application may call ov_clear() and then fclose() the -file originally passed to libvorbisfile. +instance handle. The close function is assumed to succeed; its return +code is not checked.

      + +The close_func may be set to NULL to indicate that libvorbis +should not attempt to close the file/data handle in ov_clear but allow the application to handle +file/data access cleanup itself. For example, by passing the normal +stdio calls as callback functions, but passing a close_func +that is NULL or does nothing (as in the case of OV_CALLBACKS_NOCLOSE), an +application may call ov_clear() and then +later fclose() the file originally passed to libvorbisfile.

      Tell function

      @@ -94,17 +100,19 @@ function must return the data position (and thus the total file size), not an error.

      The tell function need not be provided if the data IO abstraction is -not seekable.

      +not seekable, or the application wishes to force streaming +behavior. In this case, the tell_func and seek_func +fields should be set to NULL.




      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/Dependencies/libvorbis/doc/vorbisfile/chaining_example_c.html b/Dependencies/libvorbis/doc/vorbisfile/chaining_example_c.html new file mode 100644 index 0000000..d092b78 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/chaining_example_c.html @@ -0,0 +1,90 @@ + + + +vorbisfile - chaining_example.c + + + + + + + + + +

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + +

      chaining_example.c

      + +

      +The example program source: + +

      + + + + +
      +
      
      +
      +#include <vorbis/codec.h>
      +#include <vorbis/vorbisfile.h>
      +
      +int main(){
      +  OggVorbis_File ov;
      +  int i;
      +
      +#ifdef _WIN32 /* We need to set stdin to binary mode on windows. */
      +  _setmode( _fileno( stdin ), _O_BINARY );
      +#endif
      +
      +  /* open the file/pipe on stdin */
      +  if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)<0){
      +    printf("Could not open input as an OggVorbis file.\n\n");
      +    exit(1);
      +  }
      +  
      +  /* print details about each logical bitstream in the input */
      +  if(ov_seekable(&ov)){
      +    printf("Input bitstream contained %ld logical bitstream section(s).\n",
      +           ov_streams(&ov));
      +    printf("Total bitstream playing time: %ld seconds\n\n",
      +           (long)ov_time_total(&ov,-1));
      +
      +  }else{
      +    printf("Standard input was not seekable.\n"
      +           "First logical bitstream information:\n\n");
      +  }
      +
      +  for(i=0;i<ov_streams(&ov);i++){
      +    vorbis_info *vi=ov_info(&ov,i);
      +    printf("\tlogical bitstream section %d information:\n",i+1);
      +    printf("\t\t%ldHz %d channels bitrate %ldkbps serial number=%ld\n",
      +           vi->rate,vi->channels,ov_bitrate(&ov,i)/1000,
      +           ov_serialnumber(&ov,i));
      +    printf("\t\tcompressed length: %ld bytes ",(long)(ov_raw_total(&ov,i)));
      +    printf(" play time: %lds\n",(long)ov_time_total(&ov,i));
      +  }
      +
      +  ov_clear(&ov);
      +  return 0;
      +}
      +
      +
      +
      + + +

      +


      + + + + + + + + +

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + + + + diff --git a/libvorbis-1.0.1/doc/vorbisfile/chainingexample.html b/Dependencies/libvorbis/doc/vorbisfile/chainingexample.html similarity index 73% rename from libvorbis-1.0.1/doc/vorbisfile/chainingexample.html rename to Dependencies/libvorbis/doc/vorbisfile/chainingexample.html index 932539e..e2c313e 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/chainingexample.html +++ b/Dependencies/libvorbis/doc/vorbisfile/chainingexample.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -50,16 +50,33 @@ int main(){ -

      ov_open() must be -called to initialize the OggVorbis_File structure with default values. -ov_open() also checks to ensure that we're reading Vorbis format and not something else. +

      This example takes its input on stdin which is in 'text' mode by default under Windows; this will corrupt the input data unless set to binary mode. This applies only to Windows. +

      + + + + +
      +
      
      +#ifdef _WIN32 /* We need to set stdin to binary mode under Windows */
      +  _setmode( _fileno( stdin ), _O_BINARY );
      +#endif
      +
      +
      + +

      We call ov_open_callbacks() to +initialize the OggVorbis_File +structure. ov_open_callbacks() +also checks to ensure that we're reading Vorbis format and not +something else. The OV_CALLBACKS_NOCLOSE callbacks instruct +libvorbisfile not to close stdin later during cleanup.



      @@ -129,7 +146,7 @@ When we're done with the entire physical bitstream, we need to call chaining_example.c.
      
      -  if(ov_open(stdin,&ov,NULL,-1)<0){
      +  if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)<0){
           printf("Could not open input as an OggVorbis file.\n\n");
           exit(1);
         }
      @@ -81,11 +98,11 @@ First we check to make sure the stream is seekable using rate,vi->channels,ov_bitrate(&ov,i)/1000,
      -	   ov_serialnumber(&ov,i));
      -    printf("\t\tcompressed length: %ld bytes ",(long)(ov_raw_total(&ov,i)));
      -    printf(" play time: %lds\n",(long)ov_time_total(&ov,i));
      +	   vi->rate,vi->channels,ov_bitrate(&ov,i)/1000,
      +	   ov_serialnumber(&ov,i));
      +    printf("\t\tcompressed length: %ld bytes ",(long)(ov_raw_total(&ov,i)));
      +    printf(" play time: %lds\n",(long)ov_time_total(&ov,i));
         } 
       
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/crosslap.html b/Dependencies/libvorbis/doc/vorbisfile/crosslap.html similarity index 94% rename from libvorbis-1.0.1/doc/vorbisfile/crosslap.html rename to Dependencies/libvorbis/doc/vorbisfile/crosslap.html index 16a768d..d998eb2 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/crosslap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/crosslap.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -54,7 +54,7 @@ eliminate stairstep discontinuities all the time for exactly the reasons described above.

      Frame lapping, like Vorbis performs internally during continuous -playback, is necessary to eliminate that last epislon of trouble. +playback, is necessary to eliminate that last epsilon of trouble.

      Easiest Crosslap

      @@ -108,11 +108,11 @@ greater, a half-short block is 64 samples.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/datastructures.html b/Dependencies/libvorbis/doc/vorbisfile/datastructures.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/datastructures.html rename to Dependencies/libvorbis/doc/vorbisfile/datastructures.html index 0736618..d3294a3 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/datastructures.html +++ b/Dependencies/libvorbis/doc/vorbisfile/datastructures.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -48,11 +48,11 @@
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/decoding.html b/Dependencies/libvorbis/doc/vorbisfile/decoding.html similarity index 72% rename from libvorbis-1.0.1/doc/vorbisfile/decoding.html rename to Dependencies/libvorbis/doc/vorbisfile/decoding.html index 7121114..4a39155 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/decoding.html +++ b/Dependencies/libvorbis/doc/vorbisfile/decoding.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -20,9 +20,10 @@ All libvorbisfile decoding routines are declared in "vorbis/vorbisfile.h".

      After initialization, decoding audio -is as simple as calling ov_read(). This -function works similarly to reading from a normal file using -read().

      +is as simple as calling ov_read() (or the +similar functions ov_read_float() and +ov_read_filter). This function works +similarly to reading from a normal file using read().

      However, a few differences are worth noting: @@ -61,23 +62,28 @@ as a concert recording) is chopped into multiple seperate files. ov_read This function makes up the main chunk of a decode loop. It takes an OggVorbis_File structure, which must have been initialized by a previous -call to ov_open(). +call to ov_open(), ov_fopen(), +or ov_open_callbacks(). ov_read_float This function decodes to floats instead of integer samples. + + ov_read_filter + This function works like ov_read, but passes the PCM data through the provided filter before converting to integer sample data. +


      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/example.html b/Dependencies/libvorbis/doc/vorbisfile/example.html similarity index 85% rename from libvorbis-1.0.1/doc/vorbisfile/example.html rename to Dependencies/libvorbis/doc/vorbisfile/example.html index 3d28e1a..4372b98 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/example.html +++ b/Dependencies/libvorbis/doc/vorbisfile/example.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -17,7 +17,7 @@

      The following is a run-through of the decoding example program supplied -with libvorbisfile, vorbisfile_example.c. +with libvorbisfile, vorbisfile_example.c. This program takes a vorbis bitstream from stdin and writes raw pcm to stdout.

      @@ -87,16 +87,19 @@ int main(int argc, char **argv){ -

      ov_open() must be -called to initialize the OggVorbis_File structure with default values. -ov_open() also checks to ensure that we're reading Vorbis format and not something else. +

      We call ov_open_callbacks() to +initialize the OggVorbis_File structure with default values. +ov_open_callbacks() also checks +to ensure that we're reading Vorbis format and not something else. The +OV_CALLBACKS_NOCLOSE callbacks instruct libvorbisfile not to close +stdin later during cleanup.

      - - + + + + + - + @@ -86,13 +102,14 @@ Finish opening a file after a successful call to ov_test(


      +
      
      -  if(ov_open(stdin, &vf, NULL, 0) < 0) {
      +  if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) {
             fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
             exit(1);
         }
      @@ -143,7 +146,7 @@ Here's the read loop:
       
      
       
         while(!eof){
      -    long ret=ov_read(&vf,pcmout,sizeof(pcmout),¤t_section);
      +    long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,¤t_section);
           if (ret == 0) {
             /* EOF */
             eof=1;
      @@ -192,11 +195,11 @@ Now that we've finished playing, we can pack up and go home.  It's important to
       
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/exampleindex.html b/Dependencies/libvorbis/doc/vorbisfile/exampleindex.html similarity index 81% rename from libvorbis-1.0.1/doc/vorbisfile/exampleindex.html rename to Dependencies/libvorbis/doc/vorbisfile/exampleindex.html index 6f8dce3..b168664 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/exampleindex.html +++ b/Dependencies/libvorbis/doc/vorbisfile/exampleindex.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -26,11 +26,11 @@ Three sample programs are included with the vorbisfile distribution.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/fileinfo.html b/Dependencies/libvorbis/doc/vorbisfile/fileinfo.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/fileinfo.html rename to Dependencies/libvorbis/doc/vorbisfile/fileinfo.html index ab55f14..8b92d90 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/fileinfo.html +++ b/Dependencies/libvorbis/doc/vorbisfile/fileinfo.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -82,11 +82,11 @@ All libvorbisfile file information routines are declared in "vorbis/vorbisfile.h
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/index.html b/Dependencies/libvorbis/doc/vorbisfile/index.html similarity index 85% rename from libvorbis-1.0.1/doc/vorbisfile/index.html rename to Dependencies/libvorbis/doc/vorbisfile/index.html index 27ebd18..fc85866 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/index.html +++ b/Dependencies/libvorbis/doc/vorbisfile/index.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -36,11 +36,11 @@ documentation.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/initialization.html b/Dependencies/libvorbis/doc/vorbisfile/initialization.html similarity index 59% rename from libvorbis-1.0.1/doc/vorbisfile/initialization.html rename to Dependencies/libvorbis/doc/vorbisfile/initialization.html index 173a786..c49b4e7 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/initialization.html +++ b/Dependencies/libvorbis/doc/vorbisfile/initialization.html @@ -9,23 +9,34 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      Setup/Teardown

      In order to decode audio using libvorbisfile, a bitstream containing Vorbis audio must be properly initialized before decoding and cleared when decoding is finished. -The simplest possible case is to use fopen() to open a Vorbis -file and then pass the FILE * to an ov_open() call. A successful ov_fopen() to open the file for access, check +it for Vorbis content, and prepare it for playback. A successful return code from ov_open() indicates the file is ready for use. +href="ov_fopen.html">ov_fopen() indicates the file is ready for use. Once the file is no longer needed, ov_clear() is used to close the file and -deallocate decoding resources. Do not call fclose() on the -file; libvorbisfile does this in the ov_clear() call. +deallocate decoding resources.

      + +On systems other than Windows[a], an +application may also open a file itself using fopen(), then pass the +FILE * to libvorbisfile using ov_open(). Do not call +fclose() on a file handle successfully submitted to ov_open(); libvorbisfile does this in the ov_clear() call.

      + +An application that requires more setup flexibility may open a data +stream using ov_open_callbacks() +to change default libvorbis behavior or specify non-stdio data access +mechanisms.

      All libvorbisfile initialization and deallocation routines are declared in "vorbis/vorbisfile.h". @@ -37,13 +48,18 @@ All libvorbisfile initialization and deallocation routines are declared in "vorb

      purpose
      ov_openInitializes the Ogg Vorbis bitstream with a pointer to a bitstream and default values. This must be called before other functions in the library may be + ov_fopenOpens a file and initializes the Ogg Vorbis bitstream with default values. This must be called before other functions in the library may be used.
      ov_openInitializes the Ogg Vorbis bitstream with default values from a passed in file handle. This must be called before other functions in the library may be + used. Do not use this call under Windows [a]; Use ov_fopen() or ov_open_callbacks() instead.
      ov_open_callbacksInitializes the Ogg Vorbis bitstream with a pointer to a bitstream, default values, and custom file/bitstream manipulation routines. Used instead of ov_open() when working with other than stdio based I/O.Initializes the Ogg Vorbis bitstream from a file handle and custom file/bitstream manipulation routines. Used instead of ov_open() or ov_fopen() when altering or replacing libvorbis's default stdio I/O behavior, or when a bitstream must be initialized from a FILE * under Windows.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_bitrate.html b/Dependencies/libvorbis/doc/vorbisfile/ov_bitrate.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/ov_bitrate.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_bitrate.html index 222a425..afd3945 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_bitrate.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_bitrate.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -59,11 +59,11 @@ functions.


      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_bitrate_instant.html b/Dependencies/libvorbis/doc/vorbisfile/ov_bitrate_instant.html similarity index 88% rename from libvorbis-1.0.1/doc/vorbisfile/ov_bitrate_instant.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_bitrate_instant.html index eb6baa6..137effb 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_bitrate_instant.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_bitrate_instant.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -52,11 +52,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/Dependencies/libvorbis/doc/vorbisfile/ov_callbacks.html b/Dependencies/libvorbis/doc/vorbisfile/ov_callbacks.html new file mode 100644 index 0000000..603705e --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_callbacks.html @@ -0,0 +1,117 @@ + + + +Vorbisfile - datatype - ov_callbacks + + + + + + + + + +

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + +

      ov_callbacks

      + +

      declared in "vorbis/codec.h"

      + +

      +The ov_callbacks structure contains file manipulation function prototypes necessary for opening, closing, seeking, and location. + +

      +The ov_callbacks structure does not need to be user-defined if you are +working with stdio-based file manipulation; the ov_fopen() and ov_open() calls internally provide default callbacks for +stdio. ov_callbacks are defined and passed to ov_open_callbacks() when +implementing non-stdio based stream manipulation (such as playback +from a memory buffer) or when ov_open()-style initialization from a FILE * is required under Windows [a]. +

      + + + + + +
      +
      typedef struct {
      +  size_t (*read_func)  (void *ptr, size_t size, size_t nmemb, void *datasource);
      +  int    (*seek_func)  (void *datasource, ogg_int64_t offset, int whence);
      +  int    (*close_func) (void *datasource);
      +  long   (*tell_func)  (void *datasource);
      +} ov_callbacks;
      +
      + +

      Relevant Struct Members

      +
      +
      read_func
      +
      Pointer to custom data reading function.
      +
      seek_func
      +
      Pointer to custom data seeking function. If the data source is not seekable (or the application wants the data source to be treated as unseekable at all times), the provided seek callback should always return -1 (failure) or the seek_func and tell_func fields should be set to NULL.
      +
      close_func
      +
      Pointer to custom data source closure function. Set to NULL if libvorbisfile should not attempt to automatically close the file/data handle.
      +
      tell_func
      +
      Pointer to custom data location function. If the data source is not seekable (or the application wants the data source to be treated as unseekable at all times), the provided tell callback should always return -1 (failure) or the seek_func and tell_func fields should be set to NULL.
      +
      + +

      + +

      Predefined callbacks

      +The header vorbis/vorbisfile.h provides several predefined static ov_callbacks structures that may be passed to ov_open_callbacks(): +
      +
      OV_CALLBACKS_DEFAULT
      + +These callbacks provide the same behavior as used internally by ov_fopen() and ov_open(). + +
      OV_CALLBACKS_NOCLOSE
      + +The same as OV_CALLBACKS_DEFAULT, but with the +close_func field set to NULL. The most typical use would be +to use ov_open_callbacks() to +provide the same behavior as ov_open(), but +not close the file/data handle in ov_clear(). + +
      OV_CALLBACKS_STREAMONLY
      + +A set of callbacks that set seek_func and tell_func +to NULL, thus forcing strict streaming-only behavior regardless of +whether or not the input is actually seekable. + +
      OV_CALLBACKS_STREAMONLY_NOCLOSE
      + +The same as OV_CALLBACKS_STREAMONLY, but with +close_func also set to null, preventing libvorbisfile from +attempting to close the file/data handle in ov_clear(). + +
      +

      + +

      Examples and usage

      + +See the callbacks and non-stdio I/O document for more +detailed information on required behavior of the various callback +functions.

      + +

      +


      + + + + + + + + +

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + + + + diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_clear.html b/Dependencies/libvorbis/doc/vorbisfile/ov_clear.html similarity index 57% rename from libvorbis-1.0.1/doc/vorbisfile/ov_clear.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_clear.html index 805f73c..62f353a 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_clear.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_clear.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -17,8 +17,8 @@

      declared in "vorbis/vorbisfile.h";

      -

      After a bitstream has been opened using ov_open()/ov_open_callbacks() and decoding is complete, the application must call ov_clear() to clear -the decoder's buffers. ov_clear() will also close the file.

      +

      After a bitstream has been opened using ov_fopen()/ov_open()/ov_open_callbacks() and decoding is complete, the application must call ov_clear() to clear +the decoder's buffers. ov_clear() will also close the file unless it was opened using ov_open_callbacks() with the close_func callback set to NULL.

      ov_clear() must also be called after a successful call to ov_test() or ov_test_callbacks().

      @@ -37,7 +37,7 @@ int ov_clear(OggVorbis_File *vf);

      vf
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile -functions. After ov_clear has been called, the structure is deallocated and can no longer be used.
      +functions. After ov_clear has been called, the contents of this structure are deallocated, and it can no longer be used without being reinitialized by a call to ov_fopen(), ov_open() or ov_open_callbacks().
      @@ -51,11 +51,11 @@ functions. After ov_clear has been called, the structure is deallocate
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_comment.html b/Dependencies/libvorbis/doc/vorbisfile/ov_comment.html similarity index 88% rename from libvorbis-1.0.1/doc/vorbisfile/ov_comment.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_comment.html index 28aaf31..740ecab 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_comment.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_comment.html @@ -10,7 +10,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -53,11 +53,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_crosslap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_crosslap.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/ov_crosslap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_crosslap.html index 768c700..b13ebbd 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_crosslap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_crosslap.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -18,7 +18,7 @@

      declared in "vorbis/vorbisfile.h";

      ov_crosslap overlaps and blends the boundary at a transition -between two seperate streams represented by seperate OggVorbis_File structures. For lapping transitions due to seeking within a single stream represented by a single OggVorbis_File structure, @@ -75,7 +75,7 @@ long ov_crosslap(OggVorbis_File *old, OV_EREAD

      A read from media returned an error.
      OV_EOF
      -
      indicates stream vf2 is at end of file, or that vf1 is at end of file immediately after a seek (making crosslap impossible as there's no preceeding decode state to crosslap).
      +
      indicates stream vf2 is at end of file, or that vf1 is at end of file immediately after a seek (making crosslap impossible as there's no preceding decode state to crosslap).
      0
      success.
      @@ -87,11 +87,11 @@ long ov_crosslap(
      OggVorbis_File *old, - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/Dependencies/libvorbis/doc/vorbisfile/ov_fopen.html b/Dependencies/libvorbis/doc/vorbisfile/ov_fopen.html new file mode 100644 index 0000000..256f581 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_fopen.html @@ -0,0 +1,124 @@ + + + +Vorbisfile - function - ov_fopen + + + + + + + + + +

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + +

      ov_fopen

      + +

      declared in "vorbis/vorbisfile.h";

      + +

      This is the simplest function used to open and initialize an OggVorbis_File +structure. It sets up all the related decoding structure. +

      The first argument is a file path suitable +for passing to fopen(). vf should be a pointer to an empty +OggVorbis_File structure -- this is used for ALL the externally visible +libvorbisfile functions. Once this has been called, the same OggVorbis_File struct should be passed +to all the libvorbisfile functions. +

      The vf structure initialized using ov_fopen() must +eventually be cleaned using ov_clear(). + +

      +It is often useful to call ov_fopen() simply to determine +whether a given file is a Vorbis bitstream. If the ov_fopen() +call fails, then the file is either inaccessable (errno is set) or not +recognizable as Vorbis (errno unchanged). If the call succeeds but +the initialized vf structure will not be used, the +application is responsible for calling ov_clear() to clear the decoder's buffers and +close the file.

      + +

      + + + + +
      +
      
      +int ov_fopen(char *path,OggVorbis_File *vf);
      +
      +
      + +

      Parameters

      +
      +
      path
      +
      Null terminated string containing a file path suitable for passing to fopen(). +
      +
      vf
      +
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisfile functions.
      +
      + + +

      Return Values

      +
      +
    • 0 indicates success
    • + +
    • less than zero for failure:
    • +
        +
      • OV_EREAD - A read from media returned an error.
      • +
      • OV_ENOTVORBIS - Bitstream does not contain any Vorbis data.
      • +
      • OV_EVERSION - Vorbis version mismatch.
      • +
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • +
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • +
      +
      +

      + +

      Notes

      +
      + +
      [a] Threaded decode

      +

      If your decoder is threaded, it is recommended that you NOT call +ov_open_callbacks() +in the main control thread--instead, call ov_open_callbacks() in your decode/playback +thread. This is important because ov_open_callbacks() may be a fairly time-consuming +call, given that the full structure of the file is determined at this point, +which may require reading large parts of the file under certain circumstances +(determining all the logical bitstreams in one physical bitstream, for +example). See Thread Safety for other information on using libvorbisfile with threads. +

      + +

      [b] Mixed media streams

      +

      +As of Vorbisfile release 1.2.0, Vorbisfile is able to access the +Vorbis content in mixed-media Ogg streams, not just Vorbis-only +streams. For example, Vorbisfile may be used to open and access the +audio from an Ogg stream consisting of Theora video and Vorbis audio. +Vorbisfile 1.2.0 decodes the first logical audio stream of each +physical stream section.

      + +

      [c] Faster testing for Vorbis files

      +

      ov_test() and ov_test_callbacks() provide less +computationally expensive ways to test a file for Vorbisness, but +require more setup code.

      + +

      + +

      +
      + + + + + + + + +

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + + + + diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_info.html b/Dependencies/libvorbis/doc/vorbisfile/ov_info.html similarity index 89% rename from libvorbis-1.0.1/doc/vorbisfile/ov_info.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_info.html index c8dd9ef..c9cc062 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_info.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_info.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -51,11 +51,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/Dependencies/libvorbis/doc/vorbisfile/ov_open.html b/Dependencies/libvorbis/doc/vorbisfile/ov_open.html new file mode 100644 index 0000000..9b6f9e0 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_open.html @@ -0,0 +1,183 @@ + + + +Vorbisfile - function - ov_open + + + + + + + + + +

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + +

      ov_open

      + +

      declared in "vorbis/vorbisfile.h";

      + +

      ov_open is one of three initialization functions used to initialize +an OggVorbis_File structure and prepare a bitstream for playback. + +

      WARNING for Windows developers: Do not use ov_open() in +Windows applications; Windows linking places restrictions on +passing FILE * handles successfully, and ov_open() runs +afoul of these restrictions [a]. See the ov_open_callbacks() page for +details on using ov_open_callbacks() instead. + +

      The first argument must be a file pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream). vf should be a pointer to the +OggVorbis_File structure -- this is used for ALL the externally visible libvorbisfile +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisfile functions.

      + +The vf structure initialized using ov_fopen() must eventually +be cleaned using ov_clear(). Once a +FILE * handle is passed to ov_open() successfully, the +application MUST NOT fclose() or in any other way manipulate +that file handle. Vorbisfile will close the file in ov_clear(). If the application must be able +to close the FILE * handle itself, see ov_open_callbacks() with the use of +OV_CALLBACKS_NOCLOSE. + +

      It is often useful to call ov_open() simply to determine +whether a given file is a Vorbis bitstream. If the ov_open() +call fails, then the file is not recognizable as Vorbis. If the call +succeeds but the initialized vf structure will not be used, +the application is responsible for calling ov_clear() to clear the decoder's buffers and +close the file.

      + +If [and only if] an ov_open() call fails, the application +must explicitly fclose() the FILE * pointer itself. + + +

      + + + + +
      +
      
      +int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
      +
      +
      + +

      Parameters

      +
      +
      f
      +
      File pointer to an already opened file +or pipe (it need not be seekable--though this obviously restricts what +can be done with the bitstream).
      +
      vf
      +
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisfile functions.
      +
      initial
      +
      Typically set to NULL. This parameter is useful if some data has already been +read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
      +
      ibytes
      +
      Typically set to 0. This parameter is useful if some data has already been +read from the file and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial
      +
      + + +

      Return Values

      +
      +
    • 0 indicates success
    • + +
    • less than zero for failure:
    • +
        +
      • OV_EREAD - A read from media returned an error.
      • +
      • OV_ENOTVORBIS - Bitstream is not Vorbis data.
      • +
      • OV_EVERSION - Vorbis version mismatch.
      • +
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • +
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • +
      +
      +

      + + +

      Notes

      +
      + + +
      [a] Windows and ov_open()

      + +

      Under Windows, stdio file access is implemented in each of many +variants of crt.o, several of which are typically installed on any one +Windows machine. If libvorbisfile and the application using +libvorbisfile are not linked against the exact same +version/variant/build of crt.o (and they usually won't be, especially +using a prebuilt libvorbis DLL), FILE * handles cannot be +opened in the application and then passed to vorbisfile to be used +by stdio calls from vorbisfile's different version of CRT. For this +reason, using ov_open() under Windows +without careful, expert linking will typically cause a protection +fault. Windows programmers should use ov_fopen() (which will only use libvorbis's +crt.o) or ov_open_callbacks() +(which will only use the application's crt.o) instead.

      + +This warning only applies to Windows and only applies to ov_open(). It is perfectly safe to use ov_open() on all other platforms.

      + +For more information, see the following microsoft pages on C +runtime library linking and a specific description of restrictions +on passing CRT objects across DLL boundaries. + +

      + +

      [b] Threaded decode

      +

      If your decoder is threaded, it is recommended that you NOT call +ov_open() +in the main control thread--instead, call ov_open() in your decode/playback +thread. This is important because ov_open() may be a fairly time-consuming +call, given that the full structure of the file is determined at this point, +which may require reading large parts of the file under certain circumstances +(determining all the logical bitstreams in one physical bitstream, for +example). See Thread Safety for other information on using libvorbisfile with threads. +

      + +

      [c] Mixed media streams

      +

      +As of Vorbisfile release 1.2.0, Vorbisfile is able to access the +Vorbis content in mixed-media Ogg streams, not just Vorbis-only +streams. For example, Vorbisfile may be used to open and access the +audio from an Ogg stream consisting of Theora video and Vorbis audio. +Vorbisfile 1.2.0 decodes the first logical audio stream of each +physical stream section.

      + +

      [d] Faster testing for Vorbis files

      +

      ov_test() and ov_test_callbacks() provide less +computationally expensive ways to test a file for Vorbisness, but +require more setup code.

      + +

      + +

      +
      + + + + + + + + +

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + + + + diff --git a/Dependencies/libvorbis/doc/vorbisfile/ov_open_callbacks.html b/Dependencies/libvorbis/doc/vorbisfile/ov_open_callbacks.html new file mode 100644 index 0000000..6718f12 --- /dev/null +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_open_callbacks.html @@ -0,0 +1,147 @@ + + + +Vorbisfile - function - ov_open_callbacks + + + + + + + + + +

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + +

      ov_open_callbacks

      + +

      declared in "vorbis/vorbisfile.h";

      + +

      This is an alternative function used to open and initialize an +OggVorbis_File structure when using a data source other than a file, +when its necessary to modify default file access behavior, or to +initialize a Vorbis decode from a FILE * pointer under +Windows where ov_open() cannot be used. It +allows the application to specify custom file manipulation routines +and sets up all the related decoding structures. + +

      Once ov_open_callbacks() has been called, the same +OggVorbis_File struct should be passed to all the +libvorbisfile functions. Unlike ov_fopen() and ov_open(), ov_open_callbacks() may be used to +instruct vorbisfile to either automatically close or not to close the +file/data access handle in ov_clear(). +Automatic closure is disabled by passing NULL as the close callback, +or using one of the predefined callback sets that specify a NULL close +callback. The application is responsible for closing a file when a +call to ov_open_callbacks() is unsuccessful.

      + +See also Callbacks and Non-stdio I/O for +information on designing and specifying custom callback functions.

      + +

      + + + + +
      +
      
      +int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks callbacks);
      +
      +
      + +

      Parameters

      +
      +
      datasource
      +
      Pointer to a data structure allocated by the calling application, containing any state needed by the callbacks provided.
      +
      vf
      +
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile +functions. Once this has been called, the same OggVorbis_File +struct should be passed to all the libvorbisfile functions.
      +
      initial
      +
      Typically set to NULL. This parameter is useful if some data has already been +read from the stream and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial +should be a pointer to a buffer containing the data read.
      +
      ibytes
      +
      Typically set to 0. This parameter is useful if some data has already been +read from the stream and the stream is not seekable. In this case, ibytes +should contain the length (in bytes) of the buffer. Used together with initial.
      +
      callbacks
      +
      A completed ov_callbacks struct which indicates desired custom file manipulation routines. vorbisfile.h defines several preprovided callback sets; see ov_callbacks for details.
      +
      + + +

      Return Values

      +
      +
    • 0 for success
    • +
    • less than zero for failure:
    • +
        +
      • OV_EREAD - A read from media returned an error.
      • +
      • OV_ENOTVORBIS - Bitstream does not contain any Vorbis data.
      • +
      • OV_EVERSION - Vorbis version mismatch.
      • +
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • +
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • +
      +
      +

      + +

      Notes

      +
      + +
      [a] Windows and use as an ov_open() substitute

      Windows +applications should not use ov_open() due +to the likelihood of CRT linking +mismatches and runtime protection faults +[ov_open:a]. ov_open_callbacks() is a safe substitute; specifically: + +

      ov_open_callbacks(f, vf, initial, ibytes, OV_CALLBACKS_DEFAULT);
      +
      + +... provides exactly the same functionality as ov_open() but will always work correctly under +Windows, regardless of linking setup details.

      + +

      [b] Threaded decode

      +

      If your decoder is threaded, it is recommended that you NOT call +ov_open_callbacks() +in the main control thread--instead, call ov_open_callbacks() in your decode/playback +thread. This is important because ov_open_callbacks() may be a fairly time-consuming +call, given that the full structure of the file is determined at this point, +which may require reading large parts of the file under certain circumstances +(determining all the logical bitstreams in one physical bitstream, for +example). See Thread Safety for other information on using libvorbisfile with threads. +

      + +

      [c] Mixed media streams

      +

      +As of Vorbisfile release 1.2.0, Vorbisfile is able to access the +Vorbis content in mixed-media Ogg streams, not just Vorbis-only +streams. For example, Vorbisfile may be used to open and access the +audio from an Ogg stream consisting of Theora video and Vorbis audio. +Vorbisfile 1.2.0 decodes the first logical audio stream of each +physical stream section.

      + +

      [d] Faster testing for Vorbis files

      +

      ov_test() and ov_test_callbacks() provide less +computationally expensive ways to test a file for Vorbisness, but +require more setup code.

      + +

      + +

      +
      + + + + + + + + +

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.2.0 - 20070723

      + + + + diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek.html index 3c55469..73e2f66 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -70,11 +70,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_lap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_lap.html similarity index 93% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_lap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_lap.html index 124a7f9..4a30a92 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_lap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_lap.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -90,11 +90,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page.html index 5dbda3c..796609e 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -71,11 +71,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page_lap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page_lap.html similarity index 94% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page_lap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page_lap.html index dd81db7..558f6ab 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_seek_page_lap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page_lap.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -99,11 +99,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_tell.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_tell.html similarity index 85% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_tell.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_tell.html index 1d8961f..09a9cd4 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_tell.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_tell.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -50,11 +50,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_total.html b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_total.html similarity index 84% rename from libvorbis-1.0.1/doc/vorbisfile/ov_pcm_total.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_pcm_total.html index 02e35ca..fb44bcc 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_pcm_total.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_pcm_total.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -45,7 +45,7 @@ functions.
    • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is unseekable.
    • total length in pcm samples of content if i=-1.
    • -
    • length in pcm samples of logical bitstream if i=1 to n.
    • +
    • length in pcm samples of logical bitstream if i=0 to n.
    • @@ -54,11 +54,11 @@ total length in pcm samples of content if i=-1.


      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek.html b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek.html index 1e5fbbe..285afdb 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -70,11 +70,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek_lap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek_lap.html similarity index 93% rename from libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek_lap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek_lap.html index 56c4953..2a55a62 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_seek_lap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_seek_lap.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -97,11 +97,11 @@ nonzero indicates failure, described by several error codes:
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_tell.html b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_tell.html similarity index 67% rename from libvorbis-1.0.1/doc/vorbisfile/ov_raw_tell.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_raw_tell.html index ed23510..525ce88 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_tell.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_tell.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -17,7 +17,9 @@

      declared in "vorbis/vorbisfile.h";

      -

      Returns the current offset in raw compressed bytes. +

      Returns the current offset in raw compressed bytes.

      + +

      Note that if you later use ov_raw_seek() to return to this point, you won't generally get back to exactly the same place, due to internal buffering. Also note that a read operation may not cause a change to the current raw offset - only a read that requires reading more data from the underlying data source will do that.



      @@ -50,11 +52,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_total.html b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_total.html similarity index 87% rename from libvorbis-1.0.1/doc/vorbisfile/ov_raw_total.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_raw_total.html index dfb9f97..7b89f0e 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_raw_total.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_raw_total.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -45,7 +45,7 @@ functions.
    • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable
    • n total length in compressed bytes of content if i=-1.
    • -
    • n length in compressed bytes of logical bitstream if i=1 to n.
    • +
    • n length in compressed bytes of logical bitstream if i=0 to n.
    • @@ -55,11 +55,11 @@ total length in compressed bytes of content if i=-1.


      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_read.html b/Dependencies/libvorbis/doc/vorbisfile/ov_read.html similarity index 72% rename from libvorbis-1.0.1/doc/vorbisfile/ov_read.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_read.html index e545f47..8144af4 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_read.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_read.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -25,9 +25,30 @@ If the passed in buffer is large, ov_read() will not fill it; the passed in buffer size is treated as a limit and not a request. -

      - -Note that up to this point, the Vorbisfile API could more or less hide the + +

      The output channels are in stream order and not remapped. Vorbis I +defines channel order as follows: + +

        +
      • one channel - the stream is monophonic +
      • two channels - the stream is stereo. channel order: left, right +
      • three channels - the stream is a 1d-surround encoding. channel order: left, +center, right +
      • four channels - the stream is quadraphonic surround. channel order: front left, +front right, rear left, rear right +
      • five channels - the stream is five-channel surround. channel order: front left, +center, front right, rear left, rear right +
      • six channels - the stream is 5.1 surround. channel order: front left, center, +front right, rear left, rear right, LFE +
      • seven channels - the stream is 6.1 surround. channel order: front left, center, +front right, side left, side right, rear center, LFE +
      • eight channels - the stream is 7.1 surround. channel order: front left, center, +front right, side left, side right, rear left, rear right, +LFE +
      • greater than eight channels - channel use and order is undefined +
      + +

      Note that up to this point, the Vorbisfile API could more or less hide the multiple logical bitstream nature of chaining from the toplevel application if the toplevel application didn't particularly care. However, when reading audio back, the application must be aware @@ -84,6 +105,10 @@ ig endian. Typical value is 0.

      OV_EBADLINK
      indicates that an invalid stream section was supplied to libvorbisfile, or the requested link is corrupt.
      +
      OV_EINVAL
      +
      indicates the initial file headers couldn't be read or + are corrupt, or that the initial open call for vf + failed.
      0
      indicates EOF
      n
      @@ -110,11 +135,11 @@ little-endian samples.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_read_float.html b/Dependencies/libvorbis/doc/vorbisfile/ov_read_float.html similarity index 86% rename from libvorbis-1.0.1/doc/vorbisfile/ov_read_float.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_read_float.html index 5dc7d57..4138ebf 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_read_float.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_read_float.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -21,7 +21,7 @@ This is the function used to decode a Vorbis file within a loop, but returns samples in native float format instead of in integer formats.

      - For more information on how ov_read_float() deals with the complex issues + For information on channel ordering and how ov_read_float() deals with the complex issues of chaining, etc, refer to the documentation for ov_read().

      @@ -46,7 +46,6 @@ functions.
      samples
      Maximum number of decoded samples to produce.
      bitstream
      -
      bitstream
      A pointer to the number of the current logical bitstream.
      @@ -61,6 +60,10 @@ functions.
      OV_EBADLINK
      indicates that an invalid stream section was supplied to libvorbisfile, or the requested link is corrupt.
      +
      OV_EINVAL
      +
      indicates the initial file headers couldn't be read or + are corrupt, or that the initial open call for vf + failed.
      0
      indicates EOF
      n
      @@ -89,7 +92,7 @@ This decodes up to 1024 float samples.

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      -

      vorbisfile version 1.68 - 20030307

      +

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_seekable.html b/Dependencies/libvorbis/doc/vorbisfile/ov_seekable.html similarity index 85% rename from libvorbis-1.0.1/doc/vorbisfile/ov_seekable.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_seekable.html index b8f8c91..fee1d88 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_seekable.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_seekable.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -50,11 +50,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_serialnumber.html b/Dependencies/libvorbis/doc/vorbisfile/ov_serialnumber.html similarity index 88% rename from libvorbis-1.0.1/doc/vorbisfile/ov_serialnumber.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_serialnumber.html index a5f0f0c..abd01c7 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_serialnumber.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_serialnumber.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -54,11 +54,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_streams.html b/Dependencies/libvorbis/doc/vorbisfile/ov_streams.html similarity index 85% rename from libvorbis-1.0.1/doc/vorbisfile/ov_streams.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_streams.html index 997edcc..a8f2a62 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_streams.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_streams.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -51,11 +51,11 @@ functions.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_test.html b/Dependencies/libvorbis/doc/vorbisfile/ov_test.html similarity index 72% rename from libvorbis-1.0.1/doc/vorbisfile/ov_test.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_test.html index 9aa72d1..0975972 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_test.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_test.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -19,11 +19,21 @@

      This partially opens a vorbis file to test for Vorbis-ness. It loads -the headers for the first chain, and tests for seekability (but does not seek). +the headers for the first chain and tests for seekability (but does not seek). Use ov_test_open() to finish opening the file or ov_clear to close/free it.

      +

      WARNING for Windows developers: Do not use ov_test() +in Windows applications; Windows linking places restrictions on +passing FILE * handles successfully, and ov_test() runs afoul +of these restrictions [a] in exactly the same +way as ov_open(). See the ov_test_callbacks() page for +details on using ov_test_callbacks() instead. +

      + @@ -52,16 +51,30 @@ int main(){
      @@ -62,7 +72,7 @@ should contain the length (in bytes) of the buffer. Used together with init
    • less than zero for failure:
      • OV_EREAD - A read from media returned an error.
      • -
      • OV_ENOTVORBIS - Bitstream is not Vorbis data.
      • +
      • OV_ENOTVORBIS - Bitstream contains no Vorbis data.
      • OV_EVERSION - Vorbis version mismatch.
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • @@ -70,17 +80,19 @@ should contain the length (in bytes) of the buffer. Used together with init

        +

        Notes

        +All the notes from ov_open() apply to ov_test().


        - + - +

        copyright © 2003 Xiph.org

        copyright © 2007 Xiph.org

        Ogg Vorbis

        Vorbisfile documentation

        vorbisfile version 1.68 - 20030307

        vorbisfile version 1.2.0 - 20070723

        diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_test_callbacks.html b/Dependencies/libvorbis/doc/vorbisfile/ov_test_callbacks.html similarity index 63% rename from libvorbis-1.0.1/doc/vorbisfile/ov_test_callbacks.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_test_callbacks.html index edf798b..5d659cd 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_test_callbacks.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_test_callbacks.html @@ -9,7 +9,7 @@ - +

        Vorbisfile documentation

        vorbisfile version 1.68 - 20030307

        vorbisfile version 1.2.0 - 20070723

        @@ -18,7 +18,13 @@

        declared in "vorbis/vorbisfile.h";

        This is an alternative function used to open and test an OggVorbis_File -structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structures. +structure when using a data source other than a file, +when its necessary to modify default file access behavior, or to +test for Vorbis content from a FILE * pointer under +Windows where ov_test() cannot be used. It +allows the application to specify custom file manipulation routines +and sets up all the related decoding structures. +

        Once this has been called, the same OggVorbis_File struct should be passed to all the libvorbisfile functions.

        @@ -52,7 +58,7 @@ should be a pointer to a buffer containing the data read. read from the file and the stream is not seekable. In this case, ibytes should contain the length (in bytes) of the buffer. Used together with initial.

        callbacks
        -
        Pointer to a completed ov_callbacks struct which indicates desired custom file manipulation routines.
        +
        A completed ov_callbacks struct which indicates desired custom file manipulation routines. vorbisfile.h defines several preprovided callback sets; see ov_callbacks for details.
        @@ -62,7 +68,7 @@ should contain the length (in bytes) of the buffer. Used together with init
      • less than zero for failure:
        • OV_EREAD - A read from media returned an error.
        • -
        • OV_ENOTVORBIS - Bitstream is not Vorbis data.
        • +
        • OV_ENOTVORBIS - Bitstream contains no Vorbis data.
        • OV_EVERSION - Vorbis version mismatch.
        • OV_EBADHEADER - Invalid Vorbis bitstream header.
        • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
        • @@ -70,18 +76,33 @@ should contain the length (in bytes) of the buffer. Used together with init

          +

          Notes

          +
          + +
          [a] Windows and use as an ov_test() substitute

          Windows +applications should not use ov_test() due +to the likelihood of CRT linking +mismatches and runtime protection faults +[ov_open:a]. ov_test_callbacks() is a safe substitute; specifically: +

          ov_test_callbacks(f, vf, initial, ibytes, OV_CALLBACKS_DEFAULT);
          +
          +... provides exactly the same functionality as ov_test() but will always work correctly under +Windows, regardless of linking setup details.

          + +




          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_test_open.html b/Dependencies/libvorbis/doc/vorbisfile/ov_test_open.html similarity index 89% rename from libvorbis-1.0.1/doc/vorbisfile/ov_test_open.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_test_open.html index c0a320c..d379311 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_test_open.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_test_open.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -62,11 +62,11 @@ struct should be passed to all the libvorbisfile functions.
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_seek.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_seek.html index a4d4071..28376b1 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -69,11 +69,11 @@ nonzero indicates failure, described by several error codes:
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_lap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_lap.html similarity index 93% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_lap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_lap.html index fbb6290..b609818 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_lap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_lap.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -92,11 +92,11 @@ nonzero indicates failure, described by several error codes:
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page.html index 8790422..40e410a 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -70,11 +70,11 @@ nonzero indicates failure, described by several error codes:
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page_lap.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page_lap.html similarity index 94% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page_lap.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page_lap.html index 003db33..75b02d3 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_seek_page_lap.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page_lap.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -99,11 +99,11 @@ nonzero indicates failure, described by several error codes:
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_tell.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_tell.html similarity index 86% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_tell.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_tell.html index e2c0af5..a9bbe26 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_tell.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_tell.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -50,11 +50,11 @@ functions.
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_time_total.html b/Dependencies/libvorbis/doc/vorbisfile/ov_time_total.html similarity index 84% rename from libvorbis-1.0.1/doc/vorbisfile/ov_time_total.html rename to Dependencies/libvorbis/doc/vorbisfile/ov_time_total.html index a0dcae1..d691dea 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_time_total.html +++ b/Dependencies/libvorbis/doc/vorbisfile/ov_time_total.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -46,7 +46,7 @@ functions.
        • OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable.
        • n total length in seconds of content if i=-1.
        • -
        • n length in seconds of logical bitstream if i=1 to n.
        • +
        • n length in seconds of logical bitstream if i=0 to n.
        • @@ -54,11 +54,11 @@ functions.


          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/overview.html b/Dependencies/libvorbis/doc/vorbisfile/overview.html similarity index 88% rename from libvorbis-1.0.1/doc/vorbisfile/overview.html rename to Dependencies/libvorbis/doc/vorbisfile/overview.html index 8fe77e9..cf49119 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/overview.html +++ b/Dependencies/libvorbis/doc/vorbisfile/overview.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -47,11 +47,11 @@ via callbacks
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/reference.html b/Dependencies/libvorbis/doc/vorbisfile/reference.html similarity index 87% rename from libvorbis-1.0.1/doc/vorbisfile/reference.html rename to Dependencies/libvorbis/doc/vorbisfile/reference.html index 4fda395..c18ab2b 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/reference.html +++ b/Dependencies/libvorbis/doc/vorbisfile/reference.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -23,6 +23,7 @@ ov_callbacks

          Setup/Teardown
          +ov_fopen()
          ov_open()
          ov_open_callbacks()
          ov_clear()
          @@ -32,6 +33,8 @@
          Decoding
          ov_read()
          +ov_read_float()
          +ov_read_filter()
          ov_crosslap()

          Seeking
          @@ -68,11 +71,11 @@
          - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/return.html b/Dependencies/libvorbis/doc/vorbisfile/return.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/return.html rename to Dependencies/libvorbis/doc/vorbisfile/return.html index 8aa4691..5349a2f 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/return.html +++ b/Dependencies/libvorbis/doc/vorbisfile/return.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -64,11 +64,11 @@ is normally automatic and this return code is for informational purposes only. - + - +

          copyright © 2003 Xiph.org

          copyright © 2007 Xiph.org

          Ogg Vorbis

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          diff --git a/libvorbis-1.0.1/doc/vorbisfile/seekexample.html b/Dependencies/libvorbis/doc/vorbisfile/seekexample.html similarity index 78% rename from libvorbis-1.0.1/doc/vorbisfile/seekexample.html rename to Dependencies/libvorbis/doc/vorbisfile/seekexample.html index 664ddcd..ef0259a 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/seekexample.html +++ b/Dependencies/libvorbis/doc/vorbisfile/seekexample.html @@ -9,7 +9,7 @@ - +

          Vorbisfile documentation

          vorbisfile version 1.68 - 20030307

          vorbisfile version 1.2.0 - 20070723

          @@ -32,7 +32,6 @@ First, relevant headers, including vorbis-specific "codec.h" and "vorbisfile.h" #include <stdio.h> #include "vorbis/codec.h" #include "vorbis/vorbisfile.h" -#include "../lib/misc.h"
      -

      ov_open() must be +

      This example takes its input on stdin which is in 'text' mode by default under Windows; this will corrupt the input data unless set to binary mode. This applies only to Windows. +

      + + + + +
      +
      
      +#ifdef _WIN32 /* We need to set stdin to binary mode under Windows */
      +  _setmode( _fileno( stdin ), _O_BINARY );
      +#endif
      +
      +
      + +

      ov_open() must be called to initialize the OggVorbis_File structure with default values. -ov_open() also checks to ensure that we're reading Vorbis format and not something else. +ov_open_callbacks() also checks to ensure that we're reading Vorbis format and not something else.

      
      -  if(ov_open(stdin,&ov,NULL,-1)<0){
      +  if(ov_open_callbacks(stdin,&ov,NULL,-1, OV_CALLBACKS_NOCLOSE)<0){
           printf("Could not open input as an OggVorbis file.\n\n");
           exit(1);
         }
      @@ -126,11 +139,11 @@ distribution in seeking_test.c.
       
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/seeking.html b/Dependencies/libvorbis/doc/vorbisfile/seeking.html similarity index 93% rename from libvorbis-1.0.1/doc/vorbisfile/seeking.html rename to Dependencies/libvorbis/doc/vorbisfile/seeking.html index e570d5a..19f0717 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/seeking.html +++ b/Dependencies/libvorbis/doc/vorbisfile/seeking.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -94,11 +94,11 @@ nonseekable files and streams.
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/seeking_example_c.html b/Dependencies/libvorbis/doc/vorbisfile/seeking_example_c.html similarity index 80% rename from libvorbis-1.0.1/doc/vorbisfile/seeking_example_c.html rename to Dependencies/libvorbis/doc/vorbisfile/seeking_example_c.html index 87c47e8..101745f 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/seeking_example_c.html +++ b/Dependencies/libvorbis/doc/vorbisfile/seeking_example_c.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -28,14 +28,17 @@ The example program source: #include #include "vorbis/codec.h" #include "vorbis/vorbisfile.h" -#include "../lib/misc.h" int main(){ OggVorbis_File ov; int i; +#ifdef _WIN32 /* We need to set stdin to binary mode under Windows */ + _setmode( _fileno( stdin ), _O_BINARY ); +#endif + /* open the file/pipe on stdin */ - if(ov_open(stdin,&ov,NULL,-1)==-1){ + if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)==-1){ printf("Could not open input as an OggVorbis file.\n\n"); exit(1); } @@ -70,11 +73,11 @@ int main(){
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/seeking_test_c.html b/Dependencies/libvorbis/doc/vorbisfile/seeking_test_c.html similarity index 80% rename from libvorbis-1.0.1/doc/vorbisfile/seeking_test_c.html rename to Dependencies/libvorbis/doc/vorbisfile/seeking_test_c.html index 87c47e8..101745f 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/seeking_test_c.html +++ b/Dependencies/libvorbis/doc/vorbisfile/seeking_test_c.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -28,14 +28,17 @@ The example program source: #include #include "vorbis/codec.h" #include "vorbis/vorbisfile.h" -#include "../lib/misc.h" int main(){ OggVorbis_File ov; int i; +#ifdef _WIN32 /* We need to set stdin to binary mode under Windows */ + _setmode( _fileno( stdin ), _O_BINARY ); +#endif + /* open the file/pipe on stdin */ - if(ov_open(stdin,&ov,NULL,-1)==-1){ + if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)==-1){ printf("Could not open input as an OggVorbis file.\n\n"); exit(1); } @@ -70,11 +73,11 @@ int main(){
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/seekingexample.html b/Dependencies/libvorbis/doc/vorbisfile/seekingexample.html similarity index 94% rename from libvorbis-1.0.1/doc/vorbisfile/seekingexample.html rename to Dependencies/libvorbis/doc/vorbisfile/seekingexample.html index a137786..73c02ac 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/seekingexample.html +++ b/Dependencies/libvorbis/doc/vorbisfile/seekingexample.html @@ -80,23 +80,22 @@ int main(int argc, char **argv){ #ifdef _WIN32 _setmode( _fileno( stdin ), _O_BINARY ); - _setmode( _fileno( stdout ), _O_BINARY ); #endif
      -

      ov_open() must be +

      ov_open_callbacks() must be called to initialize the OggVorbis_File structure with default values. -ov_open() also checks to ensure that we're reading Vorbis format and not something else. +ov_open_callbacks() also checks to ensure that we're reading Vorbis format and not something else.

      
      -  if(ov_open(stdin, &vf, NULL, 0) < 0) {
      +  if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) {
             fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
             exit(1);
         }
      diff --git a/libvorbis-1.0.1/doc/vorbisfile/style.css b/Dependencies/libvorbis/doc/vorbisfile/style.css
      similarity index 100%
      rename from libvorbis-1.0.1/doc/vorbisfile/style.css
      rename to Dependencies/libvorbis/doc/vorbisfile/style.css
      diff --git a/libvorbis-1.0.1/doc/vorbisfile/threads.html b/Dependencies/libvorbis/doc/vorbisfile/threads.html
      similarity index 86%
      rename from libvorbis-1.0.1/doc/vorbisfile/threads.html
      rename to Dependencies/libvorbis/doc/vorbisfile/threads.html
      index f3acc82..ebfb9f9 100644
      --- a/libvorbis-1.0.1/doc/vorbisfile/threads.html
      +++ b/Dependencies/libvorbis/doc/vorbisfile/threads.html
      @@ -9,7 +9,7 @@
       
      -
      +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -37,11 +37,11 @@ href="OggVorbis_File.html">OggVorbis_File instance may be used safely from m
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/vorbis_comment.html b/Dependencies/libvorbis/doc/vorbisfile/vorbis_comment.html similarity index 90% rename from libvorbis-1.0.1/doc/vorbisfile/vorbis_comment.html rename to Dependencies/libvorbis/doc/vorbisfile/vorbis_comment.html index cf36786..ba81ad7 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/vorbis_comment.html +++ b/Dependencies/libvorbis/doc/vorbisfile/vorbis_comment.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -57,11 +57,11 @@ or set to some reasonable default (usually 0).
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/vorbis_info.html b/Dependencies/libvorbis/doc/vorbisfile/vorbis_info.html similarity index 91% rename from libvorbis-1.0.1/doc/vorbisfile/vorbis_info.html rename to Dependencies/libvorbis/doc/vorbisfile/vorbis_info.html index f97eedc..54bd621 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/vorbis_info.html +++ b/Dependencies/libvorbis/doc/vorbisfile/vorbis_info.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -67,11 +67,11 @@ The vorbis_info structure contains basic information about the audio in a vorbis
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/libvorbis-1.0.1/doc/vorbisfile/vorbisfile_example_c.html b/Dependencies/libvorbis/doc/vorbisfile/vorbisfile_example_c.html similarity index 88% rename from libvorbis-1.0.1/doc/vorbisfile/vorbisfile_example_c.html rename to Dependencies/libvorbis/doc/vorbisfile/vorbisfile_example_c.html index bdb9f61..f9f1873 100644 --- a/libvorbis-1.0.1/doc/vorbisfile/vorbisfile_example_c.html +++ b/Dependencies/libvorbis/doc/vorbisfile/vorbisfile_example_c.html @@ -9,7 +9,7 @@ - +

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      @@ -46,7 +46,7 @@ int main(int argc, char **argv){ _setmode( _fileno( stdout ), _O_BINARY ); #endif - if(ov_open(stdin, &vf, NULL, 0) < 0) { + if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) { fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); exit(1); } @@ -93,11 +93,11 @@ int main(int argc, char **argv){
      - + - +

      copyright © 2003 Xiph.org

      copyright © 2007 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      vorbisfile version 1.2.0 - 20070723

      diff --git a/Dependencies/libvorbis/doc/vorbisword2.png b/Dependencies/libvorbis/doc/vorbisword2.png new file mode 100644 index 0000000000000000000000000000000000000000..2d050aac4d7d0b6f7968dff9cdf0fba53da499a8 GIT binary patch literal 1173 zcmV;G1Zw+CFg&mJBeR#sFxIy_=#WbW?ly1KOg|NpMBtnU8o&f3fo>3%f; z00bRLL_t(|UhUc0j^ip224L61;;m=i|7i~f%D-`}mXpkBO-9sB2ilSNR7F9OVg09~ zbN-s>oX+W-&gq=a>735#oX+W-&gq=a>735#oX+W-&gq=a>735#9Qkp8Bi8?gvrIYk zCrM#Q5igLDiS7S5pOQ(S{E#yYV~KgdAVvAT_*=$zD7YG$ueG5*rhz^^m*q z)_BFCA;oJPXyy!1c%G}8&;T)fmh*mg+?2vqz)SU}X#uWTrM}8}fA6Rz$I5Mz+YnSc zH`$UGIq!EikAz_K5VM~z7&aN3YICstJV!SG8DO5S(lc)lk(`9Q%c-e0K2{!W(e^XR z({kVtwVgu*Pp6P4IC=dG)_55DFH%~57tN$TD}MVg{qkw@*w@3c+OUx&4kc_e#4&et zw>1yr2n09HYC-k<9TeM>B?}63i1B#~mgWoNYzuYl@Z|w6+Q=GrZX- z6J6m@2r(&b`?)Nxv@o#bx5vAjC3CPb$T*ZGOG(U3rPvB~Ddu0gbKKz=je}s)p%}5v z0wv&B21CKSfJb)DSo2KxIeNw6bW(=UGGbcCz-r+1)96EDW#8_)Z25x6C_@0Ba7_Jl%p!<7A zS`I&O=!)Y{7ahreU7HZ3>RS$;2Zu@rXNYcgHY`j_F8qG}2)ur>4MlbDAf)cf>UyLuppa7$W9!a)bUEP7NJPhU69pODqAMXm)BAus{Bn zGX~ezVbp| z+5-pc9BV~^!ox_@ge68Z+g=v$hb*@E`~mI)wkEU*BfpLQ%rHy-hMn n|1q(1I;V3wr*k^zABz6~BYWxfsM){X00000NkvXXu0mjf*MUUY literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/wait.png b/Dependencies/libvorbis/doc/wait.png new file mode 100644 index 0000000000000000000000000000000000000000..39d9c8a3ec57b80488b49c5da9fde19db90cc70c GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U_3?xrvihTr9asfUeu0Xn>h2h5^h7DU7JX{2T z;KmJs6I(16^cejA|KBp6?I2La6;Bt(kczm}Nw$2440u{&XY88#!8%CX$hnqDK!$;Z zUBP)q%R-EIigp!n_elps#w}yRMt+4(`top^5lekoqZWV|1o&F`njxg HN@xNAO2&Z$ literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/white-xifish.png b/Dependencies/libvorbis/doc/white-xifish.png new file mode 100644 index 0000000000000000000000000000000000000000..409b9a6f5019a921279798f85b7d3c55ac099396 GIT binary patch literal 770 zcmV+d1O5DoP)_Zfr`2O#>WUXD|ipn$a zL|u6Xj!@zmI6{eM;0Pt2fg_Z7298kT88||TXW$4WF~+wB@5O#42EY={xTJ_j1W)}u z&b5oZ`XtvI5IOAz8YC+hRbp>t+g3aVOlht7=); zNMkQN>$C!}i15|OS%U^zEH$TYOIr$E8raO(3y#5NJW0Lpq7%?{HL>X+DWpb6xAL%7uh4ge1l3aCDvJJz~q?g_O84H=3lT;89 zU@;#l$dBWwD~Z=d+LNFB~-__8g%5 zdBuvU>o^gZ`&p5(}XB=U~GbSA385JJ!j3>VT0<22C@OVaA`~Uy|07*qoM6N<$f{^}R A%m4rY literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/window1.png b/Dependencies/libvorbis/doc/window1.png new file mode 100644 index 0000000000000000000000000000000000000000..968bd3fe975ad8b2c2a66f839289d042f0f11ebe GIT binary patch literal 1703 zcmXw4dpMMB8XsgD%!IO-NzOB*CcLAvh-8#GG)}YXN;RtY%UQ^FG88cgp)v7(nXsZ2 zyAfkY#?U%^=5t7rLwzwHL((|y`Y=he?{r;zU)S^8zx%nL-+ldl|2$8YAL9f@8>fvx zATSgkasUFM?g-FyI$-N>bX9XDN2_!q8_e zl;~Yyx2PUt6Vj#atILx4^g9vklSEZiY7eVFS(r|Vcr|M$%+#j7uM61}*7T>PCL9Fz z?gj5OwzRoHh4XGunoho_H$|ZC`rvPi5VOwpxx?|zPj8F`B+VIZaBaXk3XC8U0Ko_? zVRnpkCiFgor^C*xM)*Z~5|0wUu0xH=7Vbms0~M8(l}xW1QGQ=`&=;1&=Tz{FACTQ= z+0fHD`aHXD&q3YN9k&X?Sp|KTR%WYD*@JG7+xMD(t@tbV**)D=ioOP1%1LhGV^*4r z8T+HGNt~{S9S!>b&7zD+cXt>VmF6yY7Uut5?5Lk%Vw_8l3A!oo^~w(X=1*2n&l#z& zN;sPBMR)2fCTRTLB7XB}+Tm8L!&=4Q5!Ux=XW3i@=y7lPQ-%j5^> zq}87;!EmQrqJcvC<#l)Y_ENkncB&)eLQXadm;4w#w>%S*o!yqExdUup690f%=X&&( z+(8xZ;)aR$HP#}mgH|jhBSi|1Er*pbGGa5+X|)(;d&$}_b3gRo8-E6hQ?nLPnswsf+9bR+h=DzaovxS8G|s%1o~)-f$tWS`X8Qa~x+pf{ojp{`RRh~b{%S>1XCB9sLd?Bt^RpZnFyXomHuD&v-MN4Sm2UDVLqODMpZ@NciGn;=+Ol%t}f{^P}T_Omp-^vYWieojS!JP}QRv>3>-(?8ahO zTl@=6$R^buN}&K!F0p&3Aq!~sSQ1GJ*2l94vy`x|qeMWa&IIUji}d9%GSS|ME(%Fz zaq4?^(OT}7bAqt7#D}yv}mzzS5So-MBDm2~2ypWI4ZA?z)rQlt>^m};b z?=KAc`(dhJQJ0I^m7i^SgTxSFNvSG9C3R1ZrIc|IH7z?r8b6ndwJPiU{Nz-{DB3L- z@iWICh9J+~3+c9w8!qwFB!t5E;H^aD12e2!AB*yT=gDX-1*fHw6D{Zm1dk0=H-+y&1WI@lOz>obPvq>s{yu%pqV4C9 zVH@)iF;P?d)WkZn|J>PQ-h+Mp1Yl{kihZ*l#QfPn)_}{H*7YV5Mj~jSP3jf3nfJc<|z?V_&Z2)Pt z$`sp;Zc-)o{QHUojgxyJ+zb;F$xPp+Imp|qxyJ#2SM;x_A4DOJI1;7ZWo{78O*rF7_C ze=T0Nl`8vy?(+Z$JUKM3p2C-|$i=EaurvJjGSPPW?5wnV5HL`DC!OdJXHCr!b3 zPRMZH)a8KV>2Z=pvV>qsK=B5c7!CGuYALY(ir&#D$GWw#TGvy+b~zYl*1gFF<-OJL zVZc0TUdC!Rs3*zEoY@pF>zk>jf;|MZHKlf7x`9-;78Zq1@ybI4uGf!&3$*byZ^DX8 zt}UnVnIOtY07=FOJ;%M)m9C-UDi7|_!X`7yCYk3VjU21twg1xd%y$o77`(Xph&hPe zYM3}-M$1X#8w~w@fr<0vFh4txnov7mb9Yl;j3an9hw$%oEUvr?k8w=UNCbnQAr=lg zWlMw1)fh)RxphNvjhw@GE}ik@)i0>x?hAoxdJ57%PZN zs<_d2=%1d55n{gNQa8<*M!&6kMbFnT6$i>_HIsLple2mhX_FsMrqqI`w@skB8A!@*`a>{tQpet literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/doc/xifish.pdf b/Dependencies/libvorbis/doc/xifish.pdf new file mode 100644 index 0000000000000000000000000000000000000000..631ce5c469aff2056f9e0e88d033a8e1afacd25a GIT binary patch literal 1876 zcmZuy4K!3~7~Zr}my;-)ezafWG*fc#ogYKR5)G4`XvkE4GG^|KVHn-HGL$6MmcO=5 zs92TGs*X}AQmsN_Qdp@C{rE|2evC4@g>vJ zrgiaE_#&3h?*sgIRzEH9YwDk~-^PyF!a4lGx2^Gc)nwbe`n)7J+QucVOX6niE7O{x z-FNA?gh!&NmbcenxFTgU5jhmZnU}ATfR~OIcXT{h)sdq;kay*ZNp4-r6S@gUbT6rYX|l%&tN(~lDP%WhCj^iXeu?OJC_qSxnkxh0pd1Iw})__2FIht^-Zc1q{Y z(){VpZMK>l6g#C6X4Hyq0%S3|=aJl({e zS5;c+4y!fmBmbzq$iIBddCjeqCtK#8@>^)&8*7zOo|bce@}VmYmDFgyb?2o`$4!}S zzv%h5{~W)d*d3r(_hnS?Ear~r(^A_{R9wBGVWb%=#J6mx=D{jeK*a3X>~bGxZfRZD zW9rk#G=ny?(&3C6y;q|p`1A_wV)0s!`q&t|RI`q)uzoi)_O^X#ofpeeTgSQo$;?^l zt*~R;X_1z0h~IP0Q>t-v-SU}|-Vh_2M$k|)tFLlT4a0g}pYw_Es9W8I(MxsuOXp51 zGz@c6?Q>Ff(+zfsyfr!=$+*oI;?J^2zbW-x$W3od9=f2PC#IbHP)K2)>Be8^4aEn> zqLdwBHEF#ez9Pfi0e#)`IivRHy~GxS37JvU=laV+T^RVv%4C>scck;srUNVOrmGI# zH3^u*>@?Ok+;TTFHmW^3rJ?tO%3XIdZ6^#D=J7`hxo?qU*S?p#jn|uPg-O5@o^j>KZ%zm^+xnvTy>2{oX zwO^$7OU^>AIBA$z8Cw6csNrVf`+;?uqLKDS>r2>vNwjlLP=lG zc7{(;X5F>pMqRY!8M+jslF;&gX#a@$;bjF$czj+&0Huc-F|6G2^qJZ6wyNPdy;Y01 z9a*IM-s?jRZ|8ljRBwq6()(v?^^nWKnak7ndS;jHj*lz}HM%(~>fOPVR>|AYq92^TK0A1}tB#bHKp|}uJknZG)%Y|+j;R%!eMJiS+2}idvk>wbdG$+_z9!!vG z1yGwB4@l)N4NmlXXh9aq{52!Tv4 z`4r+~rW02&zT{8j39l6dVK9#YyYpa2af)71)&h)(hvf$%n>FPg59Nr45KKeA^zrAh=K&{N&6<` zI7KX#&_vi);DO-^sXQ3a&1t|@KnVS1*j7vi=t7cf7fSe(RJA&YY^<$J8lnJR6fU_B zH#0NyqEc;a#`~+pF)@SyD+u|#fCZCDX96)8$51+roDuZ`!Jjb(i)`Ol7|nvL{ws{m zBEQgA7)mDx=t~Si(Es6~|KXtw2HDe3S^^hHWf)HW0RikLjlh5vAm>p|j)A)G0OkaX brate,vi->channels,ov_bitrate(&ov,i)/1000, - ov_serialnumber(&ov,i)); + vi->rate,vi->channels,ov_bitrate(&ov,i)/1000, + ov_serialnumber(&ov,i)); printf("\t\theader length: %ld bytes\n",(long) - (ov.dataoffsets[i]-ov.offsets[i])); + (ov.dataoffsets[i]-ov.offsets[i])); printf("\t\tcompressed length: %ld bytes\n",(long)(ov_raw_total(&ov,i))); printf("\t\tplay time: %lds\n",(long)ov_time_total(&ov,i)); } diff --git a/Dependencies/libvorbis/examples/decoder_example.c b/Dependencies/libvorbis/examples/decoder_example.c new file mode 100644 index 0000000..1cd7e34 --- /dev/null +++ b/Dependencies/libvorbis/examples/decoder_example.c @@ -0,0 +1,314 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: simple example decoder + last mod: $Id: decoder_example.c 16243 2009-07-10 02:49:31Z xiphmont $ + + ********************************************************************/ + +/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to + stdout. Decodes simple and chained OggVorbis files from beginning + to end. Vorbisfile.a is somewhat more complex than the code below. */ + +/* Note that this is POSIX, not ANSI code */ + +#include +#include +#include +#include + +#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ +#include +#include +#endif + +#if defined(__MACOS__) && defined(__MWERKS__) +#include /* CodeWarrior's Mac "command-line" support */ +#endif + +ogg_int16_t convbuffer[4096]; /* take 8k out of the data segment, not the stack */ +int convsize=4096; + +extern void _VDBG_dump(void); + +int main(){ + ogg_sync_state oy; /* sync and verify incoming physical bitstream */ + ogg_stream_state os; /* take physical pages, weld into a logical + stream of packets */ + ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */ + ogg_packet op; /* one raw packet of data for decode */ + + vorbis_info vi; /* struct that stores all the static vorbis bitstream + settings */ + vorbis_comment vc; /* struct that stores all the bitstream user comments */ + vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ + vorbis_block vb; /* local working space for packet->PCM decode */ + + char *buffer; + int bytes; + +#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ + /* Beware the evil ifdef. We avoid these where we can, but this one we + cannot. Don't add any more, you'll probably go to hell if you do. */ + _setmode( _fileno( stdin ), _O_BINARY ); + _setmode( _fileno( stdout ), _O_BINARY ); +#endif + +#if defined(macintosh) && defined(__MWERKS__) + { + int argc; + char **argv; + argc=ccommand(&argv); /* get a "command line" from the Mac user */ + /* this also lets the user set stdin and stdout */ + } +#endif + + /********** Decode setup ************/ + + ogg_sync_init(&oy); /* Now we can read pages */ + + while(1){ /* we repeat if the bitstream is chained */ + int eos=0; + int i; + + /* grab some data at the head of the stream. We want the first page + (which is guaranteed to be small and only contain the Vorbis + stream initial header) We need the first page to get the stream + serialno. */ + + /* submit a 4k block to libvorbis' Ogg layer */ + buffer=ogg_sync_buffer(&oy,4096); + bytes=fread(buffer,1,4096,stdin); + ogg_sync_wrote(&oy,bytes); + + /* Get the first page. */ + if(ogg_sync_pageout(&oy,&og)!=1){ + /* have we simply run out of data? If so, we're done. */ + if(bytes<4096)break; + + /* error case. Must not be Vorbis data */ + fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); + exit(1); + } + + /* Get the serial number and set up the rest of decode. */ + /* serialno first; use it to set up a logical stream */ + ogg_stream_init(&os,ogg_page_serialno(&og)); + + /* extract the initial header from the first page and verify that the + Ogg bitstream is in fact Vorbis data */ + + /* I handle the initial header first instead of just having the code + read all three Vorbis headers at once because reading the initial + header is an easy way to identify a Vorbis bitstream and it's + useful to see that functionality seperated out. */ + + vorbis_info_init(&vi); + vorbis_comment_init(&vc); + if(ogg_stream_pagein(&os,&og)<0){ + /* error; stream version mismatch perhaps */ + fprintf(stderr,"Error reading first page of Ogg bitstream data.\n"); + exit(1); + } + + if(ogg_stream_packetout(&os,&op)!=1){ + /* no page? must not be vorbis */ + fprintf(stderr,"Error reading initial header packet.\n"); + exit(1); + } + + if(vorbis_synthesis_headerin(&vi,&vc,&op)<0){ + /* error case; not a vorbis header */ + fprintf(stderr,"This Ogg bitstream does not contain Vorbis " + "audio data.\n"); + exit(1); + } + + /* At this point, we're sure we're Vorbis. We've set up the logical + (Ogg) bitstream decoder. Get the comment and codebook headers and + set up the Vorbis decoder */ + + /* The next two packets in order are the comment and codebook headers. + They're likely large and may span multiple pages. Thus we read + and submit data until we get our two packets, watching that no + pages are missing. If a page is missing, error out; losing a + header page is the only place where missing data is fatal. */ + + i=0; + while(i<2){ + while(i<2){ + int result=ogg_sync_pageout(&oy,&og); + if(result==0)break; /* Need more data */ + /* Don't complain about missing or corrupt data yet. We'll + catch it at the packet output phase */ + if(result==1){ + ogg_stream_pagein(&os,&og); /* we can ignore any errors here + as they'll also become apparent + at packetout */ + while(i<2){ + result=ogg_stream_packetout(&os,&op); + if(result==0)break; + if(result<0){ + /* Uh oh; data at some point was corrupted or missing! + We can't tolerate that in a header. Die. */ + fprintf(stderr,"Corrupt secondary header. Exiting.\n"); + exit(1); + } + result=vorbis_synthesis_headerin(&vi,&vc,&op); + if(result<0){ + fprintf(stderr,"Corrupt secondary header. Exiting.\n"); + exit(1); + } + i++; + } + } + } + /* no harm in not checking before adding more */ + buffer=ogg_sync_buffer(&oy,4096); + bytes=fread(buffer,1,4096,stdin); + if(bytes==0 && i<2){ + fprintf(stderr,"End of file before finding all Vorbis headers!\n"); + exit(1); + } + ogg_sync_wrote(&oy,bytes); + } + + /* Throw the comments plus a few lines about the bitstream we're + decoding */ + { + char **ptr=vc.user_comments; + while(*ptr){ + fprintf(stderr,"%s\n",*ptr); + ++ptr; + } + fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi.channels,vi.rate); + fprintf(stderr,"Encoded by: %s\n\n",vc.vendor); + } + + convsize=4096/vi.channels; + + /* OK, got and parsed all three headers. Initialize the Vorbis + packet->PCM decoder. */ + if(vorbis_synthesis_init(&vd,&vi)==0){ /* central decode state */ + vorbis_block_init(&vd,&vb); /* local state for most of the decode + so multiple block decodes can + proceed in parallel. We could init + multiple vorbis_block structures + for vd here */ + + /* The rest is just a straight decode loop until end of stream */ + while(!eos){ + while(!eos){ + int result=ogg_sync_pageout(&oy,&og); + if(result==0)break; /* need more data */ + if(result<0){ /* missing or corrupt data at this page position */ + fprintf(stderr,"Corrupt or missing data in bitstream; " + "continuing...\n"); + }else{ + ogg_stream_pagein(&os,&og); /* can safely ignore errors at + this point */ + while(1){ + result=ogg_stream_packetout(&os,&op); + + if(result==0)break; /* need more data */ + if(result<0){ /* missing or corrupt data at this page position */ + /* no reason to complain; already complained above */ + }else{ + /* we have a packet. Decode it */ + float **pcm; + int samples; + + if(vorbis_synthesis(&vb,&op)==0) /* test for success! */ + vorbis_synthesis_blockin(&vd,&vb); + /* + + **pcm is a multichannel float vector. In stereo, for + example, pcm[0] is left, and pcm[1] is right. samples is + the size of each channel. Convert the float values + (-1.<=range<=1.) to whatever PCM format and write it out */ + + while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){ + int j; + int clipflag=0; + int bout=(samples32767){ + val=32767; + clipflag=1; + } + if(val<-32768){ + val=-32768; + clipflag=1; + } + *ptr=val; + ptr+=vi.channels; + } + } + + if(clipflag) + fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence)); + + + fwrite(convbuffer,2*vi.channels,bout,stdout); + + vorbis_synthesis_read(&vd,bout); /* tell libvorbis how + many samples we + actually consumed */ + } + } + } + if(ogg_page_eos(&og))eos=1; + } + } + if(!eos){ + buffer=ogg_sync_buffer(&oy,4096); + bytes=fread(buffer,1,4096,stdin); + ogg_sync_wrote(&oy,bytes); + if(bytes==0)eos=1; + } + } + + /* ogg_page and ogg_packet structs always point to storage in + libvorbis. They're never freed or manipulated directly */ + + vorbis_block_clear(&vb); + vorbis_dsp_clear(&vd); + }else{ + fprintf(stderr,"Error: Corrupt header during playback initialization.\n"); + } + + /* clean up this logical bitstream; before exit we see if we're + followed by another [chained] */ + + ogg_stream_clear(&os); + vorbis_comment_clear(&vc); + vorbis_info_clear(&vi); /* must be called last */ + } + + /* OK, clean up the framer */ + ogg_sync_clear(&oy); + + fprintf(stderr,"Done.\n"); + return(0); +} diff --git a/libvorbis-1.0.1/examples/encoder_example.c b/Dependencies/libvorbis/examples/encoder_example.c similarity index 78% rename from libvorbis-1.0.1/examples/encoder_example.c rename to Dependencies/libvorbis/examples/encoder_example.c index ffd6550..6eecf91 100644 --- a/libvorbis-1.0.1/examples/encoder_example.c +++ b/Dependencies/libvorbis/examples/encoder_example.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: simple example encoder - last mod: $Id: encoder_example.c,v 1.50 2002/07/16 09:26:07 xiphmont Exp $ + last mod: $Id: encoder_example.c 16946 2010-03-03 16:12:40Z xiphmont $ ********************************************************************/ @@ -41,12 +41,12 @@ signed char readbuffer[READ*4+44]; /* out of the data segment, not the stack */ int main(){ ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ + stream of packets */ ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */ ogg_packet op; /* one raw packet of data for decode */ - + vorbis_info vi; /* struct that stores all the static vorbis bitstream - settings */ + settings */ vorbis_comment vc; /* struct that stores all the user comments */ vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ @@ -62,14 +62,14 @@ int main(){ /* this also lets the user set stdin and stdout */ #endif - /* we cheat on the WAV header; we just bypass 44 bytes and never - verify that it matches 16bit/stereo/44.1kHz. This is just an - example, after all. */ + /* we cheat on the WAV header; we just bypass 44 bytes (simplest WAV + header is 44 bytes) and assume that the data is 44.1khz, stereo, 16 bit + little endian pcm samples. This is just an example, after all. */ #ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ /* if we were reading/writing a file, it would also need to in binary mode, eg, fopen("file.wav","wb"); */ - /* Beware the evil ifdef. We avoid these where we can, but this one we + /* Beware the evil ifdef. We avoid these where we can, but this one we cannot. Don't add any more, you'll probably go to hell if you do. */ _setmode( _fileno( stdin ), _O_BINARY ); _setmode( _fileno( stdout ), _O_BINARY ); @@ -85,8 +85,7 @@ int main(){ { fread(readbuffer,1,2,stdin); - if ( ! strncmp((char*)readbuffer, "da", 2) ) - { + if ( ! strncmp((char*)readbuffer, "da", 2) ){ founddata = 1; fread(readbuffer,1,6,stdin); break; @@ -103,30 +102,30 @@ int main(){ /********************************************************************* Encoding using a VBR quality mode. The usable range is -.1 (lowest quality, smallest file) to 1. (highest quality, largest file). - Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR - + Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR + ret = vorbis_encode_init_vbr(&vi,2,44100,.4); --------------------------------------------------------------------- Encoding using an average bitrate mode (ABR). - example: 44kHz stereo coupled, average 128kbps VBR - + example: 44kHz stereo coupled, average 128kbps VBR + ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1); --------------------------------------------------------------------- - Encode using a qulity mode, but select that quality mode by asking for + Encode using a quality mode, but select that quality mode by asking for an approximate bitrate. This is not ABR, it is true VBR, but selected using the bitrate interface, and then turning bitrate management off: ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) || - vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE_AVG,NULL) || + vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE2_SET,NULL) || vorbis_encode_setup_init(&vi)); *********************************************************************/ - ret=vorbis_encode_init_vbr(&vi,2,44100,.5); + ret=vorbis_encode_init_vbr(&vi,2,44100,0.1); /* do not continue if setup failed; this can happen if we ask for a mode that libVorbis does not support (eg, too low a bitrate, etc, @@ -141,7 +140,7 @@ int main(){ /* set up the analysis state and auxiliary encoding storage */ vorbis_analysis_init(&vd,&vi); vorbis_block_init(&vd,&vb); - + /* set up our packet->stream encoder */ /* pick a random serial number; that way we can more likely build chained streams just by concatenation */ @@ -162,22 +161,22 @@ int main(){ vorbis_analysis_headerout(&vd,&vc,&header,&header_comm,&header_code); ogg_stream_packetin(&os,&header); /* automatically placed in its own - page */ + page */ ogg_stream_packetin(&os,&header_comm); ogg_stream_packetin(&os,&header_code); - /* This ensures the actual - * audio data will start on a new page, as per spec - */ - while(!eos){ - int result=ogg_stream_flush(&os,&og); - if(result==0)break; - fwrite(og.header,1,og.header_len,stdout); - fwrite(og.body,1,og.body_len,stdout); - } + /* This ensures the actual + * audio data will start on a new page, as per spec + */ + while(!eos){ + int result=ogg_stream_flush(&os,&og); + if(result==0)break; + fwrite(og.header,1,og.header_len,stdout); + fwrite(og.body,1,og.body_len,stdout); + } } - + while(!eos){ long i; long bytes=fread(readbuffer,1,READ*4,stdin); /* stereo hardwired here */ @@ -194,15 +193,15 @@ int main(){ /* expose the buffer to submit data */ float **buffer=vorbis_analysis_buffer(&vd,READ); - + /* uninterleave samples */ for(i=0;i'AnalyzerGraph'); +my $Xname=$toplevel->Class; +$toplevel->optionAdd("$Xname.geometry", "800x600",20); + +my $geometry=$toplevel->optionGet('geometry',''); +$geometry=~/^(\d+)x(\d+)/; + +$toplevel->configure(-width=>$1); +$toplevel->configure(-height=>$2); + + + + + +$toplevel->optionAdd("$Xname.background", "#4fc627",20); +$toplevel->optionAdd("$Xname*highlightBackground", "#80c0d3",20); +$toplevel->optionAdd("$Xname.Panel.background", "#4fc627",20); +$toplevel->optionAdd("$Xname.Panel.foreground", "#d0d0d0",20); +$toplevel->optionAdd("$Xname.Panel.font", + '-*-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*',20); +$toplevel->optionAdd("$Xname*Statuslabel.font", + '-*-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*',20); +$toplevel->optionAdd("$Xname*Statuslabel.foreground", "#606060"); +$toplevel->optionAdd("$Xname*Status.font", + '-*-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*',20); + +$toplevel->optionAdd("$Xname*AlertDetail.font", + '-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*',20); + + +$toplevel->optionAdd("$Xname*background", "#d0d0d0",20); +$toplevel->optionAdd("$Xname*foreground", '#000000',20); + +$toplevel->optionAdd("$Xname*Button*background", "#f0d0b0",20); +$toplevel->optionAdd("$Xname*Button*foreground", '#000000',20); +$toplevel->optionAdd("$Xname*Button*borderWidth", '2',20); +$toplevel->optionAdd("$Xname*Button*relief", 'groove',20); +$toplevel->optionAdd("$Xname*Button*padY", 1,20); + +#$toplevel->optionAdd("$Xname*Scale*background", "#f0d0b0",20); +$toplevel->optionAdd("$Xname*Scale*foreground", '#000000',20); +$toplevel->optionAdd("$Xname*Scale*borderWidth", '1',20); +#$toplevel->optionAdd("$Xname*Scale*relief", 'groove',20); +$toplevel->optionAdd("$Xname*Scale*padY", 1,20); + +$toplevel->optionAdd("$Xname*Checkbutton*background", "#f0d0b0",20); +$toplevel->optionAdd("$Xname*Checkbutton*foreground", '#000000',20); +$toplevel->optionAdd("$Xname*Checkbutton*borderWidth", '2',20); +$toplevel->optionAdd("$Xname*Checkbutton*relief", 'groove',20); + +$toplevel->optionAdd("$Xname*activeBackground", "#ffffff",20); +$toplevel->optionAdd("$Xname*activeForeground", '#0000a0',20); +$toplevel->optionAdd("$Xname*borderWidth", 0,20); +$toplevel->optionAdd("$Xname*relief", 'flat',20); +$toplevel->optionAdd("$Xname*activeBorderWidth", 1,20); +$toplevel->optionAdd("$Xname*highlightThickness", 0,20); +$toplevel->optionAdd("$Xname*padX", 2,20); +$toplevel->optionAdd("$Xname*padY", 2,20); +$toplevel->optionAdd("$Xname*font", + '-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*',20); +$toplevel->optionAdd("$Xname*Entry.font", + '-*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*',20); +$toplevel->optionAdd("$Xname*Exit.font", + '-*-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*',20); +$toplevel->optionAdd("$Xname*Exit.relief", 'groove',20); +$toplevel->optionAdd("$Xname*Exit.padX", 1,20); +$toplevel->optionAdd("$Xname*Exit.padY", 1,20); +$toplevel->optionAdd("$Xname*Exit.borderWidth", 2,20); +$toplevel->optionAdd("$Xname*Exit*background", "#a0a0a0",20); +$toplevel->optionAdd("$Xname*Exit*disabledForeground", "#ffffff",20); + +#$toplevel->optionAdd("$Xname*Canvas.background", "#c0c0c0",20); + +$toplevel->optionAdd("$Xname*Entry.background", "#ffffff",20); +$toplevel->optionAdd("$Xname*Entry.disabledForeground", "#c0c0c0",20); +$toplevel->optionAdd("$Xname*Entry.relief", "sunken",20); +$toplevel->optionAdd("$Xname*Entry.borderWidth", 1,20); + +$toplevel->optionAdd("$Xname*Field.background", "#ffffff",20); +$toplevel->optionAdd("$Xname*Field.disabledForeground", "#c0c0c0",20); +$toplevel->optionAdd("$Xname*Field.relief", "flat",20); +$toplevel->optionAdd("$Xname*Field.borderWidth", 1,20); + +$toplevel->optionAdd("$Xname*Label.disabledForeground", "#c0c0c0",20); +$toplevel->optionAdd("$Xname*Label.borderWidth", 1,20); + +$toplevel->configure(-background=>$toplevel->optionGet("background","")); + +#$toplevel->resizable(FALSE,FALSE); + +my $panel=new MainWindow(-class=>'AnalyzerPanel'); +my $X2name=$panel->Class; + +$panel->optionAdd("$X2name.background", "#353535",20); +$panel->optionAdd("$X2name*highlightBackground", "#80c0d3",20); +$panel->optionAdd("$X2name.Panel.background", "#353535",20); +$panel->optionAdd("$X2name.Panel.foreground", "#4fc627",20); +$panel->optionAdd("$X2name.Panel.font", + '-*-helvetica-bold-o-*-*-18-*-*-*-*-*-*-*',20); +$panel->optionAdd("$X2name*Statuslabel.font", + '-*-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*',20); +$panel->optionAdd("$X2name*Statuslabel.foreground", "#4fc627",20); +$panel->optionAdd("$X2name*Status.font", + '-*-helvetica-bold-r-*-*-18-*-*-*-*-*-*-*',20); + +$panel->optionAdd("$X2name*AlertDetail.font", + '-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*',20); + + +$panel->optionAdd("$X2name*background", "#d0d0d0",20); +$panel->optionAdd("$X2name*foreground", '#000000',20); + +$panel->optionAdd("$X2name*Button*background", "#f0d0b0",20); +$panel->optionAdd("$X2name*Button*foreground", '#000000',20); +$panel->optionAdd("$X2name*Button*borderWidth", '2',20); +$panel->optionAdd("$X2name*Button*relief", 'groove',20); +$panel->optionAdd("$X2name*Button*padY", 1,20); + +$panel->optionAdd("$X2name*Checkbutton*background", "#f0d0b0",20); +$panel->optionAdd("$X2name*Checkbutton*foreground", '#000000',20); +$panel->optionAdd("$X2name*Checkbutton*borderWidth", '2',20); +#$panel->optionAdd("$X2name*Checkbutton*padX", '0',20); +#$panel->optionAdd("$X2name*Checkbutton*padY", '0',20); +#$panel->optionAdd("$X2name*Checkbutton*relief", 'groove',20); + +$panel->optionAdd("$X2name*activeBackground", "#ffffff",20); +$panel->optionAdd("$X2name*activeForeground", '#0000a0',20); +$panel->optionAdd("$X2name*borderWidth", 0,20); +$panel->optionAdd("$X2name*relief", 'flat',20); +$panel->optionAdd("$X2name*activeBorderWidth", 1,20); +$panel->optionAdd("$X2name*highlightThickness", 0,20); +$panel->optionAdd("$X2name*padX", 2,20); +$panel->optionAdd("$X2name*padY", 2,20); +$panel->optionAdd("$X2name*font", + '-*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*',20); +$panel->optionAdd("$X2name*Entry.font", + '-*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*',20); + +$panel->optionAdd("$X2name*Exit.font", + '-*-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*',20); +$panel->optionAdd("$X2name*Exit.relief", 'groove',20); +$panel->optionAdd("$X2name*Exit.padX", 1,20); +$panel->optionAdd("$X2name*Exit.padY", 1,20); +$panel->optionAdd("$X2name*Exit.borderWidth", 2,20); +$panel->optionAdd("$X2name*Exit*background", "#a0a0a0",20); +$panel->optionAdd("$X2name*Exit*disabledForeground", "#ffffff",20); + +$panel->optionAdd("$X2name*Entry.background", "#ffffff",20); +$panel->optionAdd("$X2name*Entry.disabledForeground", "#c0c0c0",20); +$panel->optionAdd("$X2name*Entry.relief", "sunken",20); +$panel->optionAdd("$X2name*Entry.borderWidth", 1,20); + +$panel->optionAdd("$X2name*Field.background", "#ffffff",20); +$panel->optionAdd("$X2name*Field.disabledForeground", "#c0c0c0",20); +$panel->optionAdd("$X2name*Field.relief", "flat",20); +$panel->optionAdd("$X2name*Field.borderWidth", 1,20); + +$panel->optionAdd("$X2name*Label.disabledForeground", "#c0c0c0",20); +$panel->optionAdd("$X2name*Label.borderWidth", 1,20); + +$panel->configure(-background=>$panel->optionGet("background","")); + +#$panel->resizable("FALSE","FALSE"); + +my $panel_shell=$panel->Label(Name=>"shell",-borderwidth=>1,-relief=>'raised')-> + place(-x=>10,-y=>36,-relwidth=>1.0,-relheight=>1.0, + -width=>-20,-height=>-46,-anchor=>'nw'); + +my $panel_quit=$panel_shell->Button(-class=>"Exit",-text=>"quit",-command=>[sub{Shutdown()}])-> + place(-x=>-1,-y=>-1,-relx=>1.0,-rely=>1.0,-anchor=>'se'); + +$panel->Label(Name=>"logo text",-class=>"Panel",-text=>$version)-> + place(-x=>5,-y=>5,-anchor=>'nw'); + + +my $graph_shell=$toplevel->Label(Name=>"shell",-borderwidth=>1,-relief=>'raised')-> + place(-x=>10,-y=>36,-relwidth=>1.0,-relheight=>1.0, + -width=>-20,-height=>-46,-anchor=>'nw'); + +my $graph_status=$toplevel->Label(Name=>"logo text",-class=>"Panel",-text=>"Starting up")-> + place(-x=>5,-y=>5,-anchor=>'nw'); + + +my $panely=5; +my $panel_rescan=$panel_shell->Button(-text=>"rescan",-command=>[sub{scan_directory()}])-> + place(-x=>-5,-relx=>1.,-y=>$panely,-anchor=>'ne'); +$panely+=$panel_rescan->reqheight()+6; + + +my$temp=$graph_shell->Button(-text=>"<<", + -command=>[sub{$fileno-=10;$fileno=$first_file if($fileno<$first_file); + load_graph();}])-> + place(-x=>5,-y=>-5,-rely=>1.,-relwidth=>.2,-width=>-5,-anchor=>'sw'); +$graph_shell->Button(-text=>">>", + -command=>[sub{$fileno+=10;$fileno=$last_file if($fileno>$last_file); + load_graph();}])-> + place(-x=>-5,-y=>-5,-relwidth=>.2,-rely=>1.,-width=>-5,-relx=>1.,-anchor=>'se'); +$graph_shell->Button(-text=>"<", + -command=>[sub{$fileno-=1;$fileno=$first_file if($fileno<$first_file); + load_graph();}])-> + place(-x=>5,-y=>-5,-relwidth=>.3,-width=>-7,-rely=>1.,-relx=>.2,-anchor=>'sw'); +$graph_shell->Button(-text=>">", + -command=>[sub{$fileno+=1;$fileno=$last_file if($fileno>$last_file); + load_graph();}])-> + place(-x=>-5,-y=>-5,-relwidth=>.3,-width=>-7,-rely=>1.,-relx=>.8,-anchor=>'se'); +my$graphy=-10-$temp->reqheight(); +my$graph_slider=$temp=$graph_shell->Scale(-bigincrement=>1, + -resolution=>1, + -showvalue=>'TRUE',-variable=>\$fileno,-orient=>'horizontal')-> + place(-x=>5,-y=>$graphy,-relwidth=>1.,-rely=>1.,-width=>-10,-anchor=>'sw'); +$graphy-=$temp->reqheight()+5; + +my$onecrop; +my$twocrop; + +my$oneresize=$temp=$graph_shell->Checkbutton(-text=>"rescale",-variable=>\$onecrop, + -command=>[sub{draw_graph();}])-> + place(-x=>5,-y=>5,-anchor=>'nw'); + +my$one=$graph_shell->Canvas()-> + place(-relwidth=>1.,-width=>-10,-relheight=>.5,-height=>($graphy/2)-5-$temp->reqheight(), + -x=>5,-y=>5+$temp->reqheight,-anchor=>'nw'); + + +my$tworesize=$temp=$graph_shell->Checkbutton(-text=>"rescale",-variable=>\$twocrop, + -command=>[sub{draw_graph();}])-> + place(-rely=>1.,-y=>5,-anchor=>'nw',-in=>$one); +my$two=$graph_shell->Canvas()-> + place(-relwidth=>1.,-relheight=>1.,-rely=>1.,-y=>5+$temp->reqheight(),-anchor=>'nw',-in=>$one); + +scan_directory(); + +my%onestate; +my%twostate; +my @data; + +$onestate{"canvas"}=$one; +$onestate{"vars"}=\@panel_onevars; +$twostate{"canvas"}=$two; +$twostate{"vars"}=\@panel_twovars; + +$graph_slider->configure(-command=>[sub{load_graph()}]); +load_graph(); +$toplevel->bind('MainWindow','',[sub{$toplevel->update(); + draw_graph()}]); + +Tk::MainLoop(); + +sub load_graph{ + + scan_directory()if(!defined($panel_count)); + + @data=undef; + + for(my$i=0;$i<$panel_count;$i++){ + my$filename=$panel_keys[$i]."_$fileno.m"; + if(open F, "$filename"){ + $data[$i]=[()]; + close F; + } + } + draw_graph(); +} + +sub graphhelper{ + my($graph)=@_; + my$count=0; + my@colors=("#ff0000","#00df00","#0000ff","#ffff00","#ff00ff","#00ffff","#ffffff", + "#9f0000","#007f00","#00009f","#8f8f00","#8f008f","#008f8f","#000000"); + + my$w=$graph->{"canvas"}; + my$rescale=0; + + Status("Plotting $fileno"); + $w->delete('foo'); + $w->delete('legend'); + $w->delete('lines'); + + # count range + for(my$i=0;$i<$panel_count;$i++){ + if($graph->{"vars"}->[$i]){ + if(defined($data[$i])){ + if(!defined($graph->{"minx"})){ + $data[$i]->[0]=~m/^\s*(-?[0-9\.]*)[ ,]+(-?[0-9\.]*)/; + $graph->{"maxx"}=$1; + $graph->{"minx"}=$1; + $graph->{"maxy"}=$2; + $graph->{"miny"}=$2; + $rescale=1; + } + + for(my$j=0;$j<=$#{$data[$i]};$j++){ + $data[$i]->[$j]=~m/^\s*(-?[0-9\.]*)[ ,]+(-?[0-9\.]*)/; + $rescale=1 if($1>$graph->{"maxx"}); + $rescale=1 if($1<$graph->{"minx"}); + $rescale=1 if($2>$graph->{"maxy"}); + $rescale=1 if($2<$graph->{"miny"}); + $graph->{"maxx"}=$1 if($1>$graph->{"maxx"}); + $graph->{"minx"}=$1 if($1<$graph->{"minx"}); + $graph->{"maxy"}=$2 if($2>$graph->{"maxy"}); + $graph->{"miny"}=$2 if($2<$graph->{"miny"}); + } + } + $count++; + } + } + + my$width=$w->width(); + my$height=$w->height(); + + $rescale=1 if(!defined($graph->{"width"}) || + $width!=$graph->{"width"} || + $height!=$graph->{"height"}); + + $graph->{"width"}=$width; + $graph->{"height"}=$height; + + if(defined($graph->{"maxx"})){ + # draw axes, labels + # look for appropriate axis scales + + if($rescale){ + + $w->delete('ylabel'); + $w->delete('xlabel'); + $w->delete('axes'); + + my$yscale=1.; + my$xscale=1.; + my$iyscale=1.; + my$ixscale=1.; + while(($graph->{"maxx"}-$graph->{"minx"})*$xscale>15){$xscale*=.1;$ixscale*=10.;} + while(($graph->{"maxy"}-$graph->{"miny"})*$yscale>15){$yscale*=.1;$iyscale*=10.;} + + while(($graph->{"maxx"}-$graph->{"minx"})*$xscale<3){$xscale*=10.;$ixscale*=.1;} + while(($graph->{"maxy"}-$graph->{"miny"})*$yscale<3){$yscale*=10.;$iyscale*=.1;} + + # how tall are the x axis labels? + $w->createText(-1,-1,-anchor=>'se',-tags=>['foo'],-text=>"0123456789."); + my($x1,$y1,$x2,$y2)=$w->bbox('foo'); + $w->delete('foo'); + my$maxlabelheight=$y2-$y1; + my$useabley=$height-$maxlabelheight-3; + my$pixelpery=$useabley/($graph->{"maxy"}-$graph->{"miny"}); + + # place y axis labels at proper spacing/height + my$lasty=-$maxlabelheight/2; + my$topyval=int($graph->{"maxy"}*$yscale+1.)*$iyscale; + + for(my$i=0;;$i++){ + my$yval= $topyval-$i*$iyscale; + my$y= ($graph->{"maxy"}-$yval)*$pixelpery; + last if($y>$useabley); + if($y-$maxlabelheight>=$lasty){ + $w->createText(0,$y,-anchor=>'e',-tags=>['ylabel'],-text=>"$yval"); + $lasty=$y; + } + } + + # get the max ylabel width and place them at proper x + ($x1,$y1,$x2,$y2)=$w->bbox('ylabel'); + my$maxylabelwidth=$x2-$x1; + $w->move('ylabel',$maxylabelwidth,0); + + my$beginx=$maxylabelwidth+3; + my$useablex=$width-$beginx; + + # draw basic axes + $w->createLine($beginx,0,$beginx,$useabley,$width,$useabley, + -tags=>['axes'],-width=>2); + # draw y tix + $lasty=-$maxlabelheight/2; + for(my$i=0;;$i++){ + my$yval= $topyval-$i*$iyscale; + my$y= ($graph->{"maxy"}-$yval)*$pixelpery; + last if($y>$useabley); + if($yval==0){ + $w->createLine($beginx,$y,$width,$y, + -tags=>['axes'],-width=>1); + }else{ + if($y-$maxlabelheight>=$lasty){ + $w->createLine($beginx,$y,$width,$y, + -tags=>['axes'],-width=>1, + -stipple=>'gray50'); + + $lasty=$y; + } + } + } + + # place x axis labels at proper spacing + my$topxval=int($graph->{"maxx"}*$xscale+1.)*$ixscale; + my$pixelperx=$useablex/($graph->{"maxx"}-$graph->{"minx"}); + + for(my$i=0;;$i++){ + my$xval= $topxval-$i*$ixscale; + my$x= $width-($graph->{"maxx"}-$xval)*$pixelperx; + + last if($x<$beginx); + # bounding boxen are hard. place temp labels. + $w->createText(-1,-1,-anchor=>'e',-tags=>['foo'],-text=>"$xval"); + } + + ($x1,$y1,$x2,$y2)=$w->bbox('foo'); + my$maxxlabelwidth=$x2-$x1; + $w->delete('foo'); + my$lastx=$width; + + for(my$i=0;;$i++){ + my$xval= $topxval-$i*$ixscale; + my$x= $width-($graph->{"maxx"}-$xval)*$pixelperx; + + last if($x-$maxxlabelwidth/2<0 || $x<$beginx); + if($xval==0 && $x<$width){ + $w->createLine($x,0,$x,$useabley,-tags=>['axes'],-width=>1); + } + + if($x+$maxxlabelwidth<=$lastx){ + $w->createText($x,$height-1,-anchor=>'s',-tags=>['xlabel'],-text=>"$xval"); + $w->createLine($x,0,$x,$useabley,-tags=>['axes'],-width=>1,-stipple=>"gray50"); + $lastx=$x; + } + } + $graph->{"labelheight"}=$maxlabelheight; + $graph->{"xo"}=$beginx; + $graph->{"ppx"}=$pixelperx; + $graph->{"ppy"}=$pixelpery; + } + + # plot the files + $count=0; + my$legendy=$graph->{"labelheight"}/2; + for(my$i=0;$i<$panel_count;$i++){ + if($graph->{"vars"}->[$i]){ + $count++; # count here for legend color selection stability + if(defined($data[$i])){ + # place a legend placard; + my$color=$colors[($count-1)%($#colors+1)]; + $w->createText($width,$legendy,-anchor=>'e',-tags=>['legend'], + -fill=>$color,-text=>$panel_keys[$i]); + $legendy+=$graph->{"labelheight"}; + + # plot the lines + my@pairs=map{if(/^\s*(-?[0-9\.]*)[ ,]+(-?[0-9\.]*)/){ + (($1-$graph->{"minx"})*$graph->{"ppx"}+$graph->{"xo"}, + (-$2+$graph->{"maxy"})*$graph->{"ppy"})}} (@{$data[$i]}); + + $w->createLine((@pairs),-fill=>$color,-tags=>['lines']); + } + } + } + } +} + +sub draw_graph{ + + if($onecrop){ + $onestate{"minx"}=undef; + $onestate{"miny"}=undef; + $onestate{"maxx"}=undef; + $onestate{"maxy"}=undef; + } + if($twocrop){ + $twostate{"minx"}=undef; + $twostate{"miny"}=undef; + $twostate{"maxx"}=undef; + $twostate{"maxy"}=undef; + } + + for(my$i=0;$i<$panel_count;$i++){ + if($twostate{"vars"}->[$i]){ + + #re-place the canvases + + $oneresize->place(-x=>5,-y=>5,-anchor=>'nw'); + + $one->place(-relwidth=>1.,-width=>-10,-relheight=>.5, + -height=>($graphy/2)-5-$oneresize->reqheight(), + -x=>5,-y=>5+$oneresize->reqheight,-anchor=>'nw'); + + $tworesize->place(-rely=>1.,-y=>5,-anchor=>'nw',-in=>$one); + $two->place(-relwidth=>1.,-relheight=>1.,-rely=>1., + -y=>5+$tworesize->reqheight(),-anchor=>'nw',-in=>$one); + + graphhelper(\%onestate); + graphhelper(\%twostate); + return; + } + } + + $oneresize->place(-x=>5,-y=>5,-anchor=>'nw'); + + $one->place(-relwidth=>1.,-width=>-10,-relheight=>1., + -height=>$graphy-5-$oneresize->reqheight(), + -x=>5,-y=>5+$oneresize->reqheight,-anchor=>'nw'); + + $tworesize->placeForget(); + $two->placeForget(); + + graphhelper(\%onestate); +} + +sub depopulate_panel{ + my $win; + foreach $win (@panel_labels){ + $win->destroy(); + } + @panel_labels=(); + foreach $win (@panel_ones){ + $win->destroy(); + } + @panel_ones=(); + foreach $win (@panel_twos){ + $win->destroy(); + } + @panel_twos=(); + @panel_keys=(); +} + +sub populate_panel{ + my $localy=$panely; + my $key; + my $i=0; + foreach $key (sort (keys %bases)){ + $panel_keys[$i]=$key; + if(!defined($panel_onevars[$i])){ + $panel_onevars[$i]=0; + $panel_twovars[$i]=0; + } + + my $temp=$panel_twos[$i]=$panel_shell-> + Checkbutton(-variable=>\$panel_twovars[$i],-command=>['main::draw_graph'],-text=>'2')-> + place(-y=>$localy,-x=>-5,-anchor=>"ne",-relx=>1.); + my $oney=$temp->reqheight(); + my $onex=$temp->reqwidth()+15; + + $temp=$panel_ones[$i]=$panel_shell-> + Checkbutton(-variable=>\$panel_onevars[$i],-command=>['main::draw_graph'],-text=>'1')-> + place(-y=>0,-x=>0,-anchor=>"ne",-in=>$temp,-bordermode=>'outside'); + $oney=$temp->reqheight() if ($oney<$temp->reqheight()); + $onex+=$temp->reqwidth(); + + $temp=$panel_labels[$i]=$panel_shell->Label(-text=>$key,-class=>'Field',-justify=>'left')-> + place(-y=>$localy,-x=>5,-anchor=>"nw",-relwidth=>1.,-width=>-$onex, + -bordermode=>'outside'); + $oney=$temp->reqheight() if ($oney<$temp->reqheight()); + + $localy+=$oney+2; + $i++; + } + $panel_count=$i; + + $localy+=$panel_quit->reqheight()+50; + my $geometry=$panel->geometry(); + $geometry=~/^(\d+)/; + + $panel->configure(-height=>$localy); + $panel->configure(-width=>$1); +} + +sub Shutdown{ + Tk::exit(); +} + +sub Status{ + my$text=shift @_; + $graph_status->configure(-text=>"$text"); + $toplevel->update(); +} + +sub scan_directory{ + + %bases=(); + my$count=0; + + $first_file=undef; + $last_file=undef; + + if(opendir(D,".")){ + my$file; + while(defined($file=readdir(D))){ + if($file=~m/^(\S*)_(\d+).m/){ + $bases{"$1"}="0"; + $first_file=$2 if(!defined($first_file) || $2<$first_file); + $last_file=$2 if(!defined($last_file) || $2>$last_file); + $count++; + + Status("Reading... $count")if($count%117==0); + } + } + closedir(D); + } + Status("Done Reading: $count files"); + depopulate_panel(); + populate_panel(); + + $fileno=$first_file if($fileno<$first_file); + $fileno=$last_file if($fileno>$last_file); + + $graph_slider->configure(-from=>$first_file,-to=>$last_file); + +} + + + + + diff --git a/Dependencies/libvorbis/examples/seeking_example.c b/Dependencies/libvorbis/examples/seeking_example.c new file mode 100644 index 0000000..361bfb1 --- /dev/null +++ b/Dependencies/libvorbis/examples/seeking_example.c @@ -0,0 +1,259 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: illustrate seeking, and test it too + last mod: $Id: seeking_example.c 16329 2009-07-24 01:53:20Z xiphmont $ + + ********************************************************************/ + +#include +#include +#include "vorbis/codec.h" +#include "vorbis/vorbisfile.h" + +#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ +# include +# include +#endif + +void _verify(OggVorbis_File *ov, + ogg_int64_t val,ogg_int64_t pcmval,double timeval, + ogg_int64_t pcmlength, + char *bigassbuffer){ + int j; + long bread; + char buffer[4096]; + int dummy; + ogg_int64_t pos; + + /* verify the raw position, the pcm position and position decode */ + if(val!=-1 && ov_raw_tell(ov)pcmval){ + fprintf(stderr,"pcm position out of tolerance: requested %ld, got %ld\n", + (long)pcmval,(long)ov_pcm_tell(ov)); + exit(1); + } + if(timeval!=-1 && ov_time_tell(ov)>timeval){ + fprintf(stderr,"time position out of tolerance: requested %f, got %f\n", + timeval,ov_time_tell(ov)); + exit(1); + } + pos=ov_pcm_tell(ov); + if(pos<0 || pos>pcmlength){ + fprintf(stderr,"pcm position out of bounds: got %ld\n",(long)pos); + exit(1); + } + bread=ov_read(ov,buffer,4096,1,1,1,&dummy); + for(j=0;jchannels!=2){ + fprintf(stderr,"Sorry; right now seeking_test can only use Vorbis files\n" + "that are entirely stereo.\n\n"); + exit(1); + } + } + + /* because we want to do sample-level verification that the seek + does what it claimed, decode the entire file into memory */ + pcmlength=ov_pcm_total(&ov,-1); + timelength=ov_time_total(&ov,-1); + bigassbuffer=malloc(pcmlength*2); /* w00t */ + i=0; + while(ival+1){ + fprintf(stderr,"Declared position didn't perfectly match request: %f != %f\n", + val,ov_time_tell(&ov)); + exit(1); + } + + _verify(&ov,-1,-1,val,pcmlength,bigassbuffer); + + } + } + + fprintf(stderr,"\r \nOK.\n\n"); + + + }else{ + fprintf(stderr,"Standard input was not seekable.\n"); + } + + ov_clear(&ov); + return 0; +} + + + + + + + + + + + + + diff --git a/libvorbis-1.0.1/examples/vorbisfile_example.c b/Dependencies/libvorbis/examples/vorbisfile_example.c similarity index 80% rename from libvorbis-1.0.1/examples/vorbisfile_example.c rename to Dependencies/libvorbis/examples/vorbisfile_example.c index 36e679e..a32f248 100644 --- a/libvorbis-1.0.1/examples/vorbisfile_example.c +++ b/Dependencies/libvorbis/examples/vorbisfile_example.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: simple example decoder using vorbisfile - last mod: $Id: vorbisfile_example.c,v 1.10 2002/07/11 06:40:47 xiphmont Exp $ + last mod: $Id: vorbisfile_example.c 16328 2009-07-24 01:51:10Z xiphmont $ ********************************************************************/ @@ -44,7 +44,7 @@ int main(){ _setmode( _fileno( stdout ), _O_BINARY ); #endif - if(ov_open(stdin, &vf, NULL, 0) < 0) { + if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) { fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); exit(1); } @@ -60,7 +60,7 @@ int main(){ } fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate); fprintf(stderr,"\nDecoded length: %ld samples\n", - (long)ov_pcm_total(&vf,-1)); + (long)ov_pcm_total(&vf,-1)); fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor); } @@ -70,11 +70,16 @@ int main(){ /* EOF */ eof=1; } else if (ret < 0) { - /* error in the stream. Not a problem, just reporting it in - case we (the app) cares. In this case, we don't. */ + if(ret==OV_EBADLINK){ + fprintf(stderr,"Corrupt bitstream section! Exiting.\n"); + exit(1); + } + + /* some other error in the stream. Not a problem, just reporting it in + case we (the app) cares. In this case, we don't. */ } else { /* we don't bother dealing with sample rate changes, etc, but - you'll have to*/ + you'll have to*/ fwrite(pcmout,1,ret,stdout); } } diff --git a/libvorbis-1.0.1/include/Makefile.am b/Dependencies/libvorbis/include/Makefile.am similarity index 73% rename from libvorbis-1.0.1/include/Makefile.am rename to Dependencies/libvorbis/include/Makefile.am index 756b65f..0f34fab 100644 --- a/libvorbis-1.0.1/include/Makefile.am +++ b/Dependencies/libvorbis/include/Makefile.am @@ -1,5 +1,3 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign - SUBDIRS = vorbis diff --git a/Dependencies/libvorbis/include/Makefile.in b/Dependencies/libvorbis/include/Makefile.in new file mode 100644 index 0000000..76cf058 --- /dev/null +++ b/Dependencies/libvorbis/include/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = include +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = vorbis +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/include/vorbis/Makefile.am b/Dependencies/libvorbis/include/vorbis/Makefile.am new file mode 100644 index 0000000..dbba34e --- /dev/null +++ b/Dependencies/libvorbis/include/vorbis/Makefile.am @@ -0,0 +1,7 @@ +## Process this file with automake to produce Makefile.in + +vorbisincludedir = $(includedir)/vorbis + +vorbisinclude_HEADERS = codec.h vorbisfile.h vorbisenc.h + + diff --git a/Dependencies/libvorbis/include/vorbis/Makefile.in b/Dependencies/libvorbis/include/vorbis/Makefile.in new file mode 100644 index 0000000..64a5042 --- /dev/null +++ b/Dependencies/libvorbis/include/vorbis/Makefile.in @@ -0,0 +1,434 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = include/vorbis +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(vorbisinclude_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(vorbisincludedir)" +vorbisincludeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(vorbisinclude_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +vorbisincludedir = $(includedir)/vorbis +vorbisinclude_HEADERS = codec.h vorbisfile.h vorbisenc.h +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/vorbis/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/vorbis/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-vorbisincludeHEADERS: $(vorbisinclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(vorbisincludedir)" || $(MKDIR_P) "$(DESTDIR)$(vorbisincludedir)" + @list='$(vorbisinclude_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(vorbisincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(vorbisincludedir)/$$f'"; \ + $(vorbisincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(vorbisincludedir)/$$f"; \ + done + +uninstall-vorbisincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(vorbisinclude_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(vorbisincludedir)/$$f'"; \ + rm -f "$(DESTDIR)$(vorbisincludedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(vorbisincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-vorbisincludeHEADERS + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-vorbisincludeHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip \ + install-vorbisincludeHEADERS installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags uninstall uninstall-am \ + uninstall-vorbisincludeHEADERS + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libvorbis-1.0.1/include/vorbis/codec.h b/Dependencies/libvorbis/include/vorbis/codec.h similarity index 86% rename from libvorbis-1.0.1/include/vorbis/codec.h rename to Dependencies/libvorbis/include/vorbis/codec.h index 8329fed..999aa33 100644 --- a/libvorbis-1.0.1/include/vorbis/codec.h +++ b/Dependencies/libvorbis/include/vorbis/codec.h @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * ******************************************************************** function: libvorbis codec headers - last mod: $Id: codec.h,v 1.45 2003/09/05 22:34:46 giles Exp $ + last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $ ********************************************************************/ @@ -32,14 +32,14 @@ typedef struct vorbis_info{ /* The below bitrate declarations are *hints*. Combinations of the three values carry the following implications: - - all three set to the same value: + + all three set to the same value: implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard + only nominal set: + implies a VBR stream that averages the nominal bitrate. No hard upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal + upper and or lower set: + implies a VBR bitstream that obeys the bitrate limits. nominal may also be set to give a nominal rate. none set: the coder does not care to speculate. @@ -87,9 +87,9 @@ typedef struct vorbis_dsp_state{ typedef struct vorbis_block{ /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ + float **pcm; /* this is a pointer into local storage */ oggpack_buffer opb; - + long lW; long W; long nW; @@ -121,7 +121,7 @@ typedef struct vorbis_block{ /* vorbis_block is a single block of data to be processed as part of the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independant from other vorbis_blocks belonging to +bitstream, but is independent from other vorbis_blocks belonging to that logical bitstream. *************************************************/ struct alloc_chain{ @@ -166,28 +166,30 @@ extern void vorbis_info_init(vorbis_info *vi); extern void vorbis_info_clear(vorbis_info *vi); extern int vorbis_info_blocksize(vorbis_info *vi,int zo); extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - char *tag, char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag); +extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); +extern void vorbis_comment_add_tag(vorbis_comment *vc, + const char *tag, const char *contents); +extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); +extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); extern void vorbis_comment_clear(vorbis_comment *vc); extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); extern int vorbis_block_clear(vorbis_block *vb); extern void vorbis_dsp_clear(vorbis_dsp_state *v); extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); + ogg_int64_t granulepos); + +extern const char *vorbis_version_string(void); /* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); + vorbis_comment *vc, + ogg_packet *op, + ogg_packet *op_comm, + ogg_packet *op_code); extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); @@ -195,11 +197,12 @@ extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); extern int vorbis_bitrate_addblock(vorbis_block *vb); extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); + ogg_packet *op); /* Vorbis PRIMITIVES: synthesis layer *******************************/ +extern int vorbis_synthesis_idheader(ogg_packet *op); extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); + ogg_packet *op); extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); extern int vorbis_synthesis_restart(vorbis_dsp_state *v); @@ -216,7 +219,7 @@ extern int vorbis_synthesis_halfrate_p(vorbis_info *v); /* Vorbis ERRORS and return codes ***********************************/ -#define OV_FALSE -1 +#define OV_FALSE -1 #define OV_EOF -2 #define OV_HOLE -3 diff --git a/Dependencies/libvorbis/include/vorbis/vorbisenc.h b/Dependencies/libvorbis/include/vorbis/vorbisenc.h new file mode 100644 index 0000000..02332b5 --- /dev/null +++ b/Dependencies/libvorbis/include/vorbis/vorbisenc.h @@ -0,0 +1,436 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: vorbis encode-engine setup + last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $ + + ********************************************************************/ + +/** \file + * Libvorbisenc is a convenient API for setting up an encoding + * environment using libvorbis. Libvorbisenc encapsulates the + * actions needed to set up the encoder properly. + */ + +#ifndef _OV_ENC_H_ +#define _OV_ENC_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "codec.h" + +/** + * This is the primary function within libvorbisenc for setting up managed + * bitrate modes. + * + * Before this function is called, the \ref vorbis_info + * struct should be initialized by using vorbis_info_init() from the libvorbis + * API. After encoding, vorbis_info_clear() should be called. + * + * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set + * constraints for the encoded file. This function uses these settings to + * select the appropriate encoding mode and set it up. + * + * \param vi Pointer to an initialized \ref vorbis_info struct. + * \param channels The number of channels to be encoded. + * \param rate The sampling rate of the source audio. + * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. + * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. + * \param min_bitrate Desired minimum bitrate. -1 indicates unset. + * + * \return Zero for success, and negative values for failure. + * + * \retval 0 Success. + * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. + * \retval OV_EINVAL Invalid setup request, eg, out of range argument. + * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. + */ +extern int vorbis_encode_init(vorbis_info *vi, + long channels, + long rate, + + long max_bitrate, + long nominal_bitrate, + long min_bitrate); + +/** + * This function performs step-one of a three-step bitrate-managed encode + * setup. It functions similarly to the one-step setup performed by \ref + * vorbis_encode_init but allows an application to make further encode setup + * tweaks using \ref vorbis_encode_ctl before finally calling \ref + * vorbis_encode_setup_init to complete the setup process. + * + * Before this function is called, the \ref vorbis_info struct should be + * initialized by using vorbis_info_init() from the libvorbis API. After + * encoding, vorbis_info_clear() should be called. + * + * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set + * constraints for the encoded file. This function uses these settings to + * select the appropriate encoding mode and set it up. + * + * \param vi Pointer to an initialized vorbis_info struct. + * \param channels The number of channels to be encoded. + * \param rate The sampling rate of the source audio. + * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. + * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. + * \param min_bitrate Desired minimum bitrate. -1 indicates unset. + * + * \return Zero for success, and negative for failure. + * + * \retval 0 Success + * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. + * \retval OV_EINVAL Invalid setup request, eg, out of range argument. + * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. + */ +extern int vorbis_encode_setup_managed(vorbis_info *vi, + long channels, + long rate, + + long max_bitrate, + long nominal_bitrate, + long min_bitrate); + +/** + * This function performs step-one of a three-step variable bitrate + * (quality-based) encode setup. It functions similarly to the one-step setup + * performed by \ref vorbis_encode_init_vbr() but allows an application to + * make further encode setup tweaks using \ref vorbis_encode_ctl() before + * finally calling \ref vorbis_encode_setup_init to complete the setup + * process. + * + * Before this function is called, the \ref vorbis_info struct should be + * initialized by using \ref vorbis_info_init() from the libvorbis API. After + * encoding, vorbis_info_clear() should be called. + * + * \param vi Pointer to an initialized vorbis_info struct. + * \param channels The number of channels to be encoded. + * \param rate The sampling rate of the source audio. + * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). + * + * \return Zero for success, and negative values for failure. + * + * \retval 0 Success + * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. + * \retval OV_EINVAL Invalid setup request, eg, out of range argument. + * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. + */ +extern int vorbis_encode_setup_vbr(vorbis_info *vi, + long channels, + long rate, + + float quality + ); + +/** + * This is the primary function within libvorbisenc for setting up variable + * bitrate ("quality" based) modes. + * + * + * Before this function is called, the vorbis_info struct should be + * initialized by using vorbis_info_init() from the libvorbis API. After + * encoding, vorbis_info_clear() should be called. + * + * \param vi Pointer to an initialized vorbis_info struct. + * \param channels The number of channels to be encoded. + * \param rate The sampling rate of the source audio. + * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). + * + * + * \return Zero for success, or a negative number for failure. + * + * \retval 0 Success + * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. + * \retval OV_EINVAL Invalid setup request, eg, out of range argument. + * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. + */ +extern int vorbis_encode_init_vbr(vorbis_info *vi, + long channels, + long rate, + + float base_quality + ); + +/** + * This function performs the last stage of three-step encoding setup, as + * described in the API overview under managed bitrate modes. + * + * Before this function is called, the \ref vorbis_info struct should be + * initialized by using vorbis_info_init() from the libvorbis API, one of + * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to + * initialize the high-level encoding setup, and \ref vorbis_encode_ctl() + * called if necessary to make encoding setup changes. + * vorbis_encode_setup_init() finalizes the highlevel encoding structure into + * a complete encoding setup after which the application may make no further + * setup changes. + * + * After encoding, vorbis_info_clear() should be called. + * + * \param vi Pointer to an initialized \ref vorbis_info struct. + * + * \return Zero for success, and negative values for failure. + * + * \retval 0 Success. + * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. + * + * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first + * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to + * initialize the high-level encoding setup + * + */ +extern int vorbis_encode_setup_init(vorbis_info *vi); + +/** + * This function implements a generic interface to miscellaneous encoder + * settings similar to the classic UNIX 'ioctl()' system call. Applications + * may use vorbis_encode_ctl() to query or set bitrate management or quality + * mode details by using one of several \e request arguments detailed below. + * vorbis_encode_ctl() must be called after one of + * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used + * to modify settings, \ref vorbis_encode_ctl() must be called before \ref + * vorbis_encode_setup_init(). + * + * \param vi Pointer to an initialized vorbis_info struct. + * + * \param number Specifies the desired action; See \ref encctlcodes "the list + * of available requests". + * + * \param arg void * pointing to a data structure matching the request + * argument. + * + * \retval 0 Success. Any further return information (such as the result of a + * query) is placed into the storage pointed to by *arg. + * + * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after + * calling vorbis_encode_setup_init(). + * + * \retval OV_EIMPL Unimplemented or unknown request + */ +extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); + +/** + * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() + * with the \ref ovectl_ratemanage2_arg struct and \ref + * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. + * + * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() + * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref + * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to + * query and modify specifics of the encoder's bitrate management + * configuration. +*/ +struct ovectl_ratemanage_arg { + int management_active; /**< nonzero if bitrate management is active*/ +/** hard lower limit (in kilobits per second) below which the stream bitrate + will never be allowed for any given bitrate_hard_window seconds of time.*/ + long bitrate_hard_min; +/** hard upper limit (in kilobits per second) above which the stream bitrate + will never be allowed for any given bitrate_hard_window seconds of time.*/ + long bitrate_hard_max; +/** the window period (in seconds) used to regulate the hard bitrate minimum + and maximum*/ + double bitrate_hard_window; +/** soft lower limit (in kilobits per second) below which the average bitrate + tracker will start nudging the bitrate higher.*/ + long bitrate_av_lo; +/** soft upper limit (in kilobits per second) above which the average bitrate + tracker will start nudging the bitrate lower.*/ + long bitrate_av_hi; +/** the window period (in seconds) used to regulate the average bitrate + minimum and maximum.*/ + double bitrate_av_window; +/** Regulates the relative centering of the average and hard windows; in + libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but + followed the average window regulation. In libvorbis 1.1 a bit-reservoir + interface replaces the old windowing interface; the older windowing + interface is simulated and this field has no effect.*/ + double bitrate_av_window_center; +}; + +/** + * \name struct ovectl_ratemanage2_arg + * + * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and + * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to + * query and modify specifics of the encoder's bitrate management + * configuration. + * +*/ +struct ovectl_ratemanage2_arg { + int management_active; /**< nonzero if bitrate management is active */ +/** Lower allowed bitrate limit in kilobits per second */ + long bitrate_limit_min_kbps; +/** Upper allowed bitrate limit in kilobits per second */ + long bitrate_limit_max_kbps; + long bitrate_limit_reservoir_bits; /**struct ovectl_ratemanage2_arg * + * + * Used to query the current encoder bitrate management setting. Also used to + * initialize fields of an ovectl_ratemanage2_arg structure for use with + * \ref OV_ECTL_RATEMANAGE2_SET. + */ +#define OV_ECTL_RATEMANAGE2_GET 0x14 + +/** + * Set the current encoder bitrate management settings. + * + * Argument: struct ovectl_ratemanage2_arg * + * + * Used to set the current encoder bitrate management settings to the values + * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable + * bitrate management. +*/ +#define OV_ECTL_RATEMANAGE2_SET 0x15 + +/** + * Returns the current encoder hard-lowpass setting (kHz) in the double + * pointed to by arg. + * + * Argument: double * +*/ +#define OV_ECTL_LOWPASS_GET 0x20 + +/** + * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid + * lowpass settings range from 2 to 99. + * + * Argument: double * +*/ +#define OV_ECTL_LOWPASS_SET 0x21 + +/** + * Returns the current encoder impulse block setting in the double pointed + * to by arg. + * + * Argument: double * +*/ +#define OV_ECTL_IBLOCK_GET 0x30 + +/** + * Sets the impulse block bias to the the value pointed to by arg. + * + * Argument: double * + * + * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will + * direct to encoder to use more bits when incoding short blocks that contain + * strong impulses, thus improving the accuracy of impulse encoding. + */ +#define OV_ECTL_IBLOCK_SET 0x31 + +/** + * Returns the current encoder coupling setting in the int pointed + * to by arg. + * + * Argument: int * +*/ +#define OV_ECTL_COUPLING_GET 0x40 + +/** + * Enables/disables channel coupling in multichannel encoding according to arg. + * + * Argument: int * + * + * Zero disables channel coupling for multichannel inputs, nonzer enables + * channel coupling. Setting has no effect on monophonic encoding or + * multichannel counts that do not offer coupling. At present, coupling is + * available for stereo and 5.1 encoding. + */ +#define OV_ECTL_COUPLING_SET 0x41 + + /* deprecated rate management supported only for compatibility */ + +/** + * Old interface to querying bitrate management settings. + * + * Deprecated after move to bit-reservoir style management in 1.1 rendered + * this interface partially obsolete. + + * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. + * + * Argument: struct ovectl_ratemanage_arg * + */ +#define OV_ECTL_RATEMANAGE_GET 0x10 +/** + * Old interface to modifying bitrate management settings. + * + * deprecated after move to bit-reservoir style management in 1.1 rendered + * this interface partially obsolete. + * + * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. + * + * Argument: struct ovectl_ratemanage_arg * + */ +#define OV_ECTL_RATEMANAGE_SET 0x11 +/** + * Old interface to setting average-bitrate encoding mode. + * + * Deprecated after move to bit-reservoir style management in 1.1 rendered + * this interface partially obsolete. + * + * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. + * + * Argument: struct ovectl_ratemanage_arg * + */ +#define OV_ECTL_RATEMANAGE_AVG 0x12 +/** + * Old interface to setting bounded-bitrate encoding modes. + * + * deprecated after move to bit-reservoir style management in 1.1 rendered + * this interface partially obsolete. + * + * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. + * + * Argument: struct ovectl_ratemanage_arg * + */ +#define OV_ECTL_RATEMANAGE_HARD 0x13 + +/*@}*/ + + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif diff --git a/libvorbis-1.0.1/include/vorbis/vorbisfile.h b/Dependencies/libvorbis/include/vorbis/vorbisfile.h similarity index 60% rename from libvorbis-1.0.1/include/vorbis/vorbisfile.h rename to Dependencies/libvorbis/include/vorbis/vorbisfile.h index 71ca86f..a865cd0 100644 --- a/libvorbis-1.0.1/include/vorbis/vorbisfile.h +++ b/Dependencies/libvorbis/include/vorbis/vorbisfile.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.h,v 1.20 2003/08/18 05:34:01 xiphmont Exp $ + last mod: $Id: vorbisfile.h 17021 2010-03-24 09:29:41Z xiphmont $ ********************************************************************/ @@ -27,11 +27,11 @@ extern "C" #include "codec.h" /* The function prototypes for the callbacks are basically the same as for - * the stdio functions fread, fseek, fclose, ftell. + * the stdio functions fread, fseek, fclose, ftell. * The one difference is that the FILE * arguments have been replaced with * a void * - this is to be used as a pointer to whatever internal data these * functions might need. In the stdio case, it's just a FILE * cast to a void * - * + * * If you use other functions, check the docs for these functions and return * the right values. For seek_func(), you *MUST* return -1 if the stream is * unseekable @@ -43,6 +43,65 @@ typedef struct { long (*tell_func) (void *datasource); } ov_callbacks; +#ifndef OV_EXCLUDE_STATIC_CALLBACKS + +/* a few sets of convenient callbacks, especially for use under + * Windows where ov_open_callbacks() should always be used instead of + * ov_open() to avoid problems with incompatible crt.o version linking + * issues. */ + +static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ + if(f==NULL)return(-1); + +#ifdef __MINGW32__ + return fseeko64(f,off,whence); +#elif defined (_WIN32) + return _fseeki64(f,off,whence); +#else + return fseek(f,off,whence); +#endif +} + +/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as + * static data. That means that every file which includes this header + * will get its own copy of these structs whether it uses them or + * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. + * These static symbols are essential on platforms such as Windows on + * which several different versions of stdio support may be linked to + * by different DLLs, and we need to be certain we know which one + * we're using (the same one as the main application). + */ + +static ov_callbacks OV_CALLBACKS_DEFAULT = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, + (int (*)(void *)) fclose, + (long (*)(void *)) ftell +}; + +static ov_callbacks OV_CALLBACKS_NOCLOSE = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, + (int (*)(void *)) NULL, + (long (*)(void *)) ftell +}; + +static ov_callbacks OV_CALLBACKS_STREAMONLY = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) NULL, + (int (*)(void *)) fclose, + (long (*)(void *)) NULL +}; + +static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { + (size_t (*)(void *, size_t, size_t, void *)) fread, + (int (*)(void *, ogg_int64_t, int)) NULL, + (int (*)(void *)) NULL, + (long (*)(void *)) NULL +}; + +#endif + #define NOTOPEN 0 #define PARTOPEN 1 #define OPENED 2 @@ -54,7 +113,7 @@ typedef struct OggVorbis_File { int seekable; ogg_int64_t offset; ogg_int64_t end; - ogg_sync_state oy; + ogg_sync_state oy; /* If the FILE handle isn't seekable (eg, a pipe), only the current stream appears */ @@ -63,8 +122,8 @@ typedef struct OggVorbis_File { ogg_int64_t *dataoffsets; long *serialnos; ogg_int64_t *pcmlengths; /* overloaded to maintain binary - compatability; x2 size, stores both - beginning and end values */ + compatibility; x2 size, stores both + beginning and end values */ vorbis_info *vi; vorbis_comment *vc; @@ -86,14 +145,16 @@ typedef struct OggVorbis_File { } OggVorbis_File; + extern int ov_clear(OggVorbis_File *vf); +extern int ov_fopen(char *path,OggVorbis_File *vf); extern int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, - char *initial, long ibytes, ov_callbacks callbacks); + char *initial, long ibytes, ov_callbacks callbacks); extern int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes); extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, - char *initial, long ibytes, ov_callbacks callbacks); + char *initial, long ibytes, ov_callbacks callbacks); extern int ov_test_open(OggVorbis_File *vf); extern long ov_bitrate(OggVorbis_File *vf,int i); @@ -126,9 +187,12 @@ extern vorbis_info *ov_info(OggVorbis_File *vf,int link); extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, - int *bitstream); + int *bitstream); +extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, + int bigendianp,int word,int sgned,int *bitstream, + void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); extern long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream); + int bigendianp,int word,int sgned,int *bitstream); extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); extern int ov_halfrate(OggVorbis_File *vf,int flag); @@ -140,4 +204,3 @@ extern int ov_halfrate_p(OggVorbis_File *vf); #endif - diff --git a/Dependencies/libvorbis/install-sh b/Dependencies/libvorbis/install-sh new file mode 100755 index 0000000..4d4a951 --- /dev/null +++ b/Dependencies/libvorbis/install-sh @@ -0,0 +1,323 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2005-05-14.22 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# 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. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +chmodcmd="$chmodprog 0755" +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test -n "$1"; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit $?;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t) dstarg=$2 + shift + shift + continue;; + + -T) no_target_directory=true + shift + continue;; + + --version) echo "$0 $scriptversion"; exit $?;; + + *) # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + test -n "$dir_arg$dstarg" && break + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done + break;; + esac +done + +if test -z "$1"; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + src= + + if test -d "$dst"; then + mkdircmd=: + chmodcmd= + else + mkdircmd=$mkdirprog + fi + else + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dst=$dst/`basename "$src"` + fi + fi + + # This sed command emulates the dirname command. + dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` + + # Make sure that the destination directory exists. + + # Skip lots of stat calls in the usual case. + if test ! -d "$dstdir"; then + defaultIFS=' + ' + IFS="${IFS-$defaultIFS}" + + oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + shift + IFS=$oIFS + + pathcomp= + + while test $# -ne 0 ; do + pathcomp=$pathcomp$1 + shift + if test ! -d "$pathcomp"; then + $mkdirprog "$pathcomp" + # mkdir can fail with a `File exist' error in case several + # install-sh are creating the directory concurrently. This + # is OK. + test -d "$pathcomp" || exit + fi + pathcomp=$pathcomp/ + done + fi + + if test -n "$dir_arg"; then + $doit $mkdircmd "$dst" \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } + + else + dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + trap '(exit $?); exit' 1 2 13 15 + + # Copy the file name to the temp name. + $doit $cpprog "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dstdir/$dstfile"; then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ + || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + || { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit 1 + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + } + } + fi || { (exit 1); exit 1; } +done + +# The final little trick to "correctly" pass the exit status to the exit trap. +{ + (exit 0); exit 0 +} + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/libvorbis-1.0.1/lib/Makefile.am b/Dependencies/libvorbis/lib/Makefile.am similarity index 68% rename from libvorbis-1.0.1/lib/Makefile.am rename to Dependencies/libvorbis/lib/Makefile.am index ac18fd3..50f7ea4 100644 --- a/libvorbis-1.0.1/lib/Makefile.am +++ b/Dependencies/libvorbis/lib/Makefile.am @@ -1,7 +1,5 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign - SUBDIRS = modes books INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ @@ -18,14 +16,15 @@ libvorbis_la_SOURCES = mdct.c smallft.c block.c envelope.c window.c lsp.c \ registry.h scales.h window.h lookup.h lookup_data.h\ codec_internal.h backends.h bitrate.h libvorbis_la_LDFLAGS = -no-undefined -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@ +libvorbis_la_LIBADD = @VORBIS_LIBS@ @OGG_LIBS@ libvorbisfile_la_SOURCES = vorbisfile.c libvorbisfile_la_LDFLAGS = -no-undefined -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@ -libvorbisfile_la_LIBADD = libvorbis.la +libvorbisfile_la_LIBADD = libvorbis.la @OGG_LIBS@ libvorbisenc_la_SOURCES = vorbisenc.c libvorbisenc_la_LDFLAGS = -no-undefined -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@ -libvorbisenc_la_LIBADD = libvorbis.la +libvorbisenc_la_LIBADD = libvorbis.la @OGG_LIBS@ EXTRA_PROGRAMS = barkmel tone psytune CLEANFILES = $(EXTRA_PROGRAMS) @@ -38,6 +37,25 @@ psytune_LDADD = libvorbis.la EXTRA_DIST = lookups.pl +# build and run the self tests on 'make check' + +#vorbis_selftests = test_codebook test_sharedbook +vorbis_selftests = test_sharedbook + +noinst_PROGRAMS = $(vorbis_selftests) + +check: $(noinst_PROGRAMS) + ./test_sharedbook$(EXEEXT) + +#test_codebook_SOURCES = codebook.c +#test_codebook_CFLAGS = -D_V_SELFTEST + +test_sharedbook_SOURCES = sharedbook.c +test_sharedbook_CFLAGS = -D_V_SELFTEST +test_sharedbook_LDADD = @VORBIS_LIBS@ + +# recurse for alternate targets + debug: $(MAKE) all CFLAGS="@DEBUG@" diff --git a/Dependencies/libvorbis/lib/Makefile.in b/Dependencies/libvorbis/lib/Makefile.in new file mode 100644 index 0000000..59d6220 --- /dev/null +++ b/Dependencies/libvorbis/lib/Makefile.in @@ -0,0 +1,765 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +EXTRA_PROGRAMS = barkmel$(EXEEXT) tone$(EXEEXT) psytune$(EXEEXT) +noinst_PROGRAMS = $(am__EXEEXT_1) +subdir = lib +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) +libvorbis_la_DEPENDENCIES = +am_libvorbis_la_OBJECTS = mdct.lo smallft.lo block.lo envelope.lo \ + window.lo lsp.lo lpc.lo analysis.lo synthesis.lo psy.lo \ + info.lo floor1.lo floor0.lo res0.lo mapping0.lo registry.lo \ + codebook.lo sharedbook.lo lookup.lo bitrate.lo +libvorbis_la_OBJECTS = $(am_libvorbis_la_OBJECTS) +libvorbis_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libvorbis_la_LDFLAGS) $(LDFLAGS) -o $@ +libvorbisenc_la_DEPENDENCIES = libvorbis.la +am_libvorbisenc_la_OBJECTS = vorbisenc.lo +libvorbisenc_la_OBJECTS = $(am_libvorbisenc_la_OBJECTS) +libvorbisenc_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libvorbisenc_la_LDFLAGS) $(LDFLAGS) -o $@ +libvorbisfile_la_DEPENDENCIES = libvorbis.la +am_libvorbisfile_la_OBJECTS = vorbisfile.lo +libvorbisfile_la_OBJECTS = $(am_libvorbisfile_la_OBJECTS) +libvorbisfile_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libvorbisfile_la_LDFLAGS) $(LDFLAGS) -o $@ +am__EXEEXT_1 = test_sharedbook$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am_barkmel_OBJECTS = barkmel.$(OBJEXT) +barkmel_OBJECTS = $(am_barkmel_OBJECTS) +barkmel_LDADD = $(LDADD) +am_psytune_OBJECTS = psytune.$(OBJEXT) +psytune_OBJECTS = $(am_psytune_OBJECTS) +psytune_DEPENDENCIES = libvorbis.la +psytune_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(psytune_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_test_sharedbook_OBJECTS = test_sharedbook-sharedbook.$(OBJEXT) +test_sharedbook_OBJECTS = $(am_test_sharedbook_OBJECTS) +test_sharedbook_DEPENDENCIES = +test_sharedbook_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_sharedbook_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_tone_OBJECTS = tone.$(OBJEXT) +tone_OBJECTS = $(am_tone_OBJECTS) +tone_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libvorbis_la_SOURCES) $(libvorbisenc_la_SOURCES) \ + $(libvorbisfile_la_SOURCES) $(barkmel_SOURCES) \ + $(psytune_SOURCES) $(test_sharedbook_SOURCES) $(tone_SOURCES) +DIST_SOURCES = $(libvorbis_la_SOURCES) $(libvorbisenc_la_SOURCES) \ + $(libvorbisfile_la_SOURCES) $(barkmel_SOURCES) \ + $(psytune_SOURCES) $(test_sharedbook_SOURCES) $(tone_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = modes books +INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ +lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la +libvorbis_la_SOURCES = mdct.c smallft.c block.c envelope.c window.c lsp.c \ + lpc.c analysis.c synthesis.c psy.c info.c \ + floor1.c floor0.c\ + res0.c mapping0.c registry.c codebook.c sharedbook.c\ + lookup.c bitrate.c\ + envelope.h lpc.h lsp.h codebook.h misc.h psy.h\ + masking.h os.h mdct.h smallft.h highlevel.h\ + registry.h scales.h window.h lookup.h lookup_data.h\ + codec_internal.h backends.h bitrate.h + +libvorbis_la_LDFLAGS = -no-undefined -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@ +libvorbis_la_LIBADD = @VORBIS_LIBS@ @OGG_LIBS@ +libvorbisfile_la_SOURCES = vorbisfile.c +libvorbisfile_la_LDFLAGS = -no-undefined -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@ +libvorbisfile_la_LIBADD = libvorbis.la @OGG_LIBS@ +libvorbisenc_la_SOURCES = vorbisenc.c +libvorbisenc_la_LDFLAGS = -no-undefined -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@ +libvorbisenc_la_LIBADD = libvorbis.la @OGG_LIBS@ +CLEANFILES = $(EXTRA_PROGRAMS) +barkmel_SOURCES = barkmel.c +tone_SOURCES = tone.c +psytune_SOURCES = psytune.c +psytune_LDFLAGS = -static +psytune_LDADD = libvorbis.la +EXTRA_DIST = lookups.pl + +# build and run the self tests on 'make check' + +#vorbis_selftests = test_codebook test_sharedbook +vorbis_selftests = test_sharedbook + +#test_codebook_SOURCES = codebook.c +#test_codebook_CFLAGS = -D_V_SELFTEST +test_sharedbook_SOURCES = sharedbook.c +test_sharedbook_CFLAGS = -D_V_SELFTEST +test_sharedbook_LDADD = @VORBIS_LIBS@ +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libvorbis.la: $(libvorbis_la_OBJECTS) $(libvorbis_la_DEPENDENCIES) + $(libvorbis_la_LINK) -rpath $(libdir) $(libvorbis_la_OBJECTS) $(libvorbis_la_LIBADD) $(LIBS) +libvorbisenc.la: $(libvorbisenc_la_OBJECTS) $(libvorbisenc_la_DEPENDENCIES) + $(libvorbisenc_la_LINK) -rpath $(libdir) $(libvorbisenc_la_OBJECTS) $(libvorbisenc_la_LIBADD) $(LIBS) +libvorbisfile.la: $(libvorbisfile_la_OBJECTS) $(libvorbisfile_la_DEPENDENCIES) + $(libvorbisfile_la_LINK) -rpath $(libdir) $(libvorbisfile_la_OBJECTS) $(libvorbisfile_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +barkmel$(EXEEXT): $(barkmel_OBJECTS) $(barkmel_DEPENDENCIES) + @rm -f barkmel$(EXEEXT) + $(LINK) $(barkmel_OBJECTS) $(barkmel_LDADD) $(LIBS) +psytune$(EXEEXT): $(psytune_OBJECTS) $(psytune_DEPENDENCIES) + @rm -f psytune$(EXEEXT) + $(psytune_LINK) $(psytune_OBJECTS) $(psytune_LDADD) $(LIBS) +test_sharedbook$(EXEEXT): $(test_sharedbook_OBJECTS) $(test_sharedbook_DEPENDENCIES) + @rm -f test_sharedbook$(EXEEXT) + $(test_sharedbook_LINK) $(test_sharedbook_OBJECTS) $(test_sharedbook_LDADD) $(LIBS) +tone$(EXEEXT): $(tone_OBJECTS) $(tone_DEPENDENCIES) + @rm -f tone$(EXEEXT) + $(LINK) $(tone_OBJECTS) $(tone_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/analysis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/barkmel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitrate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebook.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/envelope.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor0.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lookup.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lpc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapping0.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psy.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psytune.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/registry.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/res0.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sharedbook.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smallft.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synthesis.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sharedbook-sharedbook.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tone.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vorbisenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vorbisfile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +test_sharedbook-sharedbook.o: sharedbook.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_sharedbook_CFLAGS) $(CFLAGS) -MT test_sharedbook-sharedbook.o -MD -MP -MF $(DEPDIR)/test_sharedbook-sharedbook.Tpo -c -o test_sharedbook-sharedbook.o `test -f 'sharedbook.c' || echo '$(srcdir)/'`sharedbook.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/test_sharedbook-sharedbook.Tpo $(DEPDIR)/test_sharedbook-sharedbook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sharedbook.c' object='test_sharedbook-sharedbook.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_sharedbook_CFLAGS) $(CFLAGS) -c -o test_sharedbook-sharedbook.o `test -f 'sharedbook.c' || echo '$(srcdir)/'`sharedbook.c + +test_sharedbook-sharedbook.obj: sharedbook.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_sharedbook_CFLAGS) $(CFLAGS) -MT test_sharedbook-sharedbook.obj -MD -MP -MF $(DEPDIR)/test_sharedbook-sharedbook.Tpo -c -o test_sharedbook-sharedbook.obj `if test -f 'sharedbook.c'; then $(CYGPATH_W) 'sharedbook.c'; else $(CYGPATH_W) '$(srcdir)/sharedbook.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/test_sharedbook-sharedbook.Tpo $(DEPDIR)/test_sharedbook-sharedbook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sharedbook.c' object='test_sharedbook-sharedbook.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_sharedbook_CFLAGS) $(CFLAGS) -c -o test_sharedbook-sharedbook.obj `if test -f 'sharedbook.c'; then $(CYGPATH_W) 'sharedbook.c'; else $(CYGPATH_W) '$(srcdir)/sharedbook.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \ + ctags-recursive distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-libLTLIBRARIES + + +check: $(noinst_PROGRAMS) + ./test_sharedbook$(EXEEXT) + +# recurse for alternate targets + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/analysis.c b/Dependencies/libvorbis/lib/analysis.c similarity index 71% rename from libvorbis-1.0.1/lib/analysis.c rename to Dependencies/libvorbis/lib/analysis.c index 4fb90c3..01aa6f3 100644 --- a/libvorbis-1.0.1/lib/analysis.c +++ b/Dependencies/libvorbis/lib/analysis.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: single-block PCM analysis mode dispatch - last mod: $Id: analysis.c,v 1.55 2002/07/11 06:40:48 xiphmont Exp $ + last mod: $Id: analysis.c 16226 2009-07-08 06:43:49Z xiphmont $ ********************************************************************/ @@ -26,11 +26,10 @@ #include "os.h" #include "misc.h" -int analysis_noisy=1; - /* decides between modes, dispatches to the appropriate mapping. */ int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ - int ret; + int ret,i; + vorbis_block_internal *vbi=vb->internal; vb->glue_bits=0; vb->time_bits=0; @@ -38,8 +37,9 @@ int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ vb->res_bits=0; /* first things first. Make sure encode is ready */ - oggpack_reset(&vb->opb); - + for(i=0;ipacketblob[i]); + /* we only have one mapping type (0), and we let the mapping code itself figure out what soft mode to use. This allows easier bitrate management */ @@ -52,7 +52,7 @@ int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ /* The app is using a bitmanaged mode... but not using the bitrate management interface. */ return(OV_EINVAL); - + op->packet=oggpack_get_buffer(&vb->opb); op->bytes=oggpack_bytes(&vb->opb); op->b_o_s=0; @@ -63,49 +63,50 @@ int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ return(0); } +#ifdef ANALYSIS +int analysis_noisy=1; + /* there was no great place to put this.... */ void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB,ogg_int64_t off){ int j; FILE *of; char buffer[80]; - /* if(i==5870){*/ - sprintf(buffer,"%s_%d.m",base,i); - of=fopen(buffer,"w"); - - if(!of)perror("failed to open data dump file"); - - for(j=0;j +#include +#include +#include +#include "vorbis/codec.h" +#include "codec_internal.h" +#include "os.h" +#include "misc.h" +#include "bitrate.h" + +/* compute bitrate tracking setup */ +void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bm){ + codec_setup_info *ci=vi->codec_setup; + bitrate_manager_info *bi=&ci->bi; + + memset(bm,0,sizeof(*bm)); + + if(bi && (bi->reservoir_bits>0)){ + long ratesamples=vi->rate; + int halfsamples=ci->blocksizes[0]>>1; + + bm->short_per_long=ci->blocksizes[1]/ci->blocksizes[0]; + bm->managed=1; + + bm->avg_bitsper= rint(1.*bi->avg_rate*halfsamples/ratesamples); + bm->min_bitsper= rint(1.*bi->min_rate*halfsamples/ratesamples); + bm->max_bitsper= rint(1.*bi->max_rate*halfsamples/ratesamples); + + bm->avgfloat=PACKETBLOBS/2; + + /* not a necessary fix, but one that leads to a more balanced + typical initialization */ + { + long desired_fill=bi->reservoir_bits*bi->reservoir_bias; + bm->minmax_reservoir=desired_fill; + bm->avg_reservoir=desired_fill; + } + + } +} + +void vorbis_bitrate_clear(bitrate_manager_state *bm){ + memset(bm,0,sizeof(*bm)); + return; +} + +int vorbis_bitrate_managed(vorbis_block *vb){ + vorbis_dsp_state *vd=vb->vd; + private_state *b=vd->backend_state; + bitrate_manager_state *bm=&b->bms; + + if(bm && bm->managed)return(1); + return(0); +} + +/* finish taking in the block we just processed */ +int vorbis_bitrate_addblock(vorbis_block *vb){ + vorbis_block_internal *vbi=vb->internal; + vorbis_dsp_state *vd=vb->vd; + private_state *b=vd->backend_state; + bitrate_manager_state *bm=&b->bms; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=vi->codec_setup; + bitrate_manager_info *bi=&ci->bi; + + int choice=rint(bm->avgfloat); + long this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + long min_target_bits=(vb->W?bm->min_bitsper*bm->short_per_long:bm->min_bitsper); + long max_target_bits=(vb->W?bm->max_bitsper*bm->short_per_long:bm->max_bitsper); + int samples=ci->blocksizes[vb->W]>>1; + long desired_fill=bi->reservoir_bits*bi->reservoir_bias; + if(!bm->managed){ + /* not a bitrate managed stream, but for API simplicity, we'll + buffer the packet to keep the code path clean */ + + if(bm->vb)return(-1); /* one has been submitted without + being claimed */ + bm->vb=vb; + return(0); + } + + bm->vb=vb; + + /* look ahead for avg floater */ + if(bm->avg_bitsper>0){ + double slew=0.; + long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); + double slewlimit= 15./bi->slew_damp; + + /* choosing a new floater: + if we're over target, we slew down + if we're under target, we slew up + + choose slew as follows: look through packetblobs of this frame + and set slew as the first in the appropriate direction that + gives us the slew we want. This may mean no slew if delta is + already favorable. + + Then limit slew to slew max */ + + if(bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ + while(choice>0 && this_bits>avg_target_bits && + bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ + choice--; + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + } + }else if(bm->avg_reservoir+(this_bits-avg_target_bits)avg_reservoir+(this_bits-avg_target_bits)packetblob[choice])*8; + } + } + + slew=rint(choice-bm->avgfloat)/samples*vi->rate; + if(slew<-slewlimit)slew=-slewlimit; + if(slew>slewlimit)slew=slewlimit; + choice=rint(bm->avgfloat+= slew/vi->rate*samples); + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + } + + + + /* enforce min(if used) on the current floater (if used) */ + if(bm->min_bitsper>0){ + /* do we need to force the bitrate up? */ + if(this_bitsminmax_reservoir-(min_target_bits-this_bits)<0){ + choice++; + if(choice>=PACKETBLOBS)break; + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + } + } + } + + /* enforce max (if used) on the current floater (if used) */ + if(bm->max_bitsper>0){ + /* do we need to force the bitrate down? */ + if(this_bits>max_target_bits){ + while(bm->minmax_reservoir+(this_bits-max_target_bits)>bi->reservoir_bits){ + choice--; + if(choice<0)break; + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + } + } + } + + /* Choice of packetblobs now made based on floater, and min/max + requirements. Now boundary check extreme choices */ + + if(choice<0){ + /* choosing a smaller packetblob is insufficient to trim bitrate. + frame will need to be truncated */ + long maxsize=(max_target_bits+(bi->reservoir_bits-bm->minmax_reservoir))/8; + bm->choice=choice=0; + + if(oggpack_bytes(vbi->packetblob[choice])>maxsize){ + + oggpack_writetrunc(vbi->packetblob[choice],maxsize*8); + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + } + }else{ + long minsize=(min_target_bits-bm->minmax_reservoir+7)/8; + if(choice>=PACKETBLOBS) + choice=PACKETBLOBS-1; + + bm->choice=choice; + + /* prop up bitrate according to demand. pad this frame out with zeroes */ + minsize-=oggpack_bytes(vbi->packetblob[choice]); + while(minsize-->0)oggpack_write(vbi->packetblob[choice],0,8); + this_bits=oggpack_bytes(vbi->packetblob[choice])*8; + + } + + /* now we have the final packet and the final packet size. Update statistics */ + /* min and max reservoir */ + if(bm->min_bitsper>0 || bm->max_bitsper>0){ + + if(max_target_bits>0 && this_bits>max_target_bits){ + bm->minmax_reservoir+=(this_bits-max_target_bits); + }else if(min_target_bits>0 && this_bitsminmax_reservoir+=(this_bits-min_target_bits); + }else{ + /* inbetween; we want to take reservoir toward but not past desired_fill */ + if(bm->minmax_reservoir>desired_fill){ + if(max_target_bits>0){ /* logical bulletproofing against initialization state */ + bm->minmax_reservoir+=(this_bits-max_target_bits); + if(bm->minmax_reservoirminmax_reservoir=desired_fill; + }else{ + bm->minmax_reservoir=desired_fill; + } + }else{ + if(min_target_bits>0){ /* logical bulletproofing against initialization state */ + bm->minmax_reservoir+=(this_bits-min_target_bits); + if(bm->minmax_reservoir>desired_fill)bm->minmax_reservoir=desired_fill; + }else{ + bm->minmax_reservoir=desired_fill; + } + } + } + } + + /* avg reservoir */ + if(bm->avg_bitsper>0){ + long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); + bm->avg_reservoir+=this_bits-avg_target_bits; + } + + return(0); +} + +int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,ogg_packet *op){ + private_state *b=vd->backend_state; + bitrate_manager_state *bm=&b->bms; + vorbis_block *vb=bm->vb; + int choice=PACKETBLOBS/2; + if(!vb)return 0; + + if(op){ + vorbis_block_internal *vbi=vb->internal; + + if(vorbis_bitrate_managed(vb)) + choice=bm->choice; + + op->packet=oggpack_get_buffer(vbi->packetblob[choice]); + op->bytes=oggpack_bytes(vbi->packetblob[choice]); + op->b_o_s=0; + op->e_o_s=vb->eofflag; + op->granulepos=vb->granulepos; + op->packetno=vb->sequence; /* for sake of completeness */ + } + + bm->vb=0; + return(1); +} diff --git a/libvorbis-1.0.1/lib/bitrate.h b/Dependencies/libvorbis/lib/bitrate.h similarity index 51% rename from libvorbis-1.0.1/lib/bitrate.h rename to Dependencies/libvorbis/lib/bitrate.h index 05dd761..db48fcb 100644 --- a/libvorbis-1.0.1/lib/bitrate.h +++ b/Dependencies/libvorbis/lib/bitrate.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: bitrate tracking and management - last mod: $Id: bitrate.h,v 1.7 2002/07/11 06:40:48 xiphmont Exp $ + last mod: $Id: bitrate.h 13293 2007-07-24 00:09:47Z xiphmont $ ********************************************************************/ @@ -24,54 +24,29 @@ /* encode side bitrate tracking */ typedef struct bitrate_manager_state { - ogg_uint32_t *queue_binned; - ogg_uint32_t *queue_actual; - int queue_size; + int managed; - int queue_head; - int queue_bins; + long avg_reservoir; + long minmax_reservoir; + long avg_bitsper; + long min_bitsper; + long max_bitsper; - long *avg_binacc; - int avg_center; - int avg_tail; - ogg_uint32_t avg_centeracc; - ogg_uint32_t avg_sampleacc; - ogg_uint32_t avg_sampledesired; - ogg_uint32_t avg_centerdesired; - - long *minmax_binstack; - long *minmax_posstack; - long *minmax_limitstack; - long minmax_stackptr; - - long minmax_acctotal; - int minmax_tail; - ogg_uint32_t minmax_sampleacc; - ogg_uint32_t minmax_sampledesired; - - int next_to_flush; - int last_to_flush; - + long short_per_long; double avgfloat; - /* unfortunately, we need to hold queued packet data somewhere */ - oggpack_buffer *packetbuffers; - ogg_packet *packets; - + vorbis_block *vb; + int choice; } bitrate_manager_state; typedef struct bitrate_manager_info{ - /* detailed bitrate management setup */ - double queue_avg_time; - double queue_avg_center; - double queue_minmax_time; - double queue_hardmin; - double queue_hardmax; - double queue_avgmin; - double queue_avgmax; + long avg_rate; + long min_rate; + long max_rate; + long reservoir_bits; + double reservoir_bias; - double avgfloat_downslew_max; - double avgfloat_upslew_max; + double slew_damp; } bitrate_manager_info; diff --git a/libvorbis-1.0.1/lib/block.c b/Dependencies/libvorbis/lib/block.c similarity index 74% rename from libvorbis-1.0.1/lib/block.c rename to Dependencies/libvorbis/lib/block.c index 9615b12..58f7fc7 100644 --- a/libvorbis-1.0.1/lib/block.c +++ b/Dependencies/libvorbis/lib/block.c @@ -5,17 +5,17 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2003 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: PCM data vector blocking, windowing and dis/reassembly - last mod: $Id: block.c,v 1.75 2003/09/02 04:39:26 xiphmont Exp $ + last mod: $Id: block.c 16330 2009-07-24 01:58:50Z xiphmont $ Handle windowing, overlap-add, etc of the PCM vectors. This is made more amusing by Vorbis' current two allowed block sizes. - + ********************************************************************/ #include @@ -50,33 +50,33 @@ static int ilog2(unsigned int v){ :.....''' |_____--- '''......| | \_______| :.................|__________________|_______|__|______| |<------ Sl ------>| > Sr < |endW - |beginSl |endSl | |endSr + |beginSl |endSl | |endSr |beginW |endlW |beginSr - |< lW >| + |< lW >| <--------------- W ----------------> | | .. ______________ | | | ' `/ | ---_ | - |___.'___/`. | ---_____| + |___.'___/`. | ---_____| |_______|__|_______|_________________| | >|Sl|< |<------ Sr ----->|endW | | |endSl |beginSr |endSr - |beginW | |endlW + |beginW | |endlW mult[0] |beginSl mult[n] <-------------- lW -----------------> - |<--W-->| -: .............. ___ | | -: .''' |`/ \ | | -:.....''' |/`....\|...| -:.........................|___|___|___| - |Sl |Sr |endW + |<--W-->| +: .............. ___ | | +: .''' |`/ \ | | +:.....''' |/`....\|...| +:.........................|___|___|___| + |Sl |Sr |endW | | |endSr | |beginSr | |endSl - |beginSl - |beginW + |beginSl + |beginW */ /* block abstraction setup *********************************************/ @@ -86,6 +86,7 @@ static int ilog2(unsigned int v){ #endif int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ + int i; memset(vb,0,sizeof(*vb)); vb->vd=v; vb->localalloc=0; @@ -93,10 +94,19 @@ int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ if(v->analysisp){ vorbis_block_internal *vbi= vb->internal=_ogg_calloc(1,sizeof(vorbis_block_internal)); - oggpack_writeinit(&vb->opb); vbi->ampmax=-9999; + + for(i=0;ipacketblob[i]=&vb->opb; + }else{ + vbi->packetblob[i]= + _ogg_calloc(1,sizeof(oggpack_buffer)); + } + oggpack_writeinit(vbi->packetblob[i]); + } } - + return(0); } @@ -147,15 +157,19 @@ void _vorbis_block_ripcord(vorbis_block *vb){ } int vorbis_block_clear(vorbis_block *vb){ - if(vb->vd) - if(vb->vd->analysisp) - oggpack_writeclear(&vb->opb); + int i; + vorbis_block_internal *vbi=vb->internal; + _vorbis_block_ripcord(vb); if(vb->localstore)_ogg_free(vb->localstore); - if(vb->internal) - _ogg_free(vb->internal); - + if(vbi){ + for(i=0;ipacketblob[i]); + if(i!=PACKETBLOBS/2)_ogg_free(vbi->packetblob[i]); + } + _ogg_free(vbi); + } memset(vb,0,sizeof(*vb)); return(0); } @@ -171,7 +185,7 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ int hs; if(ci==NULL) return 1; - hs=ci->halfrate_flag; + hs=ci->halfrate_flag; memset(v,0,sizeof(*v)); b=v->backend_state=_ogg_calloc(1,sizeof(*b)); @@ -203,29 +217,31 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ if(!ci->fullbooks){ ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); for(i=0;ibooks;i++) - vorbis_book_init_encode(ci->fullbooks+i,ci->book_param[i]); + vorbis_book_init_encode(ci->fullbooks+i,ci->book_param[i]); } b->psy=_ogg_calloc(ci->psys,sizeof(*b->psy)); for(i=0;ipsys;i++){ _vp_psy_init(b->psy+i, - ci->psy_param[i], - &ci->psy_g_param, - ci->blocksizes[ci->psy_param[i]->blockflag]/2, - vi->rate); + ci->psy_param[i], + &ci->psy_g_param, + ci->blocksizes[ci->psy_param[i]->blockflag]/2, + vi->rate); } v->analysisp=1; }else{ /* finish the codebooks */ - if(!ci->fullbooks){ + if(!ci->fullbooks) ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); - for(i=0;ibooks;i++){ - vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i]); - /* decode codebooks are now standalone after init */ - vorbis_staticbook_destroy(ci->book_param[i]); - ci->book_param[i]=NULL; - } + for(i=0;ibooks;i++){ + if(ci->book_param[i]==NULL) + goto abort_books; + if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) + goto abort_books; + /* decode codebooks are now standalone after init */ + vorbis_staticbook_destroy(ci->book_param[i]); + ci->book_param[i]=NULL; } } @@ -260,9 +276,18 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ for(i=0;iresidues;i++) b->residue[i]=_residue_P[ci->residue_type[i]]-> - look(v,ci->residue_param[i]); + look(v,ci->residue_param[i]); return 0; + abort_books: + for(i=0;ibooks;i++){ + if(ci->book_param[i]!=NULL){ + vorbis_staticbook_destroy(ci->book_param[i]); + ci->book_param[i]=NULL; + } + } + vorbis_dsp_clear(v); + return -1; } /* arbitrary settings and spec-mandated numbers get filled in here */ @@ -279,6 +304,10 @@ int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi){ vorbis_bitrate_init(vi,&b->bms); + /* compressed audio packets start after the headers + with sequence number 3 */ + v->sequence=3; + return(0); } @@ -290,39 +319,42 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){ private_state *b=v->backend_state; if(b){ - + if(b->ve){ - _ve_envelope_clear(b->ve); - _ogg_free(b->ve); + _ve_envelope_clear(b->ve); + _ogg_free(b->ve); } if(b->transform[0]){ - mdct_clear(b->transform[0][0]); - _ogg_free(b->transform[0][0]); - _ogg_free(b->transform[0]); + mdct_clear(b->transform[0][0]); + _ogg_free(b->transform[0][0]); + _ogg_free(b->transform[0]); } if(b->transform[1]){ - mdct_clear(b->transform[1][0]); - _ogg_free(b->transform[1][0]); - _ogg_free(b->transform[1]); + mdct_clear(b->transform[1][0]); + _ogg_free(b->transform[1][0]); + _ogg_free(b->transform[1]); } if(b->flr){ - for(i=0;ifloors;i++) - _floor_P[ci->floor_type[i]]-> - free_look(b->flr[i]); - _ogg_free(b->flr); + if(ci) + for(i=0;ifloors;i++) + _floor_P[ci->floor_type[i]]-> + free_look(b->flr[i]); + _ogg_free(b->flr); } if(b->residue){ - for(i=0;iresidues;i++) - _residue_P[ci->residue_type[i]]-> - free_look(b->residue[i]); - _ogg_free(b->residue); + if(ci) + for(i=0;iresidues;i++) + _residue_P[ci->residue_type[i]]-> + free_look(b->residue[i]); + _ogg_free(b->residue); } if(b->psy){ - for(i=0;ipsys;i++) - _vp_psy_clear(b->psy+i); - _ogg_free(b->psy); + if(ci) + for(i=0;ipsys;i++) + _vp_psy_clear(b->psy+i); + _ogg_free(b->psy); } if(b->psy_g_look)_vp_global_free(b->psy_g_look); @@ -332,10 +364,11 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){ drft_clear(&b->fft_look[1]); } - + if(v->pcm){ - for(i=0;ichannels;i++) - if(v->pcm[i])_ogg_free(v->pcm[i]); + if(vi) + for(i=0;ichannels;i++) + if(v->pcm[i])_ogg_free(v->pcm[i]); _ogg_free(v->pcm); if(v->pcmret)_ogg_free(v->pcmret); } @@ -347,7 +380,7 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){ if(b->header2)_ogg_free(b->header2); _ogg_free(b); } - + memset(v,0,sizeof(*v)); } } @@ -364,10 +397,10 @@ float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){ /* Do we have enough storage space for the requested buffer? If not, expand the PCM (and envelope) storage */ - + if(v->pcm_current+vals>=v->pcm_storage){ v->pcm_storage=v->pcm_current+vals*2; - + for(i=0;ichannels;i++){ v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(*v->pcm[i])); } @@ -375,13 +408,13 @@ float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){ for(i=0;ichannels;i++) v->pcmret[i]=v->pcm[i]+v->pcm_current; - + return(v->pcmret); } static void _preextrapolate_helper(vorbis_dsp_state *v){ int i; - int order=32; + int order=16; float *lpc=alloca(order*sizeof(*lpc)); float *work=alloca(v->pcm_current*sizeof(*work)); long j; @@ -391,19 +424,30 @@ static void _preextrapolate_helper(vorbis_dsp_state *v){ for(i=0;ivi->channels;i++){ /* need to run the extrapolation in reverse! */ for(j=0;jpcm_current;j++) - work[j]=v->pcm[i][v->pcm_current-j-1]; - + work[j]=v->pcm[i][v->pcm_current-j-1]; + /* prime as above */ vorbis_lpc_from_data(work,lpc,v->pcm_current-v->centerW,order); - + +#if 0 + if(v->vi->channels==2){ + if(i==0) + _analysis_output("predataL",0,work,v->pcm_current-v->centerW,0,0,0); + else + _analysis_output("predataR",0,work,v->pcm_current-v->centerW,0,0,0); + }else{ + _analysis_output("predata",0,work,v->pcm_current-v->centerW,0,0,0); + } +#endif + /* run the predictor filter */ vorbis_lpc_predict(lpc,work+v->pcm_current-v->centerW-order, - order, - work+v->pcm_current-v->centerW, - v->centerW); + order, + work+v->pcm_current-v->centerW, + v->centerW); for(j=0;jpcm_current;j++) - v->pcm[i][v->pcm_current-j-1]=work[j]; + v->pcm[i][v->pcm_current-j-1]=work[j]; } } @@ -431,29 +475,29 @@ int vorbis_analysis_wrote(vorbis_dsp_state *v, int vals){ amplitude off a cliff, creating spread spectrum noise that will suck to encode. Extrapolate for the sake of cleanliness. */ - vorbis_analysis_buffer(v,ci->blocksizes[1]*3); + vorbis_analysis_buffer(v,ci->blocksizes[1]*3); v->eofflag=v->pcm_current; v->pcm_current+=ci->blocksizes[1]*3; for(i=0;ichannels;i++){ if(v->eofflag>order*2){ - /* extrapolate with LPC to fill in */ - long n; + /* extrapolate with LPC to fill in */ + long n; - /* make a predictor filter */ - n=v->eofflag; - if(n>ci->blocksizes[1])n=ci->blocksizes[1]; - vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order); + /* make a predictor filter */ + n=v->eofflag; + if(n>ci->blocksizes[1])n=ci->blocksizes[1]; + vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order); - /* run the predictor filter */ - vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, - v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag); + /* run the predictor filter */ + vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, + v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag); }else{ - /* not enough data to extrapolate (unlikely to happen due to + /* not enough data to extrapolate (unlikely to happen due to guarding the overlap, but bulletproof in case that assumtion goes away). zeroes will do. */ - memset(v->pcm[i]+v->eofflag,0, - (v->pcm_current-v->eofflag)*sizeof(*v->pcm[i])); + memset(v->pcm[i]+v->eofflag,0, + (v->pcm_current-v->eofflag)*sizeof(*v->pcm[i])); } } @@ -498,19 +542,19 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ /* we do an envelope search even on a single blocksize; we may still be throwing more bits at impulses, and envelope search handles marking impulses too. */ - { + { long bp=_ve_envelope_search(v); if(bp==-1){ if(v->eofflag==0)return(0); /* not enough data currently to search for a - full long block */ + full long block */ v->nW=0; }else{ if(ci->blocksizes[0]==ci->blocksizes[1]) - v->nW=0; + v->nW=0; else - v->nW=bp; + v->nW=bp; } } @@ -530,7 +574,7 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ } - + /* fill in the block. Note that for a short window, lW and nW are *short* regardless of actual settings in the stream */ @@ -558,12 +602,12 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ } } - + vb->vd=v; vb->sequence=v->sequence++; vb->granulepos=v->granulepos; vb->pcmend=ci->blocksizes[v->W]; - + /* copy the vectors; this uses the local storage in vb */ /* this tracks 'strongest peak' for later psychoacoustics */ @@ -571,7 +615,7 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ if(vbi->ampmax>g->ampmax)g->ampmax=vbi->ampmax; g->ampmax=_vp_ampmax_decay(g->ampmax,v); vbi->ampmax=g->ampmax; - + vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); vbi->pcmdelay=_vorbis_block_alloc(vb,sizeof(*vbi->pcmdelay)*vi->channels); for(i=0;ichannels;i++){ @@ -579,14 +623,14 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ _vorbis_block_alloc(vb,(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); vb->pcm[i]=vbi->pcmdelay[i]+beginW; - - /* before we added the delay + + /* before we added the delay vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(*vb->pcm[i])); */ - + } - + /* handle eof detection: eof==0 means that we've not yet received EOF eof>0 marks the last 'real' sample in pcm[] eof<0 'no more to do'; doesn't get here */ @@ -608,27 +652,27 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ _ve_envelope_shift(b->ve,movementW); v->pcm_current-=movementW; - + for(i=0;ichannels;i++) - memmove(v->pcm[i],v->pcm[i]+movementW, - v->pcm_current*sizeof(*v->pcm[i])); - - + memmove(v->pcm[i],v->pcm[i]+movementW, + v->pcm_current*sizeof(*v->pcm[i])); + + v->lW=v->W; v->W=v->nW; v->centerW=new_centerNext; - + if(v->eofflag){ - v->eofflag-=movementW; - if(v->eofflag<=0)v->eofflag=-1; - /* do not add padding to end of stream! */ - if(v->centerW>=v->eofflag){ - v->granulepos+=movementW-(v->centerW-v->eofflag); - }else{ - v->granulepos+=movementW; - } + v->eofflag-=movementW; + if(v->eofflag<=0)v->eofflag=-1; + /* do not add padding to end of stream! */ + if(v->centerW>=v->eofflag){ + v->granulepos+=movementW-(v->centerW-v->eofflag); + }else{ + v->granulepos+=movementW; + } }else{ - v->granulepos+=movementW; + v->granulepos+=movementW; } } } @@ -646,11 +690,11 @@ int vorbis_synthesis_restart(vorbis_dsp_state *v){ if(!vi)return -1; ci=vi->codec_setup; if(!ci)return -1; - hs=ci->halfrate_flag; + hs=ci->halfrate_flag; v->centerW=ci->blocksizes[1]>>(hs+1); v->pcm_current=v->centerW>>hs; - + v->pcm_returned=-1; v->granulepos=-1; v->sequence=-1; @@ -661,9 +705,11 @@ int vorbis_synthesis_restart(vorbis_dsp_state *v){ } int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){ - if(_vds_shared_init(v,vi,0)) return 1; + if(_vds_shared_init(v,vi,0)){ + vorbis_dsp_clear(v); + return 1; + } vorbis_synthesis_restart(v); - return 0; } @@ -675,16 +721,16 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ vorbis_info *vi=v->vi; codec_setup_info *ci=vi->codec_setup; private_state *b=v->backend_state; - int hs=ci->halfrate_flag; + int hs=ci->halfrate_flag; int i,j; if(!vb)return(OV_EINVAL); if(v->pcm_current>v->pcm_returned && v->pcm_returned!=-1)return(OV_EINVAL); - + v->lW=v->W; v->W=vb->W; v->nW=-1; - + if((v->sequence==-1)|| (v->sequence+1 != vb->sequence)){ v->granulepos=-1; /* out of sequence; lose count */ @@ -692,21 +738,21 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ } v->sequence=vb->sequence; - - if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly - was called on block */ + + if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly + was called on block */ int n=ci->blocksizes[v->W]>>(hs+1); int n0=ci->blocksizes[0]>>(hs+1); int n1=ci->blocksizes[1]>>(hs+1); int thisCenter; int prevCenter; - + v->glue_bits+=vb->glue_bits; v->time_bits+=vb->time_bits; v->floor_bits+=vb->floor_bits; v->res_bits+=vb->res_bits; - + if(v->centerW){ thisCenter=n1; prevCenter=0; @@ -714,84 +760,84 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ thisCenter=0; prevCenter=n1; } - + /* v->pcm is now used like a two-stage double buffer. We don't want to have to constantly shift *or* adjust memory usage. Don't accept a new block until the old is shifted out */ - + for(j=0;jchannels;j++){ /* the overlap/add section */ if(v->lW){ - if(v->W){ - /* large/large */ - float *w=_vorbis_window_get(b->window[1]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]; - for(i=0;iwindow[0]-hs); - float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2; - float *p=vb->pcm[j]; - for(i=0;iW){ + /* large/large */ + float *w=_vorbis_window_get(b->window[1]-hs); + float *pcm=v->pcm[j]+prevCenter; + float *p=vb->pcm[j]; + for(i=0;iwindow[0]-hs); + float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2; + float *p=vb->pcm[j]; + for(i=0;iW){ - /* small/large */ - float *w=_vorbis_window_get(b->window[0]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]+n1/2-n0/2; - for(i=0;iwindow[0]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]; - for(i=0;iW){ + /* small/large */ + float *w=_vorbis_window_get(b->window[0]-hs); + float *pcm=v->pcm[j]+prevCenter; + float *p=vb->pcm[j]+n1/2-n0/2; + for(i=0;iwindow[0]-hs); + float *pcm=v->pcm[j]+prevCenter; + float *p=vb->pcm[j]; + for(i=0;ipcm[j]+thisCenter; - float *p=vb->pcm[j]+n; - for(i=0;ipcm[j]+thisCenter; + float *p=vb->pcm[j]+n; + for(i=0;icenterW) v->centerW=0; else v->centerW=n1; - + /* deal with initial packet state; we do this using the explicit pcm_returned==-1 flag otherwise we're sensitive to first block being short or long */ - + if(v->pcm_returned==-1){ v->pcm_returned=thisCenter; v->pcm_current=thisCenter; }else{ v->pcm_returned=prevCenter; v->pcm_current=prevCenter+ - ((ci->blocksizes[v->lW]/4+ - ci->blocksizes[v->W]/4)>>hs); + ((ci->blocksizes[v->lW]/4+ + ci->blocksizes[v->W]/4)>>hs); } - + } /* track the frame number... This is for convenience, but also making sure our last packet doesn't end with added padding. If the last packet is partial, the number of samples we'll have to return will be past the vb->granulepos. - + This is not foolproof! It will be confused if we begin decoding at the last page after a seek or hole. In that case, we don't have a starting point to judge where the last frame @@ -803,7 +849,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ }else{ b->sample_count+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; } - + if(v->granulepos==-1){ if(vb->granulepos!=-1){ /* only set if we have a position to set to */ @@ -811,22 +857,22 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ /* is this a short page? */ if(b->sample_count>v->granulepos){ - /* corner case; if this is both the first and last audio page, - then spec says the end is cut, not beginning */ - if(vb->eofflag){ - /* trim the end */ - /* no preceeding granulepos; assume we started at zero (we'd - have to in a short single-page stream) */ - /* granulepos could be -1 due to a seek, but that would result - in a long count, not short count */ - - v->pcm_current-=(b->sample_count-v->granulepos)>>hs; - }else{ - /* trim the beginning */ - v->pcm_returned+=(b->sample_count-v->granulepos)>>hs; - if(v->pcm_returned>v->pcm_current) - v->pcm_returned=v->pcm_current; - } + /* corner case; if this is both the first and last audio page, + then spec says the end is cut, not beginning */ + if(vb->eofflag){ + /* trim the end */ + /* no preceeding granulepos; assume we started at zero (we'd + have to in a short single-page stream) */ + /* granulepos could be -1 due to a seek, but that would result + in a long count, not short count */ + + v->pcm_current-=(b->sample_count-v->granulepos)>>hs; + }else{ + /* trim the beginning */ + v->pcm_returned+=(b->sample_count-v->granulepos)>>hs; + if(v->pcm_returned>v->pcm_current) + v->pcm_returned=v->pcm_current; + } } @@ -834,27 +880,27 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ }else{ v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){ - + if(v->granulepos>vb->granulepos){ - long extra=v->granulepos-vb->granulepos; - - if(extra) - if(vb->eofflag){ - /* partial last frame. Strip the extra samples off */ - v->pcm_current-=extra>>hs; - } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ + long extra=v->granulepos-vb->granulepos; + + if(extra) + if(vb->eofflag){ + /* partial last frame. Strip the extra samples off */ + v->pcm_current-=extra>>hs; + } /* else {Shouldn't happen *unless* the bitstream is out of + spec. Either way, believe the bitstream } */ } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ + spec. Either way, believe the bitstream } */ v->granulepos=vb->granulepos; } } - + /* Update, cleanup */ - + if(vb->eofflag)v->eofflag=1; return(0); - + } /* pcm==NULL indicates we just want the pending samples, no more */ @@ -865,7 +911,7 @@ int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){ if(pcm){ int i; for(i=0;ichannels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_returned; + v->pcmret[i]=v->pcm[i]+v->pcm_returned; *pcm=v->pcmret; } return(v->pcm_current-v->pcm_returned); @@ -887,8 +933,8 @@ int vorbis_synthesis_read(vorbis_dsp_state *v,int n){ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ vorbis_info *vi=v->vi; codec_setup_info *ci=vi->codec_setup; - int hs=ci->halfrate_flag; - + int hs=ci->halfrate_flag; + int n=ci->blocksizes[v->W]>>(hs+1); int n0=ci->blocksizes[0]>>(hs+1); int n1=ci->blocksizes[1]>>(hs+1); @@ -912,9 +958,9 @@ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ for(j=0;jchannels;j++){ float *p=v->pcm[j]; for(i=0;ipcm_returned-=n1; v->centerW=0; } - + /* solidify buffer into contiguous space */ if((v->lW^v->W)==1){ /* long/short or short/long */ @@ -930,7 +976,7 @@ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ float *s=v->pcm[j]; float *d=v->pcm[j]+(n1-n0)/2; for(i=(n1+n0)/2-1;i>=0;--i) - d[i]=s[i]; + d[i]=s[i]; } v->pcm_returned+=(n1-n0)/2; v->pcm_current+=(n1-n0)/2; @@ -938,16 +984,16 @@ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ if(v->lW==0){ /* short/short */ for(j=0;jchannels;j++){ - float *s=v->pcm[j]; - float *d=v->pcm[j]+n1-n0; - for(i=n0-1;i>=0;--i) - d[i]=s[i]; + float *s=v->pcm[j]; + float *d=v->pcm[j]+n1-n0; + for(i=n0-1;i>=0;--i) + d[i]=s[i]; } v->pcm_returned+=n1-n0; v->pcm_current+=n1-n0; } } - + if(pcm){ int i; for(i=0;ichannels;i++) @@ -962,10 +1008,9 @@ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ float *vorbis_window(vorbis_dsp_state *v,int W){ vorbis_info *vi=v->vi; codec_setup_info *ci=vi->codec_setup; - int hs=ci->halfrate_flag; + int hs=ci->halfrate_flag; private_state *b=v->backend_state; if(b->window[W]-1<0)return NULL; return _vorbis_window_get(b->window[W]-hs); } - diff --git a/libvorbis-1.0.1/lib/books/Makefile.am b/Dependencies/libvorbis/lib/books/Makefile.am similarity index 77% rename from libvorbis-1.0.1/lib/books/Makefile.am rename to Dependencies/libvorbis/lib/books/Makefile.am index 498ec3d..3697a71 100644 --- a/libvorbis-1.0.1/lib/books/Makefile.am +++ b/Dependencies/libvorbis/lib/books/Makefile.am @@ -1,4 +1,3 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign SUBDIRS = coupled uncoupled floor diff --git a/Dependencies/libvorbis/lib/books/Makefile.in b/Dependencies/libvorbis/lib/books/Makefile.in new file mode 100644 index 0000000..0d957f0 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/Makefile.in @@ -0,0 +1,514 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = lib/books +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = coupled uncoupled floor +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/books/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/books/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/lib/books/coupled/Makefile.am b/Dependencies/libvorbis/lib/books/coupled/Makefile.am new file mode 100644 index 0000000..1115201 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/coupled/Makefile.am @@ -0,0 +1,3 @@ +## Process this file with automake to produce Makefile.in + +EXTRA_DIST = res_books_stereo.h res_books_51.h diff --git a/Dependencies/libvorbis/lib/books/coupled/Makefile.in b/Dependencies/libvorbis/lib/books/coupled/Makefile.in new file mode 100644 index 0000000..ec9d98e --- /dev/null +++ b/Dependencies/libvorbis/lib/books/coupled/Makefile.in @@ -0,0 +1,356 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = lib/books/coupled +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = res_books_stereo.h res_books_51.h +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/books/coupled/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/books/coupled/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/lib/books/coupled/res_books_51.h b/Dependencies/libvorbis/lib/books/coupled/res_books_51.h new file mode 100644 index 0000000..917a955 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/coupled/res_books_51.h @@ -0,0 +1,12257 @@ +static const long _vq_quantlist__44p0_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p0_l0_0[] = { + 1, 3, 4, 7, 7, 8, 8, 9, 9, 9,10,10,10, 5, 6, 5, + 8, 7, 9, 8, 9, 9,10, 9,11,10, 5, 5, 7, 7, 8, 8, + 9, 9, 9, 9,10,10,11, 8, 9, 8,10, 9,10, 9,10, 9, + 11,10,11,10, 8, 8, 9, 9,10, 9,10, 9,11,10,11,10, + 11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11, + 11,11,12,11,11,11,11,11,11,10,12,12,12,12,12,12, + 12,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11, + 12,11,12,11,11,13,12,12,12,13,12,12,12,12,11,12, + 11,11,13,13,13,12,12,12,12,12,12,11,11,11,10,13, + 13,13,12,13,12,13,11,13,10,12,11,11,13,13,12,13, + 12,12,12,12,11,12,11,11,11, +}; + +static const static_codebook _44p0_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p0_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p0_l0_0, + 0 +}; + +static const long _vq_quantlist__44p0_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p0_l0_1[] = { + 1, 4, 4, 6, 6, 5, 5, 5, 7, 5, 5, 5, 5, 6, 7, 7, + 6, 7, 7, 7, 6, 7, 7, 7, 7, +}; + +static const static_codebook _44p0_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p0_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p0_l0_1, + 0 +}; + +static const long _vq_quantlist__44p0_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p0_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p0_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p0_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p0_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p0_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p0_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p0_long[] = { + 2, 3, 6, 7,10,14,16, 3, 2, 5, 7,11,14,17, 6, 5, + 5, 7,10,12,14, 7, 7, 6, 6, 7, 9,13,10,11, 9, 6, + 6, 9,11,15,15,13,10, 9,10,12,18,18,16,14,12,13, + 16, +}; + +static const static_codebook _huff_book__44p0_long = { + 2, 49, + (long *)_huff_lengthlist__44p0_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p0_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p0_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p0_p1_0, + 0 +}; + +static const long _vq_quantlist__44p0_p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p2_0[] = { + 1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, + 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, + 11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12,12, + 0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, + 7, 7, 0,11,11, 0, 6, 6, 0, 7, 7, 0,10,11, 0, 6, + 6, 0, 7, 7, 0,11,11, 0,12,12, 0,11,11, 0,15,15, + 0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, + 12,12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12, + 12, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, + 15, 0,12,12, 0,11,12, 0,15,16, 0,11,11, 0, 6, 6, + 0,11,12, 0,12,12, 0,12,12, 0,16,15, 0,12,12, 0, + 13,12, 0,15,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p0_p2_0 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p2_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p0_p2_0, + 0 +}; + +static const long _vq_quantlist__44p0_p2_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p2_1[] = { + 1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, + 10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, + 7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 9, + 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 8, 0, + 10,10, 0, 9, 9, 0,10,10, 0,10,10, 0, 9, 9, 0,10, + 10, 0, 9, 9, 0,11,11, 0,11,11, 0,12,12, 0,11,11, + 0,12,12, 0,13,13, 0,12,12, 0,13,12, 0, 8, 8, 0, + 12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0,13, + 13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, + 12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 8, 8, + 0,12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,14, 0, + 14,13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p0_p2_1 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p2_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p0_p2_1, + 0 +}; + +static const long _vq_quantlist__44p0_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p3_0[] = { + 1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,12,11, 9, + 8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, + 11,10,11,11,10,11,11,13,13,14,12,12,12,11,11,11, + 14,14,14,12,12,12, 6, 5, 5, 9, 6, 5, 9, 6, 6, 9, + 7, 7,12,10,10,11, 6, 6,10, 7, 7,13,10,10,12, 7, + 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, + 13, 9, 9,12,11,11,16,13,13,15,11,11, 8, 7, 7,12, + 12,12,12,11,11,12,11,11,14,14,14,14,12,12,12,12, + 12,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, + 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, + 11,11, 8, 8, 8,13,11,11,13,10,10,13,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,14,10,10, 9, 7, 7, + 13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,13, + 12,12,15,14,14,15,13,12, 0,11,11, 0,12,12, 0,12, + 12, 0,12,12, 0,15,15, 0,12,12, 0,13,12, 0,14,15, + 0,12,12, +}; + +static const static_codebook _44p0_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p3_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p0_p3_0, + 0 +}; + +static const long _vq_quantlist__44p0_p3_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p0_p3_1[] = { + 2, 4, 4, 8, 8,10,12,12,11,11, 9,11,11,12,13,11, + 12,12,11,11,11,12,12,12,12,10,13,12,13,13,11,12, + 12,13,13,11,12,12,13,13,11,12,13,13,13,11,13,13, + 13,13,10,13,13,12,13,11,12,12,14,14,11,13,12,12, + 12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13, + 11,12,12,13,13,11,13,13,12,12,11,12,12,13,13,11, + 13,13,12,12,11,13,13,13,13,11,12,12,14,14,11,13, + 13,12,12,11,12,12,13,13,11,13,13,12,12,11,10,10, + 10,10,12,10,10,11,11,11, 8, 8,11,11,13,10,10,10, + 10,12,10,10,10,10,13,11,11,11,11,13,10,10,11,11, + 13,11,11,12,12,13,11,11,11,11,13,11,11,12,12,13, + 11,11,12,12,13,10,10,11,11,13,11,11,11,11,13,11, + 10,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10, + 11,11,13,11,11,11,11,12,10,11,11,11,13,11,11,11, + 11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11, + 13,11,11,11,11,13,11,11,11,11,11,10,10,10,10,12, + 10,10, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,12, + 12,10,10,12,12,12,12,12,13,13,13,14,14,13,12,12, + 11,11,13,13,13,12,12,13,12,12,11,11,13,12,13,11, + 11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11, + 13,12,12,10,10,13,13,13,11,11,13,13,13,14,14,13, + 12,12,10,10,13,13,13,11,11,13,12,13,10,10,13,13, + 13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13, + 11,11,13,13,12,10,10,14,12,12, 8, 8,14,12,12, 9, + 9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, + 14,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, + 12,12, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, + 12,10,10,15,13,13,10,10,14,12,12, 9, 9,14,13,13, + 9, 9,14,13,13, 9, 9,15,12,12, 9, 9,15,13,13, 9, + 9,14,12,12, 9, 9,14,13,13, 9, 9,14,13,13, 9, 9, + 15,12,12, 9, 9,14,13,13, 9, 9,14,12,12, 9, 9,14, + 13,13, 9, 9,13,12,12, 8, 8,13,13,13, 8, 8,14,13, + 13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, + 10,10,14,14,14,11,11,14,14,14, 9, 9,14,14,14,10, + 10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,11,11, + 14,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,14, + 14,14, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, + 14, 9, 9,14,14,14, 8, 8,14,14,14, 9, 9,15,14,14, + 11,11,14,14,14, 8, 8,14,14,14, 9, 9,14,14,14, 8, + 8,12,12,12,13,13,16,15,15,11,11,16,15,16,12,12, + 17,16,16,11,11,17,15,15,12,11,16,16,16,12,13,16, + 15,15,13,13,16,16,16,12,12,16,16,15,13,13,16,16, + 16,12,12,16,16,16,13,13,17,16,16,14,14,17,17,16, + 12,12,17,16,16,13,13,17,17,16,12,13,16,16,17,13, + 12,17,16,16,14,13,17,16,16,12,12,17,16,16,12,12, + 17,16,17,12,12,17,17,17,13,13,16,16,16,13,14,17, + 17,16,12,12,16,16,16,13,13,17,17,17,12,12,13,14, + 14,10,10,16,14,14,12,12,16,15,15,14,14,16,14,14, + 12,12,15,14,14,13,13,17,15,15,14,13,16,16,15,15, + 15,16,15,15,14,14,16,15,15,14,14,17,15,15,14,14, + 16,15,15,14,14,16,16,15,15,15,17,15,15,13,13,16, + 15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,15, + 15,15,15,16,14,14,13,13,16,15,15,14,14,16,14,14, + 13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13, + 13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10, + 16,14,14,13,13,15,14,14,13,13,16,14,14,12,12,16, + 14,14,12,12,15,15,15,14,14,16,14,14,14,14,16,15, + 14,14,14,16,14,14,14,14,16,15,15,14,13,16,15,15, + 14,14,16,14,14,14,14,17,15,15,14,14,16,14,14,14, + 14,16,15,15,13,14,16,15,15,14,14,16,14,14,14,14, + 16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, + 15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15, + 14,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, + 17,17,14,15,15,18,18,14,14,14,18,19,14,14,14,18, + 18,15,15,15,19,18,15,16,15,18,20,15,15,15,18,19, + 15,15,15,19,19,15,15,15,18,20,15,15,15,18,19,15, + 15,16,20,18,15,15,15,18,18,15,15,15,19,19,15,15, + 15,18,19,15,15,15,18,19,15,15,15,19,19,14,15,14, + 19,19,15,15,15,20,19,15,14,14,19,18,14,15,15,18, + 19,15,15,16,20,20,14,14,14,18,19,15,15,15,19,18, + 14,14,14,18,18,14,12,12, 9, 9,13,14,14,18,18,14, + 13,13,18,19,14,14,14,18,18,14,14,14,18,18,15,15, + 15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14, + 18,18,15,15,15,19,18,14,15,15,19,19,15,14,14,19, + 18,14,15,15,19,18,15,14,14,19,18,14,15,15,19,18, + 15,15,15,21,18,15,14,14,19,18,14,15,15,18,19,14, + 15,14,20,19,14,15,15,18,19,14,15,15,19,19,15,14, + 14,19,20,14,15,15,18,18,14,14,14,19,19,14,15,15, + 19,18,12,12,12,13,13,16,15,15,11,11,16,15,15,12, + 12,16,16,16,11,11,16,15,15,11,11,16,16,16,13,13, + 17,16,16,13,13,17,17,17,12,12,16,16,16,13,13,17, + 16,17,13,12,15,16,16,12,12,16,15,15,13,13,17,16, + 16,12,12,16,16,15,12,12,16,16,16,12,12,17,17,16, + 13,12,16,16,16,13,13,17,16,16,12,12,17,16,16,12, + 12,17,17,16,12,12,16,17,16,12,12,17,15,15,13,13, + 17,16,16,12,12,16,16,16,12,12,16,16,16,12,12,13, + 13,13, 9, 9,15,14,14,13,13,16,15,14,14,14,16,14, + 14,13,13,15,14,14,13,13,17,15,15,14,14,16,15,15, + 15,15,16,15,15,14,14,16,15,15,15,15,17,15,15,14, + 14,16,15,15,14,14,16,15,15,15,15,17,14,15,14,14, + 16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,16, + 15,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14, + 14,13,13,17,15,15,14,14,16,15,16,15,15,17,14,14, + 13,13,16,15,15,14,14,18,14,14,13,13,13,11,11,11, + 11,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12, + 16,13,14,12,12,16,15,15,13,13,16,14,14,14,14,16, + 15,15,13,13,16,14,14,13,13,16,14,15,13,13,15,15, + 15,13,13,16,14,14,14,13,16,14,14,13,13,16,14,14, + 13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14, + 14,16,15,15,12,12,16,14,14,13,13,16,15,15,12,12, + 16,15,15,13,13,16,14,14,14,14,17,15,14,12,12,16, + 14,14,13,13,16,15,15,12,12,14,14,14, 8, 8,14,14, + 14,17,18,14,15,15,17,18,14,14,14,17,18,14,14,14, + 18,18,14,15,15,18,18,14,16,15,19,19,15,15,15,18, + 19,15,16,15,20,19,15,15,15,18,18,14,15,15,18,19, + 15,16,16,20,19,15,15,15,19,17,14,15,15,20,18,14, + 15,15,18,18,14,15,15,18,19,14,15,15,19,20,14,14, + 14,18,18,14,15,15,18,19,14,14,14,18,19,14,15,15, + 19,18,15,16,16,20,21,14,14,15,19,19,14,15,15,19, + 19,14,14,14,19,18,13,12,12, 9, 9,13,14,14,18,19, + 14,14,14,18,19,14,14,14,18,18,14,14,14,18,18,14, + 15,15,19,19,15,14,14,19,18,15,15,15,19,19,15,14, + 14,19,20,14,15,15,18,19,14,15,15,20,18,15,14,14, + 18,18,14,15,15,18,18,14,14,14,19,19,14,15,15,18, + 18,14,15,15,19,18,15,14,14,19,19,14,15,15,19,18, + 15,14,14,19,18,14,14,15,18,19,14,15,15,19,18,15, + 14,14,18,19,14,15,14,19,20,14,14,14,19,19,14,15, + 15,19,19,12,12,12,13,13,16,16,16,11,11,16,16,16, + 12,12,17,16,16,11,11,17,15,15,11,11,16,16,16,13, + 13,17,15,16,13,13,16,16,16,12,12,17,16,16,13,13, + 17,17,16,12,12,17,17,16,13,13,17,16,16,13,13,17, + 17,17,12,12,17,16,16,13,13,17,17,17,12,12,16,16, + 16,12,12,17,15,15,13,13,17,16,16,11,11,17,16,16, + 12,12,16,16,16,11,11,16,17,16,12,12,17,16,16,13, + 13,17,17,16,12,12,17,17,16,12,12,17,16,16,11,11, + 13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14,16, + 14,14,12,12,16,14,14,13,13,17,15,15,14,14,16,15, + 15,15,15,17,15,15,14,14,16,15,15,14,14,17,15,15, + 14,14,16,15,15,14,14,16,15,15,15,16,17,14,15,14, + 14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14, + 16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,16, + 14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14, + 14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11, + 10,10,16,14,14,12,12,15,13,13,13,12,16,14,14,11, + 11,16,14,14,11,11,16,14,15,13,14,16,14,14,13,13, + 16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, + 15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,14, + 15,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14, + 13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, + 12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12, + 17,14,14,12,12,16,15,15,12,12,13,14,14, 8, 8,13, + 14,14,18,18,13,15,15,17,18,14,14,14,18,19,14,14, + 14,19,18,14,15,15,19,18,15,15,16,21,18,15,15,15, + 19,19,14,16,16,19,19,14,15,15,18,19,14,15,15,19, + 20,14,16,16,19,18,15,15,15,18,19,14,15,15,19,18, + 15,15,15,18,18,15,15,15,20,18,15,16,16,20,19,14, + 15,14,18,19,14,15,16,19,20,14,15,15,19,18,15,15, + 15,19,18,15,16,16,20,19,15,14,14,18,18,14,15,15, + 19,19,14,15,15,18,18,13,12,12, 8, 8,13,14,14,19, + 18,14,13,13,20,18,14,14,14,19,18,14,13,13,18,19, + 14,15,15,20,19,15,14,14,19,19,14,15,15,19,18,15, + 14,14,20,20,15,15,15,19,18,14,15,15,19,18,15,14, + 14,19,18,14,15,15,20,19,14,14,14,20,19,14,15,15, + 19,18,15,15,15,18,18,15,14,14,18,18,14,15,15,19, + 19,14,14,14,19,19,14,15,15,19,19,15,15,15,19,18, + 15,14,14,20,19,15,15,15,19,19,14,14,14,20,19,14, + 15,15,20,20,12,12,12,13,13,17,16,16,11,11,16,16, + 15,12,12,17,16,16,11,11,17,15,15,11,11,17,17,17, + 13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13, + 13,17,17,16,12,13,16,17,16,13,13,17,16,15,13,13, + 17,16,16,12,12,17,16,16,12,13,17,16,17,12,12,17, + 17,17,12,12,17,16,15,13,13,17,16,16,12,12,17,16, + 16,12,12,17,16,16,11,11,16,16,16,12,12,17,15,15, + 13,13,17,16,15,11,11,16,16,16,12,12,17,16,16,11, + 11,13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14, + 16,14,14,12,12,16,14,14,13,13,17,15,15,14,15,16, + 15,15,15,15,17,15,15,14,14,16,15,15,15,14,16,15, + 15,14,14,16,15,15,14,14,16,15,16,15,15,17,15,14, + 14,14,16,15,15,14,14,17,15,15,13,13,16,15,15,14, + 14,16,16,16,15,15,17,14,14,13,13,16,15,15,14,14, + 18,14,15,13,13,16,15,15,14,14,16,16,15,15,15,16, + 14,14,13,13,16,15,15,14,14,17,14,15,13,13,13,11, + 11,10,10,15,14,14,12,12,15,14,14,13,13,16,14,14, + 12,12,16,13,14,12,12,16,14,15,14,13,16,14,14,14, + 14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13, + 15,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, + 14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14, + 14,13,13,17,15,15,12,12,16,14,14,12,12,16,14,15, + 12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12, + 12,16,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, + 14,14,14,17,17,14,15,15,18,18,14,14,14,18,17,14, + 14,14,18,18,14,15,15,18,20,15,16,15,19,18,15,15, + 15,19,18,15,15,16,19,18,15,15,15,18,18,14,15,15, + 18,18,15,16,16,18,19,15,15,15,18,18,15,15,15,19, + 20,15,15,15,18,18,15,15,15,18,18,15,16,16,19,19, + 15,14,15,19,19,15,15,15,19,20,14,14,15,18,18,15, + 15,15,19,19,15,16,16,19,19,15,15,14,18,19,15,15, + 15,20,20,15,15,14,18,18,13,12,12, 8, 8,13,14,14, + 18,18,14,14,14,18,18,14,14,14,18,20,14,14,14,18, + 18,14,15,15,19,18,15,14,14,18,19,15,15,15,18,19, + 15,14,14,18,19,15,15,15,18,18,14,15,14,18,19,15, + 14,14,21,19,15,15,15,19,18,14,14,14,19,18,14,15, + 15,19,18,15,15,15,20,19,15,14,14,20,18,14,15,15, + 18,19,14,14,14,19,18,14,15,15,18,19,15,15,15,18, + 19,15,14,14,19,19,15,15,15,19,19,14,14,14,19,20, + 14,15,15,18,19, +}; + +static const static_codebook _44p0_p3_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p0_p3_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p0_p3_1, + 0 +}; + +static const long _vq_quantlist__44p0_p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p0_p4_0[] = { + 2, 6, 6,14,14, 6, 8, 8,14,14, 7, 7, 7,14,14, 0, + 13,13,15,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, + 10,16,16, 9, 8, 8,14,15, 0,13,13,17,17, 0,13,13, + 16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, + 14, 0,13,13,17,17, 0,13,13,15,15, 0,14,14,16,16, + 0, 0, 0,18,19, 0,12,12,16,15, 0,16,16, 0,20, 0, + 14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,19, 0,12, + 12,15,15, 0,18,17,21,21, 0,14,14,16,16, 5, 7, 7, + 12,13, 9,10, 9,14,14,11,10,10,14,14, 0, 0, 0,18, + 17, 0,20,21,18,18, 9,10,10,14,14,12,12,12,17,16, + 12,10,10,14,14, 0,20,20,18,17, 0,21,21,17,17,11, + 10,10,14,14,15,13,13,18,18,13,11,11,14,14, 0,20, + 0,18,18, 0,20,21,18,17, 0,21, 0,18,19, 0, 0, 0, + 0,21, 0,21,20,16,17, 0, 0, 0,21,21, 0, 0, 0,20, + 18, 0,20, 0,17,18, 0, 0, 0, 0, 0, 0, 0,20,16,17, + 0, 0, 0,20, 0, 0, 0, 0,18,18, 6, 6, 6,13,13, 8, + 5, 5,11,11, 9, 6, 6,13,13, 0, 9, 9,12,12, 0,10, + 10,14,14, 9, 7, 7,13,13,12, 9, 9,13,13,10, 6, 6, + 13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, + 13,13,10,10,13,13,11, 6, 6,13,13, 0,10,10,15,15, + 0,10,10,13,13, 0,12,11,15,15, 0,20,19,17,16, 0, + 9, 9,13,13, 0,13,13,20,19, 0,11,11,13,13, 0,11, + 11,15,15, 0,20,19,17,17, 0,10,10,13,13, 0,14,15, + 0,21, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, + 15, 0,11,11,15,15, 0,15,15,20,20, 0,16,16, 0, 0, + 0,11,11,15,15, 0,14,14,17,17, 0,11,11,15,15, 0, + 15,15,20,21, 0,16,16,21,21, 0,12,12,15,15, 0,15, + 15,18,20, 0,11,11,16,15, 0,15,15,21,21, 0,16,16, + 0,21, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,14,14,21, + 21, 0,17,18, 0, 0, 0,16,17,20, 0, 0,16,16, 0, 0, + 0, 0, 0, 0, 0, 0,15,15,20,20, 0,19,18, 0,21, 0, + 18,17, 0, 0, 0,10,10,11,11, 0,10,10,10,10, 0,11, + 11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, + 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, + 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, + 0,10,10,12,12, 0,13,13,13,13, 0,12,12,12,12, 0, + 14,13,13,13, 0,19,21,15,15, 0,12,11,12,12, 0,16, + 15,19,19, 0,13,13,11,11, 0,13,13,13,13, 0, 0,21, + 15,16, 0,12,12,12,12, 0,16,16,19,21, 0,13,13,12, + 12, 7, 7, 7,16,16,11, 9, 9,16,16,12, 9, 9,16,16, + 0,13,13,16,16, 0,14,14,17,16,11, 9, 9,16,16,14, + 12,11,17,17,13, 8, 9,15,15, 0,13,13,19,19, 0,13, + 13,16,15,12,10,10,17,17,15,12,12,19,18,14, 9, 9, + 17,16, 0,14,14,18, 0, 0,14,13,16,16, 0,14,15,18, + 17, 0,21, 0,19,21, 0,12,12,16,16, 0,16,16, 0, 0, + 0,14,14,16,16, 0,14,14,18,18, 0, 0,21,20, 0, 0, + 13,13,16,17, 0,18,18, 0, 0, 0,15,14,17,16, 8, 7, + 7,14,14,11,10,10,15,15,13,10,10,15,15, 0,21,20, + 19,19, 0,21, 0,17,18,11,10,10,15,16,14,12,12,18, + 18,14,11,11,15,14, 0,21,20,18,19, 0, 0,21,18,18, + 12,11,11,16,16,16,14,14,18,20,14,11,11,16,15, 0, + 20,20,19,19, 0, 0,20,18,18, 0,21, 0,18,19, 0, 0, + 0, 0, 0, 0,20,20,17,18, 0, 0, 0,20,20, 0, 0, 0, + 19,19, 0, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0,21,18, + 18, 0,21,21, 0,21, 0, 0, 0,19,20,11, 9, 9,14,14, + 13,10,10,14,14,13,11,11,15,15, 0,13,13,13,13, 0, + 14,14,16,16,13,11,11,15,15,16,12,12,15,15,14,10, + 10,14,14, 0,14,14,16,16, 0,14,14,15,15,13,10,10, + 15,15,17,13,14,15,16,15,10,10,15,15, 0,14,14,17, + 16, 0,14,14,15,15, 0,15,15,17,17, 0, 0,21,18,18, + 0,13,13,15,15, 0,16,16,21,20, 0,14,14,15,14, 0, + 15,14,16,17, 0, 0,20,20,19, 0,13,13,15,15, 0,19, + 18, 0, 0, 0,15,15,15,15, 0,11,11,14,14, 0,12,12, + 16,16, 0,12,12,16,16, 0,15,16,21,21, 0,16,17,21, + 0, 0,12,12,17,16, 0,14,14,18,19, 0,11,11,16,16, + 0,15,15,20,21, 0,16,16,21, 0, 0,12,12,17,16, 0, + 15,15,19,19, 0,12,12,16,17, 0,16,15, 0, 0, 0,16, + 16, 0, 0, 0,17,17, 0,21, 0, 0, 0, 0, 0, 0,14,15, + 20, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, 0, + 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,18,18, 0, 0, + 0,18,17, 0, 0, 0,11,11,14,14, 0,12,12,15,15, 0, + 12,12,15,15, 0,13,13,14,14, 0,14,14,17,17, 0,12, + 12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, + 16,17, 0,13,13,16,16, 0,12,12,15,15, 0,14,14,17, + 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, + 0,15,15,17,18, 0,21,20,20,21, 0,12,12,15,15, 0, + 16,16,20,21, 0,14,14,15,15, 0,14,14,17,17, 0, 0, + 0,18,19, 0,12,13,15,15, 0,18,17,21, 0, 0,14,15, + 15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, + 16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, + 14,12,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, + 13,13,17,16,12, 9, 9,16,17,17,13,13,17,17,14, 9, + 9,15,15, 0,14,14,20,19, 0,13,13,16,16, 0,15,15, + 19,18, 0, 0, 0,20,19, 0,12,13,17,17, 0,16,16,20, + 0, 0,14,14,16,17, 0,14,14,19,18, 0, 0, 0,20,20, + 0,13,13,16,16, 0,18,17, 0, 0, 0,15,15,16,16, 9, + 7, 7,14,14,12,10,10,15,15,13,10,10,15,15, 0,21, + 0,18,19, 0,20,21,19,18,12,10,10,16,15,15,13,13, + 18,18,14,11,11,15,15, 0, 0, 0,19,18, 0, 0,21,18, + 18,13,11,11,15,15,16,14,14,17,19,15,11,11,15,15, + 0,21,21,20,18, 0, 0,21,18,18, 0, 0,21,21,19, 0, + 0, 0, 0, 0, 0,19,20,18,17, 0, 0, 0,21,21, 0,21, + 0,20,18, 0, 0,21,19,19, 0, 0, 0, 0, 0, 0,20,21, + 17,17, 0, 0, 0, 0, 0, 0,21, 0,18,20, 0,10,10,14, + 14, 0,11,11,15,15, 0,11,11,15,15, 0,14,14,15,15, + 0,15,15,16,16, 0,11,12,16,16, 0,13,13,16,16, 0, + 11,11,15,15, 0,14,14,17,17, 0,14,14,15,15, 0,11, + 11,16,15, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, + 17,17, 0,14,14,15,15, 0,16,16,18,18, 0, 0, 0,20, + 19, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, + 0,16,15,17,16, 0,20, 0,20,18, 0,13,14,15,15, 0, + 19,18, 0,21, 0,15,15,15,15, 0,11,11,14,14, 0,12, + 12,16,16, 0,12,12,16,16, 0,16,15,20,21, 0,17,16, + 0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, + 16, 0,15,15,21,20, 0,16,16, 0, 0, 0,12,12,16,17, + 0,15,14,19,19, 0,11,12,16,16, 0,15,15,21, 0, 0, + 16,16, 0, 0, 0,16,17, 0, 0, 0, 0, 0, 0, 0, 0,15, + 15,21, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, + 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20, 0, + 0, 0,17,17, 0, 0, 0,12,12,15,15, 0,12,12,15,15, + 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, + 13,13,17,16, 0,14,14,17,17, 0,11,11,16,16, 0,14, + 14,17,17, 0,13,13,16,16, 0,12,12,16,16, 0,15,15, + 16,17, 0,11,11,15,16, 0,14,14,17,17, 0,13,14,16, + 16, 0,15,15,18,18, 0,21,20,20,19, 0,13,13,16,17, + 0,16,16, 0, 0, 0,14,14,16,16, 0,15,15,18,18, 0, + 0, 0,20,19, 0,13,13,16,16, 0,17,17, 0, 0, 0,14, + 14,16,16, 0,11,11,16,16, 0,13,13,18,17, 0,13,13, + 17,17, 0,16,16,17,17, 0,16,16,17,18, 0,12,12,17, + 17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,19, + 0,15,15,16,17, 0,12,12,17,17, 0,17,17,18,18, 0, + 12,12,17,17, 0,16,16,19,19, 0,15,16,17,17, 0,16, + 16,18,17, 0, 0, 0,21,21, 0,13,13,16,16, 0,17,17, + 0,20, 0,15,15,16,17, 0,16,16,19,18, 0, 0,21,20, + 21, 0,14,14,17,16, 0,20, 0, 0, 0, 0,15,16,16,17, + 0, 9, 9,14,14, 0,13,13,16,16, 0,14,14,15,15, 0, + 0,20,19,19, 0, 0, 0,19,19, 0,12,12,15,15, 0,15, + 16,19,18, 0,14,14,15,15, 0,21, 0,18,18, 0,20, 0, + 17,18, 0,13,13,16,16, 0,17,17,17,19, 0,14,14,16, + 15, 0,21,20,20,19, 0, 0, 0,19,19, 0, 0, 0,19,18, + 0, 0, 0, 0, 0, 0,20,20,17,18, 0, 0, 0,21,21, 0, + 0, 0,18,18, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0,20, + 21,18,18, 0, 0, 0,20,21, 0, 0, 0,19,19, 0,18,18, + 15,15, 0,20,21,17,17, 0,19,21,17,17, 0, 0, 0,17, + 18, 0, 0, 0,20,19, 0,19,19,17,17, 0, 0, 0,18,18, + 0,19,20,16,17, 0, 0,21,20,20, 0,19,20,19,18, 0, + 19,20,16,16, 0, 0, 0,18,19, 0,19,20,17,17, 0, 0, + 21, 0,20, 0,21,21,17,19, 0,20, 0,19,20, 0, 0, 0, + 20, 0, 0,19,18,17,16, 0, 0, 0, 0, 0, 0, 0,20,17, + 17, 0,20,21,18,20, 0, 0, 0, 0,21, 0,19,20,17,17, + 0, 0, 0, 0, 0, 0,20,21,17,17, 0,11,11,14,14, 0, + 13,13,16,17, 0,13,13,16,16, 0,17,17, 0,21, 0,18, + 17,21, 0, 0,13,13,16,16, 0,15,15,18,18, 0,12,12, + 16,16, 0,17,16,21, 0, 0,17,17, 0, 0, 0,12,12,17, + 17, 0,17,17,19,21, 0,13,12,16,16, 0,17,17, 0, 0, + 0,17,17, 0, 0, 0,18,17, 0,21, 0, 0, 0, 0, 0, 0, + 15,15,20, 0, 0,20,18, 0, 0, 0,17,18, 0, 0, 0,16, + 17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,19,19, + 0, 0, 0,18,18, 0, 0, 0,14,14,18,18, 0,16,16, 0, + 21, 0,16,16,21,21, 0,17,17, 0,20, 0,17,17,20, 0, + 0,16,15, 0, 0, 0,20,20, 0, 0, 0,15,15,20,20, 0, + 17,17,21, 0, 0,17,18,20,20, 0,15,15,20,20, 0,18, + 18, 0, 0, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, + 20,20, 0,18,17,21, 0, 0, 0, 0, 0,21, 0,15,15,20, + 20, 0,19,19, 0, 0, 0,17,17,21, 0, 0,17,17, 0, 0, + 0, 0, 0,21, 0, 0,15,15,19,19, 0,20,21, 0, 0, 0, + 18,17,21,21, 0,12,12,16,16, 0,14,14,17,17, 0,13, + 13,17,18, 0,16,16,18,17, 0,16,16,18,18, 0,13,13, + 18,18, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,20, + 18, 0,16,16,17,17, 0,12,13,17,17, 0,17,16,18,18, + 0,12,12,16,16, 0,17,16,20,19, 0,16,16,16,16, 0, + 16,17,18,20, 0, 0, 0,21,20, 0,14,14,17,16, 0,19, + 18, 0,20, 0,16,16,17,16, 0,16,16,17,18, 0, 0,21, + 21,21, 0,14,14,16,16, 0,20,20,21, 0, 0,16,16,16, + 16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, + 0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, + 16,16,18,18, 0,14,14,15,15, 0,21, 0,18,18, 0,21, + 0,18,18, 0,13,13,16,16, 0,17,17,19,20, 0,14,14, + 15,15, 0, 0, 0,18,20, 0, 0,21,18,18, 0, 0,21,19, + 18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0,21,21, + 0, 0, 0,19,19, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0, + 21,20,17,17, 0, 0,21,20, 0, 0, 0, 0,19,19, 0,19, + 20,15,16, 0, 0,20,18,17, 0,20,21,17,18, 0,21, 0, + 18,18, 0, 0, 0,19,19, 0,20,20,17,18, 0, 0, 0,18, + 19, 0,20,20,18,17, 0, 0, 0, 0,20, 0, 0,21,17,18, + 0,20,21,17,17, 0, 0, 0,18,18, 0,19,19,17,17, 0, + 0, 0,21,21, 0,20,20,17,17, 0, 0, 0,21,19, 0, 0, + 0,20,19, 0,21,20,17,18, 0, 0, 0, 0, 0, 0, 0,20, + 18,17, 0,21,20,18,18, 0, 0, 0,20,21, 0,20,20,17, + 17, 0, 0, 0, 0, 0, 0,20, 0,17,17, 0,11,11,13,14, + 0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0, 0, 0, + 17,18, 0, 0, 0,13,13,16,16, 0,15,16,18,18, 0,13, + 13,16,17, 0,16,17,20, 0, 0,17,18,20, 0, 0,13,13, + 17,17, 0,16,16,20,21, 0,13,13,16,16, 0,17,17,21, + 0, 0,17,18, 0, 0, 0,17,18, 0,21, 0, 0, 0, 0, 0, + 0,15,15,20, 0, 0,19,19, 0, 0, 0,17,17, 0, 0, 0, + 18,17,21,20, 0, 0, 0, 0, 0, 0,16,16,20,21, 0,21, + 20, 0,21, 0,19,21, 0, 0, 0,15,15, 0, 0, 0,16,17, + 0,19, 0,16,16, 0, 0, 0,17,17, 0, 0, 0,19,18, 0, + 0, 0,16,16,20,20, 0,20,18,21, 0, 0,15,15,21,21, + 0,18,18, 0, 0, 0,18,19, 0, 0, 0,16,15, 0,21, 0, + 20,19, 0, 0, 0,16,16, 0, 0, 0,20,18, 0,21, 0,17, + 18,21, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0, 0,16,16, + 20,20, 0,19,20, 0, 0, 0,17,17, 0, 0, 0,18,17,20, + 21, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0,20,22, 0, 0, + 0,18,18, 0,22, +}; + +static const static_codebook _44p0_p4_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p0_p4_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p0_p4_0, + 0 +}; + +static const long _vq_quantlist__44p0_p4_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p0_p4_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p0_p4_1 = { + 1, 7, + (long *)_vq_lengthlist__44p0_p4_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p0_p4_1, + 0 +}; + +static const long _vq_quantlist__44p0_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p5_0[] = { + 1, 6, 6, 6, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, + 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, + 10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, + 14,14,13,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, + 7, 7,11, 9, 9, 9, 7, 7, 8, 7, 7,12,10,10,10, 7, + 7, 7, 8, 8,12,11,11,12,10,10,11,10,10,14,13,13, + 13,10,10,11,10,11,16,14,14,13,10,10, 7, 8, 7,12, + 12,12,12,11,11,12,11,11,16,14,15,13,12,12,11,11, + 11,17,15,14,14,13,13,10, 9, 9,13,11,11,13,11,11, + 12,11,11,16,14,13,14,11,11,12,11,11,16,15,14,14, + 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, + 13,13,11,11,12,10,10,16,14,14,13,10,10, 8, 8, 8, + 12,12,12,12,11,11,12,11,11,16,14,15,14,12,12,12, + 11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, + 11,12,12,12,16,14,14,14,11,11,12,11,11,17,14,15, + 14,11,11, +}; + +static const static_codebook _44p0_p5_0 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p5_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p0_p5_0, + 0 +}; + +static const long _vq_quantlist__44p0_p5_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p5_1[] = { + 2, 7, 7, 7, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 8, + 7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 7, 6, 6, 6, 9, 7, + 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, + 10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, + 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, + 7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, 9, + 12, 8, 8,12, 9, 9,12,10, 9,12, 8, 8, 8, 7, 7,10, + 9, 9,11, 9, 9,11, 9, 9,11,11,10,11, 9, 9,11,10, + 9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,11, 9, 9, + 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, + 9, 9, 9, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,12, 9, + 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, + 11, 9,10,11,10, 9,11, 9, 9,11,11,11,11, 9, 9,11, + 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, + 10,11,10, 9,11,10,10,11, 9, 9,11,10,10,11,10,11, + 11, 9, 9, +}; + +static const static_codebook _44p0_p5_1 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p5_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p0_p5_1, + 0 +}; + +static const long _vq_quantlist__44p0_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p0_p6_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p0_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p0_p6_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p0_p6_0, + 0 +}; + +static const long _vq_quantlist__44p0_p6_1[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p0_p6_1[] = { + 1, 3, 2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11,12,12,12,14,14,14,15,15, +}; + +static const static_codebook _44p0_p6_1 = { + 1, 25, + (long *)_vq_lengthlist__44p0_p6_1, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p0_p6_1, + 0 +}; + +static const long _vq_quantlist__44p0_p6_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p0_p6_2[] = { + 3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p0_p6_2 = { + 1, 25, + (long *)_vq_lengthlist__44p0_p6_2, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p0_p6_2, + 0 +}; + +static const long _huff_lengthlist__44p0_short[] = { + 3, 3, 7, 8,10,13,16, 3, 2, 5, 7, 9,13,16, 6, 4, + 4, 6,10,14,15, 7, 5, 5, 7,10,13,14, 9, 8, 9, 9, + 9,11,13,12,11,12, 9, 7, 8,11,14,12,10, 6, 5, 7, + 10, +}; + +static const static_codebook _huff_book__44p0_short = { + 2, 49, + (long *)_huff_lengthlist__44p0_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p1_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p1_l0_0[] = { + 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, + 8, 6, 9, 8,10, 9,10,10,11,10, 5, 5, 6, 6, 8, 8, + 9, 9,10,10,10,10,11, 7, 8, 8, 9, 8,10, 9,10, 9, + 11,10,11,10, 7, 8, 8, 8,10, 9,10,10,10,10,11,10, + 11, 9,10,10,11,11,11,11,12,11,12,11,12,11, 9,10, + 10,11,11,11,11,11,11,11,12,11,12,11,11,11,12,12, + 12,12,12,12,12,12,12,11,11,12,11,12,12,12,12,12, + 12,12,12,11,12,12,12,12,12,13,12,13,12,12,12,12, + 12,12,12,12,12,13,13,13,13,12,13,12,12,12,12,12, + 13,13,12,13,12,13,12,13,12,12,12,12,13,13,13,13, + 13,13,12,12,12,12,12,11,12, +}; + +static const static_codebook _44p1_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p1_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p1_l0_0, + 0 +}; + +static const long _vq_quantlist__44p1_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p1_l0_1[] = { + 1, 4, 4, 6, 6, 5, 5, 5, 6, 6, 5, 6, 5, 6, 6, 6, + 6, 7, 7, 7, 6, 7, 6, 7, 7, +}; + +static const static_codebook _44p1_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p1_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p1_l0_1, + 0 +}; + +static const long _vq_quantlist__44p1_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p1_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p1_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p1_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p1_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p1_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p1_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p1_long[] = { + 3, 3, 7, 7, 9,13,16, 3, 2, 4, 6,10,13,17, 7, 4, + 4, 6, 9,12,14, 7, 6, 6, 5, 7, 9,12,10,10, 9, 6, + 6, 9,12,14,14,13, 9, 8,10,11,18,18,15,13,11,10, + 11, +}; + +static const static_codebook _huff_book__44p1_long = { + 2, 49, + (long *)_huff_lengthlist__44p1_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p1_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p1_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p1_p1_0, + 0 +}; + +static const long _vq_quantlist__44p1_p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p2_0[] = { + 1, 4, 4, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, + 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, + 11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12,12, + 0,14,14, 0,11,11, 0, 6, 6, 0, 6, 5, 0, 7, 6, 0, + 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 7, + 7, 0, 7, 7, 0,10,10, 0,11,11, 0,11,11, 0,14,14, + 0,10,10, 0,12,12, 0,14,14, 0,12,12, 0, 6, 6, 0, + 11,11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12, + 12, 0,15,15, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,15, + 15, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, + 0,11,11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, + 12,12, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p1_p2_0 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p2_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p1_p2_0, + 0 +}; + +static const long _vq_quantlist__44p1_p2_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p2_1[] = { + 1, 3, 3, 0, 8, 8, 0, 8, 8, 0,10,10, 0, 9, 9, 0, + 10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, + 7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 9, 9, + 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, + 10,10, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0,10, + 10, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,11,11, + 0,12,12, 0,12,12, 0,12,12, 0,12,12, 0, 8, 8, 0, + 11,11, 0,11,11, 0,13,12, 0,12,12, 0,13,12, 0,13, + 13, 0,12,12, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,13,12, 0,12, + 12, 0,12,12, 0,12,12, 0,11,11, 0,12,12, 0, 8, 8, + 0,12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, + 13,13, 0,12,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p1_p2_1 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p2_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p1_p2_1, + 0 +}; + +static const long _vq_quantlist__44p1_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p3_0[] = { + 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, + 8, 8, 7, 9, 9,11,12,12, 9, 8, 8, 6, 7, 7, 9,11, + 11,10,11,11,10,11,11,13,13,13,11,12,12,10,11,11, + 13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 6, 6, 9, + 7, 7,12,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 7, + 6, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, + 13,10,10,12,11,11,15,13,13,14,11,11, 8, 7, 7,12, + 11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, + 11,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, + 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, + 11,11, 7, 8, 8,13,10,10,12,10,10,12,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, + 12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, + 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, + 12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,15,14, + 0,12,12, +}; + +static const static_codebook _44p1_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p3_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p1_p3_0, + 0 +}; + +static const long _vq_quantlist__44p1_p3_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p1_p3_1[] = { + 2, 3, 4, 7, 7,10,12,12,12,12,10,11,11,13,13,11, + 12,12,11,11,12,12,12,12,12,11,13,13,13,13,12,12, + 12,13,14,12,13,13,13,13,12,13,13,13,13,12,13,13, + 13,13,11,13,13,13,13,12,12,12,14,14,12,13,13,12, + 12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13, + 12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12, + 13,13,12,12,12,13,13,13,13,12,12,12,14,14,12,13, + 13,12,12,12,13,13,13,13,12,13,13,12,12,10,10,11, + 10,10,11,11,11,11,11,11, 9, 9,10,10,12,11,11,10, + 10,12,10,10,10,10,13,12,12,12,12,13,11,11,11,11, + 13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13, + 12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11, + 11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11, + 11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11, + 11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11, + 13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,11, + 11,11, 9, 9,11,12,12,11,11,12,12,12, 9, 9,13,13, + 13,10,10,13,13,13,11,11,13,13,13,14,14,13,13,13, + 11,10,13,13,14,12,12,13,13,13,11,11,13,13,13,11, + 11,13,13,13,14,14,13,13,13,10,10,13,13,13,11,11, + 13,13,13,10,10,13,14,13,11,11,13,14,14,14,14,13, + 13,13,10,10,13,14,14,11,11,13,13,13,10,10,13,14, + 14,11,11,13,13,13,14,14,14,13,13,10,10,13,14,14, + 11,11,13,13,13,10,10,14,12,12, 9, 9,14,12,12, 9, + 9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, + 15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, + 12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12, + 12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, + 10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, + 9,15,12,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, + 15,12,12,10,10,15,13,13, 9, 9,15,12,12, 9, 9,15, + 13,13, 9, 9,13,12,12, 9, 9,13,13,13, 8, 8,13,13, + 13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, + 10,10,15,14,14,11,11,14,14,14, 9, 9,15,14,14,10, + 10,15,14,14, 9, 9,14,14,14,10,10,15,14,14,11,11, + 15,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,15, + 14,15,10,10,15,14,14,11,11,14,14,14, 9, 9,14,14, + 14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, + 11,11,14,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, + 8,12,12,12,13,13,16,16,16,11,11,17,16,16,12,12, + 17,16,16,11,11,17,16,16,11,11,17,17,16,13,13,17, + 16,16,13,13,18,17,16,12,12,17,16,16,13,13,17,16, + 17,12,12,18,17,17,13,13,17,16,16,14,14,18,17,17, + 12,12,18,16,16,13,13,17,17,17,13,12,17,17,17,13, + 13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,12, + 17,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, + 17,17,12,12,17,17,17,13,13,18,17,18,12,12,13,14, + 14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, + 12,13,16,14,14,13,13,17,15,15,14,14,16,16,16,15, + 15,17,15,15,14,14,17,16,16,14,15,17,15,15,14,14, + 17,15,16,14,14,17,16,16,15,15,17,15,15,13,13,17, + 15,15,14,14,18,15,15,13,14,17,15,15,14,14,16,16, + 16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15, + 13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,13, + 13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10, + 16,14,14,13,12,16,14,14,13,13,16,15,14,12,12,16, + 14,14,12,12,16,15,15,14,14,16,14,14,14,14,17,15, + 15,13,13,16,15,15,14,14,17,15,15,13,14,17,15,15, + 14,14,17,15,14,14,14,17,15,15,13,13,17,15,15,14, + 14,17,15,15,13,13,17,15,15,14,14,17,14,14,14,14, + 17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17, + 15,15,14,14,17,15,15,14,14,17,15,15,13,13,17,15, + 15,13,13,17,15,15,13,13,14,14,15, 8, 8,14,14,14, + 19,19,14,15,15,18,19,14,14,14,19,18,14,14,14,19, + 19,15,15,15,19,18,15,16,16,19,19,15,15,15,19,19, + 15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,16, + 16,16,20,19,15,15,15,19,18,15,16,16,20,19,15,15, + 15,18,18,15,15,15,19,20,15,16,16,19,19,15,15,15, + 20,19,15,15,15,20,19,15,15,15,19,18,15,15,15,19, + 19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,20, + 15,15,15,19,19,14,12,12, 9, 9,14,14,14,19,19,14, + 14,14,19,19,14,14,15,20,19,15,14,14,18,19,15,15, + 15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,14, + 20,19,15,15,15,20,19,15,15,15,19,20,15,14,14,19, + 20,15,15,15,20,20,15,14,14,20,19,15,15,15,19,19, + 15,15,15,19,19,15,14,14,19,19,15,15,15,19,20,15, + 15,15,20,20,15,15,15,19,19,15,15,15,20,19,16,14, + 14,19,19,15,15,15,20,19,15,14,15,20,19,14,15,15, + 20,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12, + 12,17,16,16,11,11,17,15,16,11,11,17,17,17,13,13, + 18,16,17,13,13,18,17,17,13,12,17,16,17,13,13,17, + 17,17,13,13,16,16,16,12,12,17,16,16,13,13,17,16, + 16,12,12,17,16,16,12,13,17,17,17,12,12,17,17,17, + 13,13,18,16,16,13,13,18,17,17,12,12,18,17,17,12, + 12,17,17,17,12,12,17,17,17,12,12,17,16,16,13,13, + 17,17,17,12,12,17,16,16,12,12,17,17,17,12,12,13, + 14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17,14, + 14,13,13,16,14,14,13,13,17,15,15,15,15,16,16,16, + 15,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, + 14,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14, + 17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,16, + 16,16,15,15,18,15,15,14,13,17,15,15,14,14,17,15, + 15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15, + 14,13,17,15,15,14,14,17,15,15,13,13,13,11,11,11, + 11,16,14,14,12,12,16,14,14,13,13,16,15,14,12,12, + 17,14,14,12,12,17,15,15,13,13,17,14,14,14,14,17, + 15,15,13,13,17,14,15,14,13,17,15,15,13,13,16,15, + 15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14, + 13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,14, + 14,17,15,15,12,12,17,15,15,13,13,17,15,15,12,12, + 16,15,15,13,13,17,14,14,13,14,17,15,15,12,12,17, + 14,14,13,13,17,15,15,12,12,14,14,14, 8, 8,14,14, + 14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,14, + 18,19,15,15,15,18,19,15,16,16,20,20,15,15,15,19, + 20,15,16,16,19,20,15,15,15,19,20,15,15,16,19,19, + 15,16,16,20,20,15,15,15,20,19,15,16,16,20,19,15, + 15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15, + 15,19,19,15,16,15,20,19,15,15,15,19,19,15,15,15, + 19,20,15,16,16,20,20,15,15,15,19,19,15,15,15,20, + 20,15,15,15,19,19,14,12,12, 9, 9,14,14,14,18,18, + 14,14,14,19,20,14,14,14,18,18,14,14,14,18,19,15, + 15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,14, + 15,19,19,15,15,15,18,20,15,15,15,19,19,15,14,14, + 19,19,15,15,15,20,19,15,15,14,20,20,15,15,15,19, + 19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,19, + 15,14,14,19,20,14,15,15,19,19,15,15,15,19,19,15, + 14,14,20,19,15,15,15,19,19,15,14,14,20,19,15,15, + 15,19,19,13,12,12,13,13,17,17,16,11,11,16,16,16, + 12,12,17,17,16,11,11,17,16,16,11,11,17,17,17,13, + 13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,13, + 18,17,17,12,12,18,17,17,13,13,18,16,17,13,13,17, + 17,17,12,12,18,17,17,13,13,18,17,17,12,12,17,16, + 17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16, + 12,12,17,17,17,11,11,17,17,17,12,12,18,16,16,13, + 13,18,17,17,12,11,17,16,16,12,12,18,17,17,11,11, + 13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17, + 14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,16, + 16,15,16,18,15,15,14,14,17,15,15,14,14,17,15,15, + 14,14,18,15,15,14,14,16,16,16,15,16,18,15,15,14, + 14,17,16,15,14,14,18,15,15,14,14,17,15,15,14,14, + 17,16,16,15,15,18,14,15,13,13,17,15,15,14,14,18, + 15,15,13,13,17,15,15,14,14,17,16,15,15,15,17,15, + 15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11, + 10,10,16,14,14,12,12,16,14,14,12,12,17,14,15,11, + 11,17,14,14,11,11,17,15,15,13,13,17,14,14,14,13, + 17,15,15,13,13,16,15,15,13,13,17,15,15,13,13,17, + 15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14, + 15,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14, + 13,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12, + 12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12, + 17,14,14,12,12,17,15,15,12,12,13,15,14, 8, 8,14, + 14,14,19,19,14,15,15,18,19,14,14,14,18,19,14,15, + 14,19,19,15,16,15,19,19,15,16,16,19,20,15,15,15, + 19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19, + 19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,19, + 15,15,15,19,19,15,15,15,19,19,15,16,16,20,19,15, + 15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16, + 15,19,19,15,16,16,21,19,15,15,15,20,20,15,15,15, + 20,21,15,15,15,19,20,14,12,12, 8, 8,14,14,14,19, + 19,14,13,13,19,19,14,14,14,19,19,14,13,14,19,19, + 15,15,15,20,20,15,14,14,20,19,15,15,15,19,20,15, + 14,14,19,20,15,15,15,20,19,15,15,15,19,20,15,14, + 14,20,20,15,15,15,20,19,15,14,14,19,19,15,15,15, + 19,19,15,15,15,20,19,15,14,14,21,19,15,15,15,20, + 21,15,14,14,21,19,15,15,15,19,19,15,15,15,20,20, + 15,14,14,19,21,15,15,15,19,19,15,14,14,19,20,15, + 15,15,19,19,13,12,12,13,13,17,16,16,11,11,17,16, + 15,12,12,18,16,16,11,11,17,16,16,11,11,18,17,17, + 13,13,18,16,16,13,13,17,17,17,12,13,18,17,16,13, + 13,18,17,17,13,13,17,17,17,13,13,17,16,16,13,13, + 18,16,17,12,12,17,16,16,13,12,17,17,17,12,12,18, + 17,17,13,12,18,16,16,13,13,18,17,17,12,12,17,16, + 16,12,12,17,17,17,11,11,17,16,16,12,12,17,16,16, + 13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11, + 11,13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14, + 17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17, + 15,16,15,15,17,15,15,14,14,17,15,16,14,15,18,15, + 15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15, + 13,14,17,15,15,14,14,18,15,15,14,14,17,15,15,14, + 14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14, + 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, + 15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11, + 11,10,10,16,14,14,12,12,16,14,14,13,13,17,14,14, + 11,11,17,14,14,12,12,17,15,15,14,14,17,14,14,14, + 14,17,15,15,13,13,17,15,14,13,13,16,15,15,13,13, + 16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17, + 14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14, + 14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15, + 12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, + 12,17,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, + 14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, + 14,14,18,19,15,16,15,19,19,15,17,16,20,20,15,15, + 15,19,19,15,16,16,19,19,15,15,15,19,19,15,16,15, + 18,19,15,16,16,20,20,15,15,15,19,19,15,16,16,19, + 20,15,15,15,19,19,15,15,16,19,19,15,16,16,20,20, + 15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,15, + 15,15,19,19,15,16,16,20,20,15,15,15,19,20,15,16, + 16,20,20,15,15,15,19,19,13,12,12, 8, 8,14,14,14, + 19,20,14,14,14,19,19,14,14,14,18,19,14,14,14,19, + 20,15,15,15,19,20,15,14,14,21,20,15,15,15,20,20, + 15,15,14,19,19,15,15,15,19,19,15,15,15,19,19,15, + 14,14,19,20,15,15,15,19,20,15,14,14,19,19,15,15, + 15,19,19,15,15,15,19,19,16,14,14,19,19,15,15,15, + 20,20,15,14,14,21,19,15,15,15,19,19,15,15,15,19, + 20,16,14,14,19,20,15,15,15,19,19,15,14,14,19,19, + 15,15,15,20,19, +}; + +static const static_codebook _44p1_p3_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p1_p3_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p1_p3_1, + 0 +}; + +static const long _vq_quantlist__44p1_p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p1_p4_0[] = { + 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,14,14, 0, + 13,13,16,16, 0,13,13,15,14, 7, 8, 8,15,15, 9,10, + 10,16,16, 9, 8, 8,15,15, 0,13,13,17,16, 0,13,13, + 15,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, + 14, 0,13,13,17,18, 0,13,13,15,15, 0,14,14,16,16, + 0, 0, 0,19,18, 0,12,12,16,15, 0,15,16, 0,20, 0, + 14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,18, 0,12, + 12,15,15, 0,17,17, 0,20, 0,14,14,16,16, 5, 6, 7, + 12,12, 9, 9, 9,14,14,10,10,10,14,14, 0,21,21,18, + 17, 0,20,20,18,17, 9,10,10,14,14,12,12,12,16,16, + 12,10,10,14,14, 0,20,19,18,17, 0, 0,20,17,18,11, + 10,10,14,14,14,13,13,18,18,13,11,11,14,14, 0,20, + 20,17,18, 0,21,21,17,17, 0,21, 0,18,18, 0, 0, 0, + 0, 0, 0,20,19,16,17, 0, 0, 0,19,19, 0, 0, 0,18, + 18, 0,21,21,18,18, 0, 0, 0, 0, 0, 0,20,20,16,17, + 0, 0, 0,21,21, 0, 0, 0,18,19, 6, 6, 6,13,12, 8, + 6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, + 10,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, + 13,13, 0,10,10,14,15, 0,10,10,13,13, 9, 7, 7,13, + 13,13,10, 9,13,13,10, 6, 6,13,13, 0,10,10,15,14, + 0,10,10,13,13, 0,11,11,15,15, 0,19,20,17,17, 0, + 9, 9,13,13, 0,13,13,20,20, 0,11,11,13,13, 0,11, + 11,15,15, 0,19,19,17,17, 0,10,10,13,13, 0,15,15, + 20,20, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, + 15, 0,11,11,15,15, 0,15,15,20, 0, 0,16,16, 0,21, + 0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,15, 0, + 15,16,19,20, 0,16,16,21,21, 0,12,12,15,15, 0,15, + 14,18,18, 0,11,11,16,16, 0,15,15,21,21, 0,16,15, + 0, 0, 0,16,16,21, 0, 0, 0, 0, 0, 0, 0,14,14,20, + 20, 0,18,18, 0, 0, 0,16,17,21, 0, 0,16,16,21,21, + 0, 0, 0, 0, 0, 0,15,15,21,21, 0,20,19, 0,21, 0, + 17,17, 0, 0, 0,10,10,12,11, 0,10,10,10,11, 0,11, + 11,12,12, 0,11,11, 9, 9, 0,13,13,11,12, 0,11,11, + 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, + 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, + 0,10,10,12,12, 0,13,13,14,14, 0,12,12,12,12, 0, + 14,14,14,13, 0,19,20,15,15, 0,12,11,12,12, 0,15, + 15,21,20, 0,13,13,11,11, 0,13,13,13,13, 0,19, 0, + 15,15, 0,12,12,12,12, 0,17,16,19, 0, 0,13,13,12, + 12, 7, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, + 0,13,13,15,14, 0,14,14,17,16,10, 9, 9,16,16,14, + 11,11,17,16,12, 9, 8,15,15, 0,13,13,18,18, 0,13, + 13,15,15,12,10,10,18,17,15,12,12,17,17,14, 9, 9, + 16,16, 0,13,13,18,19, 0,14,13,17,16, 0,14,14,18, + 18, 0, 0, 0,20,21, 0,12,12,16,16, 0,16,16,20,21, + 0,14,14,17,16, 0,14,14,18,19, 0, 0, 0,19,21, 0, + 13,13,17,17, 0,17,17, 0,21, 0,15,15,16,16, 8, 7, + 7,14,14,11,10,10,15,15,12,10,10,15,15, 0,20,20, + 18,18, 0, 0, 0,17,17,11,10,10,16,16,14,12,12,18, + 17,14,11,11,15,15, 0,20,21,18,18, 0, 0,19,18,17, + 12,10,10,16,16,17,14,14,19,19,14,11,11,15,15, 0, + 21,21,19,19, 0,21,20,19,18, 0,21, 0,18,19, 0, 0, + 0, 0, 0, 0,20,20,18,17, 0,21, 0, 0, 0, 0, 0, 0, + 19,18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0,21,17, + 18, 0, 0, 0, 0,21, 0, 0,21,18,19,11, 9, 9,14,14, + 13,10,10,13,13,13,11,11,15,15, 0,13,13,12,12, 0, + 15,15,16,16,13,10,10,15,15,16,12,12,15,15,15,10, + 10,15,15, 0,14,13,16,15, 0,14,13,15,15,13,10,10, + 15,15,18,14,14,15,15,15,10,10,14,15, 0,14,14,16, + 16, 0,14,14,16,15, 0,15,15,17,16, 0,21, 0,18,18, + 0,12,13,15,15, 0,16,16, 0, 0, 0,14,14,15,15, 0, + 15,15,16,16, 0,21,20,18,18, 0,13,13,15,15, 0,19, + 18, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12,12, + 16,16, 0,12,12,16,16, 0,15,16,20, 0, 0,16,17, 0, + 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16,17, + 0,15,15,20, 0, 0,16,16, 0, 0, 0,12,12,16,16, 0, + 15,15,19,19, 0,11,11,17,17, 0,16,16,21, 0, 0,16, + 16, 0, 0, 0,17,17,20,20, 0, 0, 0, 0, 0, 0,15,15, + 20, 0, 0,17,18, 0, 0, 0,17,17, 0, 0, 0,16,16, 0, + 21, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,18, 0, 0, + 0,18,17, 0, 0, 0,11,11,14,14, 0,11,11,15,15, 0, + 12,12,16,16, 0,13,13,14,14, 0,14,14,17,17, 0,12, + 12,16,16, 0,14,14,16,16, 0,11,11,16,15, 0,13,13, + 16,17, 0,13,13,16,16, 0,12,12,15,16, 0,15,14,16, + 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, + 0,15,14,18,18, 0,21, 0,19,19, 0,13,13,15,15, 0, + 16,16,20,20, 0,14,14,16,15, 0,14,14,17,17, 0,21, + 0,20,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, + 16,15, 8, 8, 8,16,16,12, 9, 9,16,16,13, 9, 9,16, + 16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, + 14,11,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, + 13,13,17,16,12, 9, 9,16,17,17,13,13,16,16,14, 9, + 9,15,15, 0,14,14,20,20, 0,13,13,15,15, 0,15,14, + 18,18, 0, 0, 0,20,21, 0,12,13,16,17, 0,16,16,20, + 21, 0,14,14,16,17, 0,14,14,18,17, 0, 0, 0,20,21, + 0,13,13,16,16, 0,19,17, 0,21, 0,14,15,16,16, 8, + 7, 7,14,13,12,10,10,15,15,13,10,10,15,15, 0,21, + 21,18,19, 0,20,21,18,18,12,10,10,16,15,15,12,12, + 17,17,14,11,11,15,15, 0,21,21,19,18, 0, 0,21,17, + 18,13,11,11,15,15,16,13,13,18,19,15,11,11,15,14, + 0,21, 0,19,19, 0, 0,21,18,18, 0, 0,21,19,19, 0, + 0, 0, 0, 0, 0,20,19,17,17, 0, 0, 0,21, 0, 0,21, + 0,18,19, 0, 0,20,20,19, 0, 0, 0, 0, 0, 0,21,20, + 18,17, 0, 0, 0, 0,20, 0, 0, 0,18,19, 0,10,10,15, + 14, 0,11,11,14,14, 0,11,11,15,16, 0,14,14,15,15, + 0,15,15,16,16, 0,11,11,16,16, 0,14,13,16,16, 0, + 11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, + 11,15,15, 0,13,13,15,15, 0,11,11,15,15, 0,15,15, + 18,17, 0,14,14,15,15, 0,15,16,18,18, 0, 0, 0,20, + 20, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, + 0,16,15,17,17, 0, 0, 0,19,19, 0,13,13,15,15, 0, + 20,19, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12, + 12,16,16, 0,12,12,16,16, 0,15,15,21,21, 0,17,16, + 0, 0, 0,12,12,16,16, 0,14,14,17,17, 0,11,11,16, + 16, 0,15,15, 0, 0, 0,16,16,21, 0, 0,12,12,17,16, + 0,14,15,20,20, 0,11,11,16,16, 0,15,15, 0,20, 0, + 16,16, 0,21, 0,16,17,21, 0, 0, 0, 0, 0, 0, 0,15, + 15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, + 21, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20,21, + 0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, + 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, + 13,12,17,16, 0,14,14,17,16, 0,11,11,16,16, 0,14, + 14,17,17, 0,14,14,17,17, 0,12,12,16,16, 0,15,15, + 17,17, 0,11,11,16,16, 0,14,14,17,17, 0,14,14,16, + 16, 0,15,15,18,17, 0, 0, 0,19, 0, 0,13,13,16,16, + 0,16,16, 0,21, 0,14,14,16,16, 0,15,15,18,17, 0, + 0, 0,19,19, 0,13,13,16,16, 0,18,17, 0,21, 0,14, + 15,16,16, 0,11,11,16,16, 0,13,13,17,17, 0,13,13, + 17,17, 0,16,16,16,17, 0,16,16,18,18, 0,12,12,17, + 17, 0,16,15,18,17, 0,12,12,16,16, 0,16,15,19,19, + 0,16,15,17,17, 0,12,12,17,18, 0,16,16,18,18, 0, + 12,12,16,16, 0,16,16,19,19, 0,15,16,17,17, 0,15, + 16,18,18, 0, 0, 0,20,20, 0,13,13,16,16, 0,18,18, + 21,20, 0,15,15,16,16, 0,16,16,19,18, 0, 0, 0,19, + 20, 0,14,14,17,17, 0,19,19, 0,21, 0,15,16,16,16, + 0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, + 0,21,19,19, 0, 0,21,18,18, 0,12,12,15,15, 0,15, + 15,18,18, 0,14,13,15,15, 0,21,21,18,19, 0,21,20, + 18,18, 0,13,13,16,16, 0,17,17,18,19, 0,14,14,15, + 15, 0, 0,21,19,19, 0,21,20,18,19, 0,20,20,19,19, + 0, 0, 0, 0, 0, 0,19,20,17,17, 0, 0, 0,21,21, 0, + 21, 0,18,20, 0,21, 0,18,21, 0, 0, 0, 0, 0, 0,21, + 21,19,18, 0, 0, 0, 0, 0, 0, 0, 0,19,19, 0,18,18, + 15,15, 0,18,20,17,16, 0,20, 0,17,17, 0,21, 0,17, + 17, 0,21,20,19,20, 0,19,19,16,16, 0,21,21,17,18, + 0,19,19,17,17, 0,20,21,21,21, 0,20,20,18,18, 0, + 19,19,16,16, 0, 0,21,18,19, 0,18,19,16,17, 0,21, + 21,19,20, 0,21,19,18,18, 0,21,20,19,21, 0, 0, 0, + 20,21, 0,19,19,17,16, 0, 0, 0, 0, 0, 0,21,20,17, + 17, 0,20,21,19,18, 0, 0, 0, 0,21, 0,19,18,16,17, + 0, 0, 0, 0, 0, 0,20,20,17,17, 0,11,11,14,14, 0, + 13,13,16,16, 0,13,13,16,16, 0,17,17,21, 0, 0,17, + 18, 0, 0, 0,12,12,16,16, 0,15,15,17,18, 0,12,12, + 16,16, 0,16,16, 0,20, 0,17,17, 0,21, 0,12,12,17, + 17, 0,16,16,19,20, 0,12,12,17,17, 0,17,17, 0,20, + 0,17,17, 0, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, 0, + 15,15, 0,20, 0,19,19, 0, 0, 0,18,18, 0, 0, 0,17, + 17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,20,19, + 0, 0, 0,19,18, 0, 0, 0,14,14,21,19, 0,16,16,20, + 21, 0,16,16,20,20, 0,17,17,20, 0, 0,17,17,20,20, + 0,15,15,20,20, 0,19,18,20, 0, 0,15,15,20,20, 0, + 17,18,21,20, 0,17,17,20,21, 0,15,15,19,19, 0,19, + 18,21,21, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, + 20,20, 0,17,18,20,21, 0, 0, 0, 0, 0, 0,15,15,20, + 20, 0,19,19, 0, 0, 0,17,17,19,21, 0,17,17, 0,21, + 0, 0, 0, 0,21, 0,15,15,20,19, 0, 0,20, 0, 0, 0, + 17,17,21,20, 0,12,12,16,16, 0,14,14,17,17, 0,13, + 13,17,17, 0,16,16,17,18, 0,17,16,18,18, 0,13,13, + 18,17, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,19, + 19, 0,16,16,17,17, 0,13,12,17,17, 0,16,16,18,17, + 0,12,12,16,16, 0,17,17,19,18, 0,16,15,16,16, 0, + 16,17,18,19, 0, 0, 0,20,20, 0,14,14,17,16, 0,18, + 18,21, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,21, + 21,21, 0,14,14,16,16, 0,21,20,21, 0, 0,16,16,16, + 16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, + 0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, + 16,16,18,17, 0,14,14,15,15, 0,20, 0,18,18, 0,21, + 0,18,17, 0,13,13,16,15, 0,17,17,19,19, 0,14,14, + 15,15, 0,20,20,18,19, 0, 0, 0,18,17, 0, 0,21,18, + 18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0, 0, 0, + 0, 0, 0,19,19, 0, 0,21,18,18, 0, 0, 0, 0, 0, 0, + 21, 0,18,17, 0, 0, 0, 0,21, 0, 0, 0,19,20, 0,19, + 19,16,16, 0, 0,21,18,17, 0,21, 0,18,18, 0,20, 0, + 19,18, 0,21,20,19,19, 0,21,19,17,18, 0, 0,21,19, + 19, 0,21,19,18,18, 0,21, 0,20,18, 0, 0,21,18,18, + 0,20,21,17,17, 0,21, 0,18,18, 0,21,19,17,17, 0, + 21, 0, 0,20, 0, 0,20,17,18, 0, 0, 0,19,20, 0, 0, + 0,20,19, 0,19,21,17,18, 0,21, 0, 0, 0, 0,21,21, + 18,17, 0, 0,21,18,18, 0, 0, 0, 0,21, 0,20,19,16, + 17, 0, 0, 0, 0, 0, 0,21,20,17,17, 0,11,11,13,13, + 0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0,21, 0, + 18,19,21, 0, 0,12,12,16,16, 0,15,15,19,18, 0,13, + 13,16,16, 0,16,17,21,19, 0,17,17,21,21, 0,13,13, + 16,16, 0,16,16,20,18, 0,13,13,16,16, 0,17,17, 0, + 0, 0,18,18, 0, 0, 0,18,17, 0,20, 0, 0, 0, 0, 0, + 0,15,15,21,21, 0,19,18, 0, 0, 0,17,17,21,21, 0, + 17,17, 0, 0, 0, 0, 0, 0, 0, 0,15,15,20,21, 0,20, + 20, 0, 0, 0,19,19, 0, 0, 0,14,15,21,19, 0,16,16, + 0,21, 0,17,16,21,21, 0,17,18,21,20, 0,18,18, 0, + 21, 0,16,16, 0,20, 0,19,19, 0, 0, 0,16,15, 0,20, + 0,18,18, 0, 0, 0,17,17, 0,21, 0,16,16,20,20, 0, + 20,19, 0, 0, 0,15,16,21,22, 0,18,18, 0, 0, 0,18, + 17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, + 21,20, 0,19,20, 0, 0, 0,18,17,21, 0, 0,17,18, 0, + 0, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0, 0,20, 0, 0, + 0,18,18,22, 0, +}; + +static const static_codebook _44p1_p4_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p1_p4_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p1_p4_0, + 0 +}; + +static const long _vq_quantlist__44p1_p4_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p1_p4_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p1_p4_1 = { + 1, 7, + (long *)_vq_lengthlist__44p1_p4_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p1_p4_1, + 0 +}; + +static const long _vq_quantlist__44p1_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p5_0[] = { + 1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, + 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, + 10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, + 14,14,13,12,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 9, + 7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, + 7, 7, 8, 8,12,11,10,12,10,10,11,10,10,15,13,13, + 13,10,10,11,10,10,17,14,13,13,10,10, 7, 7, 7,12, + 11,12,12,11,11,12,11,11,16,14,14,13,12,12,12,11, + 11,17,15,14,14,12,12,10, 9, 9,13,11,11,13,11,11, + 13,11,11,17,14,13,14,11,11,12,11,11,16,15,14,14, + 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,15,13, + 13,14,11,10,12,10,10,16,14,14,14,10,10, 8, 7, 7, + 12,11,11,12,11,11,12,11,11,17,14,14,14,12,12,12, + 11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, + 11,13,11,12,16,14,14,14,11,11,13,12,11,16,15,15, + 14,11,11, +}; + +static const static_codebook _44p1_p5_0 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p5_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p1_p5_0, + 0 +}; + +static const long _vq_quantlist__44p1_p5_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p5_1[] = { + 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 8, 8, 8, + 7, 7, 8, 8, 8, 9, 8, 8, 9, 7, 7, 6, 6, 6, 9, 8, + 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, + 10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 7, 7, 9, + 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, + 7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 8, 9,12, 9, 9, + 12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, + 9, 9,10,10, 9,10, 9, 9,11,10,10,11, 9, 9,11, 9, + 9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, + 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, + 9, 9, 9, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, + 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, + 11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, + 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, + 10,11, 9, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, + 11, 9, 9, +}; + +static const static_codebook _44p1_p5_1 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p5_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p1_p5_1, + 0 +}; + +static const long _vq_quantlist__44p1_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p1_p6_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p1_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p1_p6_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p1_p6_0, + 0 +}; + +static const long _vq_quantlist__44p1_p6_1[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p1_p6_1[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,13,14,16,16,16,16, +}; + +static const static_codebook _44p1_p6_1 = { + 1, 25, + (long *)_vq_lengthlist__44p1_p6_1, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p1_p6_1, + 0 +}; + +static const long _vq_quantlist__44p1_p6_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p1_p6_2[] = { + 3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p1_p6_2 = { + 1, 25, + (long *)_vq_lengthlist__44p1_p6_2, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p1_p6_2, + 0 +}; + +static const long _huff_lengthlist__44p1_short[] = { + 4, 5, 7, 8,10,13,14, 4, 2, 4, 6, 8,11,12, 7, 4, + 3, 5, 8,12,14, 8, 5, 4, 4, 8,12,12, 9, 7, 7, 7, + 9,10,11,13,11,11, 9, 7, 8,10,13,11,10, 6, 5, 7, + 9, +}; + +static const static_codebook _huff_book__44p1_short = { + 2, 49, + (long *)_huff_lengthlist__44p1_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p2_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p2_l0_0[] = { + 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, + 8, 7, 9, 8,10, 9,11,10,11,11, 4, 5, 6, 7, 8, 8, + 9, 9,10,10,10,10,11, 8, 9, 8,10, 8,10, 9,11,10, + 11,11,11,11, 8, 8, 9, 8,10, 9,10,10,11,11,11,11, + 11, 9,10,10,11,11,11,11,11,11,12,11,12,11, 9,10, + 10,10,11,11,11,11,11,11,12,11,12,10,11,11,12,11, + 12,12,12,12,12,12,12,12,10,11,11,11,11,12,12,12, + 13,12,12,12,12,11,12,12,12,12,13,13,12,12,12,12, + 12,12,11,12,12,12,12,13,13,12,13,12,12,12,12,12, + 13,13,13,13,13,13,12,13,12,13,12,12,12,13,13,13, + 13,13,13,13,12,13,12,12,12, +}; + +static const static_codebook _44p2_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p2_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p2_l0_0, + 0 +}; + +static const long _vq_quantlist__44p2_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p2_l0_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, + 5, 6, 6, 6, 5, 6, 5, 6, 6, +}; + +static const static_codebook _44p2_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p2_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p2_l0_1, + 0 +}; + +static const long _vq_quantlist__44p2_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p2_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p2_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p2_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p2_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p2_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p2_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p2_long[] = { + 3, 4, 9, 8, 8,10,13,16, 4, 2, 9, 5, 7,10,14,18, + 9, 7, 6, 5, 7, 9,12,16, 7, 5, 5, 3, 5, 8,11,13, + 8, 7, 7, 5, 5, 7, 9,11,10,10, 9, 8, 6, 6, 8,10, + 13,14,13,11, 9, 8, 9,10,17,18,16,14,11,10,10,10, +}; + +static const static_codebook _huff_book__44p2_long = { + 2, 64, + (long *)_huff_lengthlist__44p2_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p2_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p2_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p2_p1_0, + 0 +}; + +static const long _vq_quantlist__44p2_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p2_p2_0[] = { + 1, 4, 4, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, + 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, + 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, + 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,11,10, 0, 0, 0, 0, 0, + 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, + 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, + 0, 0, 0, 0, 0,10,10, 0, 0, 0,13,13, 0, 0, 0, 0, + 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, + 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, + 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, + 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,11, 0, 0, + 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, + 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, + 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, + 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, + 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, + 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, + 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, + 10, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,14,13, + 0, 0, 0, 0, 0, 0, 0, 0,13,12, 0, 0, 0,13,13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11, + 11, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, + 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, + 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, + 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12, + 12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0,12,12, + 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, + 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,14, 0, 0, + 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, + 12,12, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0,12, + 12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 11,11, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, + 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, + 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, + 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,14,14, 0, 0, + 0, 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, + 12,12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, +}; + +static const static_codebook _44p2_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p2_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p2_p2_0, + 0 +}; + +static const long _vq_quantlist__44p2_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p3_0[] = { + 1, 5, 5, 6, 7, 7, 0, 8, 8, 6, 9, 9, 8,11,11, 0, + 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 5, 7, 7, 7,10, + 10, 0,12,12, 8,11,11, 9,12,12, 0,11,12, 0,12,12, + 0,15,15, 0,12,12, 0, 6, 6, 0, 6, 6, 0, 7, 7, 0, + 7, 7, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, + 7, 6, 7, 7,10, 9, 9, 0,11,10,10, 9, 9,12,12,12, + 0,10,10, 0,11,11, 0,13,13, 0,11,11, 7, 6, 6,10, + 10,10, 0,11,11,11,11,11,12,12,12, 0,11,11, 0,12, + 12, 0,15,15, 0,11,11, 0,11,11, 0,11,11, 0,12,12, + 0,12,12, 0,14,14, 0,12,12, 0,12,12, 0,15,15, 0, + 11,11, 0, 8, 8, 0,10,10, 0,11,11, 0,11,11, 0,12, + 12, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, + 0,10,10, 0,12,12, 0,10,10, 0,13,13, 0,12,12, 0, + 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p2_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p2_p3_0, + 0 +}; + +static const long _vq_quantlist__44p2_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p3_1[] = { + 2, 3, 3, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0, + 9, 9, 0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 6, 6, 0, 7, + 7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, + 0, 8, 8, 0, 8, 8, 0, 6, 6, 0, 6, 6, 0, 6, 6, 0, + 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 6, + 6, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10,10, + 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0, 7, 7, 0, + 10,10, 0,10,10, 0,12,11, 0,12,12, 0,11,11, 0,11, + 11, 0,12,12, 0,10,10, 0, 7, 7, 0,10,10, 0,10,10, + 0,12,12, 0,11,12, 0,11,11, 0,11,11, 0,11,11, 0, + 10,10, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10, + 10, 0,10, 9, 0,10,10, 0,10,10, 0, 9, 9, 0, 6, 6, + 0,10,10, 0,10,10, 0,11,11, 0,12,12, 0,11,11, 0, + 11,11, 0,12,12, 0,11,11, 0, 7, 7, 0, 9, 9, 0, 9, + 9, 0,11,11, 0,11,11, 0,10,10, 0,10,10, 0,11,11, + 0, 9, 9, +}; + +static const static_codebook _44p2_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p2_p3_1, + 0 +}; + +static const long _vq_quantlist__44p2_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p4_0[] = { + 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, + 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7, 9,11, + 11, 9,11,11,10,11,11,12,13,13,11,12,12,10,11,11, + 13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 7, 7, 9, + 7, 7,11,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 6, + 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,14,13,13, + 13,10,10,12,11,11,15,13,13,14,10,10, 8, 7, 7,12, + 11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, + 11,15,15,15,13,12,12, 0,10,10, 0,11,11, 0,11,11, + 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, + 11,11, 7, 8, 8,12,10,10,12,10,10,12,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, + 12,11,11,12,11,11,12,11,11,16,14,14,14,12,12,13, + 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, + 12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,14,14, + 0,12,12, +}; + +static const static_codebook _44p2_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p2_p4_0, + 0 +}; + +static const long _vq_quantlist__44p2_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p2_p4_1[] = { + 3, 4, 4, 8, 8,11, 9, 9,12,12,11,10,10,12,12,12, + 10,10,11,11,12,12,12,12,12,12,11,11,13,13,12,12, + 12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13, + 13,13,12,11,11,13,13,12,12,12,13,13,12,10,10,12, + 12,12,11,11,13,13,12,13,13,12,12,12,11,11,13,13, + 12,13,13,13,13,12,11,11,12,12,12,11,11,12,12,12, + 13,13,12,12,12,13,13,13,13,12,13,13,13,13,13,13, + 13,12,12,12,13,13,13,13,12,13,13,12,12,11, 8, 8, + 10,10,12,11,11,11,11,12,10,10,10,10,13,11,11,10, + 10,13,11,11,10,10,13,12,12,12,12,13,11,11,11,11, + 13,12,12,11,11,13,12,12,11,11,13,12,12,12,11,13, + 12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,11, + 12,11,11,13,12,12,11,11,14,12,12,11,11,13,11,11, + 11,11,14,12,12,11,11,13,11,12,10,10,14,12,12,11, + 11,14,12,12,11,11,14,11,11,11,11,14,12,12,11,11, + 13,12,12,11,11,14,12,12,11,11,11, 8, 8,10,10,12, + 7, 7,10,10,12, 9, 9,11,11,13, 9, 9, 9, 9,13,13, + 13,10,10,13, 9, 9,12,12,13,13,13,12,12,13, 9, 8, + 11,11,13,10,10,12,12,14,13,13,11,11,13, 9, 9,11, + 11,13,13,13,12,12,13, 9, 9,10,10,13,10,10,11,11, + 13,13,13,10,10,14,10,10,11,11,14,14,14,12,12,13, + 9, 9,10,10,13,10,10,11,11,14,13,14,10,10,14,14, + 14,11,12,14,14,14,14,14,14,13,13,10,10,13,14,14, + 11,11,14,14,14,10,10,14, 9, 9, 9, 9,14, 9, 9, 9, + 9,14,10,10, 9, 9,14,10,10, 8, 8,14,11,11, 8, 8, + 15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15, + 11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12, + 12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13, + 10,10,15,11,11,10,10,15,12,12,10,10,15,11,11, 9, + 9,15,11,11, 9, 9,15,13,13, 9, 9,15,13,13,10,10, + 15,12,12,10,10,15,13,13,10,10,15,13,12, 9, 9,15, + 13,13, 9, 9,14,12,12, 9, 9,14,13,13, 9, 9,14,13, + 13, 9, 9,14,13,13, 7, 7,14,13,13, 8, 8,15,14,14, + 10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,10, + 10,15,14,14, 9, 9,15,14,14,10,10,15,14,14,10,10, + 14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, + 14,14,10,10,15,14,14,10,10,14,14,14, 9, 9,14,14, + 14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, + 11,11,15,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, + 8,13, 9, 9,12,12,17,11,11,12,12,17,12,12,12,12, + 17,12,12,11,11,18,15,15,12,12,17,12,12,12,12,17, + 14,15,13,13,17,12,12,12,12,17,13,13,12,13,17,15, + 15,12,12,18,13,13,13,13,18,15,15,13,13,18,12,12, + 12,12,18,13,13,13,13,18,15,15,12,12,18,13,13,12, + 12,18,15,15,13,13,18,13,13,12,12,17,13,13,12,12, + 17,15,15,12,12,18,15,15,13,13,18,15,15,13,14,18, + 15,16,12,12,18,15,15,12,12,18,16,16,12,12,13, 8, + 8,10,10,14,15,14,11,11,14,15,15,12,12,15,14,14, + 12,11,15,15,15,12,12,15,15,15,12,12,15,15,15,13, + 13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13, + 15,15,15,13,13,15,15,16,13,13,15,15,15,12,12,15, + 15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15, + 15,13,13,15,15,14,12,12,15,15,15,12,12,16,15,14, + 12,12,16,15,15,13,13,16,16,16,13,13,16,15,15,12, + 12,15,15,15,13,13,15,15,15,12,12,13,12,12,10,10, + 14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,15, + 14,14,11,11,15,15,15,13,13,15,14,14,13,13,15,15, + 15,12,12,15,14,15,13,13,16,15,15,12,12,15,15,15, + 13,13,16,14,14,13,13,15,15,15,12,12,15,15,15,13, + 13,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13, + 15,15,15,11,11,15,15,15,12,12,16,15,15,11,11,16, + 15,15,13,13,16,14,15,14,14,16,15,15,12,12,16,15, + 14,12,12,16,15,15,12,12,14,10,10, 9, 9,14,11,11, + 12,12,14,12,12,13,13,14,12,12,12,12,15,14,14,13, + 13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13, + 15,13,13,14,14,15,14,14,13,13,15,13,13,13,14,15, + 14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14, + 14,13,13,15,13,13,14,14,15,14,14,15,15,15,13,13, + 12,12,15,13,13,13,13,15,14,14,13,12,15,15,15,14, + 15,15,15,14,20,20,15,14,14,13,13,15,14,14,13,13, + 15,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12,14, + 13,13,12,13,14,14,14,12,12,15,14,14,12,12,15,14, + 14,14,13,15,14,14,14,14,15,14,14,13,13,15,14,14, + 13,13,15,15,15,14,14,15,14,14,13,13,15,14,14,14, + 14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,14, + 15,15,15,13,13,15,14,14,14,14,15,14,14,13,13,15, + 14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14, + 14,14,14,15,15,15,14,14,15,14,14,13,14,15,15,15, + 14,14,13,10,10,12,12,17,11,11,12,12,17,12,12,12, + 12,17,12,12,11,11,17,15,15,12,11,18,13,13,13,13, + 18,15,15,13,13,17,12,12,12,12,18,13,13,13,13,17, + 15,15,12,12,17,12,12,12,12,17,15,15,13,13,17,12, + 12,12,12,17,13,13,12,12,17,15,15,12,12,18,14,13, + 12,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12, + 12,18,16,16,12,12,18,16,16,12,12,18,15,15,13,13, + 18,16,16,12,12,17,15,15,12,12,17,16,16,12,12,13, + 8, 8,10,10,14,14,15,12,12,14,15,15,12,12,15,14, + 14,12,12,15,15,14,12,12,15,15,15,13,13,15,15,15, + 13,13,15,15,15,12,12,16,15,15,13,13,16,15,15,13, + 13,15,15,15,12,12,15,15,15,14,14,15,15,15,12,12, + 15,15,15,13,13,16,15,15,13,13,15,15,15,13,13,16, + 15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,14, + 15,13,13,16,15,15,13,13,15,16,15,13,13,16,15,14, + 13,13,16,15,15,13,13,16,15,15,13,13,13,12,12,11, + 11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11, + 16,14,14,11,11,15,15,15,12,13,16,14,14,13,13,15, + 15,15,12,12,15,14,14,13,13,16,15,15,12,12,15,15, + 15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14, + 12,12,16,15,15,12,12,16,15,15,12,12,16,14,14,13, + 13,15,15,15,11,11,15,15,14,12,12,16,15,15,11,11, + 16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16, + 14,14,12,12,16,15,15,11,11,14,10,10, 9, 9,14,11, + 11,12,12,14,12,12,13,14,14,12,12,12,12,14,14,14, + 13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13, + 13,15,13,13,14,14,15,15,15,14,14,15,13,13,14,14, + 15,15,15,15,15,15,12,12,13,13,15,13,13,14,14,15, + 14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12, + 12,13,13,15,13,13,13,13,14,14,14,13,13,15,15,15, + 14,15,15,15,15,21,19,15,14,14,13,13,15,14,14,14, + 14,14,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12, + 14,14,13,13,13,14,14,14,12,12,14,14,14,12,12,15, + 14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14, + 14,13,13,15,15,15,15,15,15,14,14,13,13,15,14,14, + 14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,15, + 15,15,14,15,13,13,15,14,14,14,14,15,14,14,13,13, + 15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15, + 14,14,14,14,15,15,15,15,15,15,14,14,14,13,14,15, + 15,14,14,13,10,10,12,12,18,12,12,12,12,17,12,12, + 12,12,18,13,13,11,11,18,15,14,11,11,17,13,13,13, + 13,18,15,15,12,12,18,12,12,12,12,17,13,13,12,12, + 18,15,15,12,12,18,13,13,13,12,18,15,15,13,13,18, + 13,13,12,12,18,13,13,12,12,18,15,15,12,12,17,13, + 13,12,12,17,15,15,12,12,17,12,12,11,11,17,13,13, + 11,11,17,15,15,11,11,18,16,16,12,12,18,15,15,13, + 13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, + 13, 8, 8,10,10,14,14,14,11,11,15,15,15,12,12,15, + 14,14,11,11,16,14,14,12,12,15,15,15,12,12,15,15, + 15,13,13,15,15,15,12,12,15,15,15,12,12,16,15,15, + 13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12, + 12,15,15,15,12,12,16,15,15,13,13,16,15,15,12,12, + 15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,16, + 15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,14, + 15,13,13,15,15,15,13,13,16,15,15,12,12,13,12,12, + 10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11, + 11,16,14,14,11,11,15,14,15,12,12,15,14,14,13,13, + 15,15,15,12,12,15,14,14,12,12,15,14,15,12,12,15, + 15,15,12,12,16,14,14,13,13,15,15,15,11,12,16,14, + 14,12,12,16,15,15,12,12,15,15,15,12,12,16,14,14, + 12,12,15,15,15,11,11,15,14,14,11,12,15,15,14,11, + 11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11, + 16,14,14,12,12,16,15,15,11,11,13,10,10, 8, 8,14, + 12,12,12,12,14,12,12,13,13,14,12,12,12,12,14,14, + 14,13,13,15,13,13,14,14,15,15,14,15,15,15,13,13, + 13,13,15,13,13,14,14,15,14,15,14,14,15,13,13,13, + 13,15,15,15,15,15,15,12,12,13,12,15,13,13,14,14, + 15,14,14,13,13,15,13,13,14,13,15,15,15,16,16,15, + 13,13,12,12,15,13,13,13,13,14,14,14,12,12,15,15, + 15,14,14,15,15,15,20,20,15,14,14,13,13,15,15,14, + 14,14,15,14,14,13,13,13,12,12, 9, 9,14,13,13,12, + 12,14,13,13,12,12,14,14,14,12,12,14,14,14,13,13, + 15,14,14,13,13,15,14,14,14,14,15,15,14,12,12,15, + 14,14,13,13,15,14,15,14,15,15,14,14,13,13,15,14, + 14,14,14,15,14,14,12,12,15,14,14,13,13,14,15,14, + 15,14,15,14,14,13,13,15,14,14,14,14,15,14,14,12, + 12,15,14,14,13,13,15,15,15,14,14,15,15,15,14,14, + 16,14,14,14,14,15,15,15,14,14,15,14,14,14,14,14, + 15,15,14,14,13,13,13,12,13,17,15,15,12,12,17,15, + 15,12,12,18,15,15,11,11,17,16,16,11,11,18,16,16, + 13,13,18,17,16,13,13,18,16,16,12,12,18,16,16,12, + 12,18,17,17,12,12,17,16,16,12,13,17,16,16,12,13, + 17,16,16,12,12,17,16,16,12,12,18,17,16,12,12,18, + 16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, + 15,12,12,17,17,17,11,11,17,17,17,12,12,17,16,16, + 13,13,18,16,16,11,11,18,16,16,12,12,18,17,16,11, + 11,14,14,14,10,10,16,15,14,11,11,16,15,15,12,12, + 16,14,14,12,12,17,14,14,13,13,17,15,15,13,13,17, + 15,15,14,14,16,15,15,12,12,16,15,15,13,13,18,15, + 15,14,14,16,15,15,12,12,16,15,15,14,14,16,15,15, + 12,12,16,15,15,13,13,17,15,15,13,13,17,15,15,13, + 13,17,15,15,14,14,16,14,14,12,12,17,15,15,12,12, + 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, + 15,14,13,13,17,15,15,14,14,17,15,15,13,13,14,12, + 12,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, + 11,11,17,14,14,12,12,16,15,14,13,13,16,14,14,13, + 13,16,15,15,12,12,16,14,14,13,13,17,15,15,13,13, + 16,15,15,13,13,17,14,14,13,13,16,15,15,12,12,16, + 14,14,12,12,16,15,15,12,12,17,15,15,12,12,17,14, + 14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15, + 12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, + 12,17,14,14,12,12,17,15,15,12,12,14,14,14, 8, 8, + 14,14,14,13,13,14,15,15,14,14,14,14,14,14,14,15, + 15,15,19,19,15,15,15,14,14,15,15,16,20,19,15,15, + 15,14,14,15,16,16,15,15,15,15,15,19,19,15,15,15, + 14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,15, + 15,15,15,15,19,19,15,15,15,15,15,15,15,16,19,20, + 15,14,15,14,14,15,15,15,15,15,15,15,15,20,19,15, + 15,15,21,19,15,16,16,20,20,15,15,14,19,19,15,15, + 16,20,21,15,15,15,20,19,13,12,12, 9, 9,14,14,14, + 12,12,14,13,13,13,13,14,14,14,13,13,15,14,14,20, + 19,15,14,14,14,13,15,14,14,19,19,15,15,14,13,13, + 15,14,14,14,14,15,15,15,19,20,15,14,14,13,13,15, + 14,14,20,19,14,15,14,13,13,15,14,14,14,13,15,15, + 15,19,20,15,15,14,14,14,15,14,14,21,19,15,15,15, + 13,13,15,14,14,14,14,14,15,15,20,20,15,15,15,21, + 20,15,14,14,19,20,15,15,15,20,20,15,14,14,19,20, + 15,15,15,21,19, +}; + +static const static_codebook _44p2_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p2_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p2_p4_1, + 0 +}; + +static const long _vq_quantlist__44p2_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p2_p5_0[] = { + 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, + 13,13,16,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, + 10,17,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, + 16,16, 8, 8, 8,15,15,12,11,11,16,17, 9, 8, 8,14, + 14, 0,13,13,18,17, 0,13,13,16,15, 0,14,14,18,17, + 0,20,22,18,20, 0,12,12,16,16, 0,16,16,22,20, 0, + 14,14,16,16, 0,14,14,17,17, 0,22,22,22,19, 0,12, + 13,16,16, 0,17,17, 0, 0, 0,15,15,16,16, 5, 7, 7, + 13,13, 9, 9, 9,15,14,10,10,10,14,14, 0,21,21,18, + 17, 0,21,22,18,17, 9,10,10,14,14,12,12,12,17,17, + 12,10,10,14,14, 0,19,21,18,17, 0,20,22,18,18,11, + 10,10,14,14,14,13,13,18,17,12,11,11,14,14, 0,22, + 19,17,18, 0,20, 0,18,17, 0,22,21,17,17, 0, 0, 0, + 0, 0, 0,20,22,17,17, 0,22, 0,21,19, 0,22, 0,18, + 18, 0, 0,22,18,19, 0, 0, 0, 0, 0, 0,19,21,17,17, + 0, 0, 0,20,20, 0, 0, 0,18,18, 6, 6, 6,13,12, 8, + 6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, + 11,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, + 13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, + 14,13, 9, 9,13,13,10, 6, 6,13,12, 0,11,11,15,15, + 0,10,10,13,13, 0,12,12,15,15, 0,19, 0,17,17, 0, + 9, 9,13,13, 0,13,14,19,20, 0,11,11,13,13, 0,11, + 11,14,14, 0,19,20,17,18, 0,10,10,13,13, 0,15,15, + 21,19, 0,12,12,13,13, 0,10,10,12,13, 0,11,11,15, + 15, 0,11,11,15,15, 0,15,15,22, 0, 0,16,17,22, 0, + 0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,16, 0, + 15,15,22,21, 0,16,16, 0,20, 0,12,12,16,15, 0,15, + 14,19,19, 0,11,11,16,16, 0,15,15,21, 0, 0,16,15, + 0, 0, 0,16,16,22,21, 0, 0, 0, 0, 0, 0,15,15,20, + 20, 0,18,18, 0, 0, 0,16,17, 0, 0, 0,17,17, 0,22, + 0, 0, 0, 0, 0, 0,15,15,21,22, 0,20,18, 0, 0, 0, + 18,17,22, 0, 0,10,10,12,11, 0,10,10,10,10, 0,11, + 11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, + 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, + 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, + 0,10,10,12,12, 0,13,13,13,14, 0,12,12,12,12, 0, + 13,14,14,14, 0,20,21,15,15, 0,12,11,12,12, 0,15, + 16,20,22, 0,13,12,11,11, 0,13,13,14,13, 0,20, 0, + 16,15, 0,12,12,12,12, 0,16,16,22,21, 0,13,13,12, + 12, 6, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, + 0,13,13,14,14, 0,14,14,16,17,10, 9, 9,16,16,14, + 12,12,16,16,12, 9, 9,15,15, 0,13,13,18,18, 0,13, + 13,15,16,12,10,10,17,18,15,12,12,17,17,13, 9, 9, + 16,16, 0,13,13,17,18, 0,14,14,16,16, 0,15,15,18, + 18, 0,22, 0,20,20, 0,12,12,16,16, 0,16,16,20,22, + 0,14,14,16,16, 0,15,14,18,18, 0, 0,22,19,21, 0, + 13,13,16,17, 0,17,17,22,22, 0,15,15,16,16, 7, 7, + 7,14,14,11,10,10,15,15,12,10,10,15,14, 0,22, 0, + 18,18, 0, 0,21,17,18,11,10,10,15,15,14,12,12,17, + 17,14,11,11,15,15, 0,22,20,18,18, 0, 0,20,18,17, + 12,10,10,16,16,17,14,14,19,18,14,11,11,15,15, 0, + 21,22,19,19, 0,21,22,18,18, 0,22, 0,19,21, 0, 0, + 0, 0, 0, 0,22,22,18,17, 0, 0, 0,21,20, 0,22,22, + 20,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,20,21,17, + 17, 0, 0,22,21,21, 0, 0, 0,18,18,10, 9, 9,14,14, + 13,10,10,13,13,13,10,11,14,14, 0,13,13,12,12, 0, + 15,15,16,16,13,10,10,15,15,15,12,12,14,14,15,10, + 10,14,15, 0,14,14,16,15, 0,14,14,15,15,13,10,10, + 15,15,18,13,13,15,15,15,10,10,14,15, 0,14,14,16, + 16, 0,14,14,15,15, 0,15,15,16,16, 0,22, 0,18,18, + 0,12,13,14,14, 0,17,17,22, 0, 0,14,14,14,14, 0, + 15,15,16,16, 0,22, 0,18,17, 0,13,13,14,14, 0,19, + 18,21,22, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, + 16,16, 0,12,12,16,16, 0,15,16,21, 0, 0,16,17, 0, + 22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, + 0,15,15,21,22, 0,16,16, 0, 0, 0,12,12,16,16, 0, + 15,15, 0,19, 0,12,12,16,17, 0,16,16,22, 0, 0,16, + 16, 0,22, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, + 20,19, 0,18,18, 0, 0, 0,17,18, 0, 0, 0,17,17, 0, + 0, 0, 0, 0, 0, 0, 0,15,15, 0,22, 0,20,18, 0, 0, + 0,18,18,22,22, 0,11,11,14,14, 0,12,12,14,14, 0, + 12,12,15,15, 0,13,13,14,14, 0,14,14,17,16, 0,12, + 12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, + 16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, + 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, + 0,15,15,17,17, 0, 0, 0,19,18, 0,13,12,15,15, 0, + 16,16, 0, 0, 0,14,14,15,15, 0,14,14,16,17, 0,22, + 0,18,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, + 15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, + 16, 0,14,14,17,17, 0,14,14,17,16,12,10,10,18,17, + 14,11,11,18,18,14, 9,10,16,16, 0,13,13,18,19, 0, + 14,13,16,16,12, 9, 9,16,16,17,13,13,17,17,14, 9, + 9,15,15, 0,14,14,19,20, 0,13,13,15,15, 0,15,15, + 18,19, 0, 0,22,22,22, 0,13,13,17,17, 0,16,16,19, + 21, 0,14,14,16,16, 0,14,14,18,18, 0, 0, 0, 0, 0, + 0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, + 7, 7,14,14,12,10,10,15,15,13,10,10,15,14, 0,22, + 0,18,18, 0,22, 0,18,18,12,10,10,16,15,15,12,12, + 17,17,14,11,11,15,15, 0,20,21,19,18, 0, 0, 0,17, + 18,13,11,11,15,15,16,13,13,18,18,15,11,11,14,14, + 0,22,21,19,19, 0,21,22,18,18, 0,22,22,20,18, 0, + 0, 0, 0, 0, 0,22,19,17,17, 0, 0, 0,22,21, 0, 0, + 22,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,21, + 18,17, 0, 0, 0,22, 0, 0, 0, 0,19,19, 0,10,10,14, + 14, 0,11,11,15,14, 0,11,11,15,15, 0,14,14,15,14, + 0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, + 11,11,15,15, 0,14,14,17,16, 0,14,14,15,15, 0,11, + 11,16,16, 0,14,13,15,15, 0,11,11,15,15, 0,15,15, + 17,17, 0,14,14,15,14, 0,16,16,17,17, 0, 0,22,18, + 18, 0,13,13,15,15, 0,17,17,22, 0, 0,15,15,15,14, + 0,15,16,16,17, 0, 0,22,18,19, 0,13,13,15,15, 0, + 20,18,21, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, + 12,16,16, 0,12,12,16,15, 0,15,16,22,22, 0,17,17, + 0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, + 16, 0,15,16,22,20, 0,16,16, 0,22, 0,12,12,16,16, + 0,15,15,18,20, 0,11,11,16,16, 0,15,15, 0, 0, 0, + 16,16, 0, 0, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, + 15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, + 22,22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,20,22, 0, + 0, 0,18,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, + 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, + 13,12,16,16, 0,14,14,16,16, 0,12,11,16,16, 0,14, + 14,17,17, 0,14,14,16,16, 0,12,12,16,16, 0,15,15, + 17,16, 0,11,11,15,16, 0,14,14,17,17, 0,14,14,16, + 16, 0,15,15,18,18, 0, 0, 0,22,19, 0,13,13,15,16, + 0,16,17, 0, 0, 0,14,14,16,16, 0,15,15,18,17, 0, + 0, 0,20,20, 0,13,13,16,15, 0,17,17,22,22, 0,14, + 14,15,15, 0,11,11,16,16, 0,13,13,16,17, 0,13,13, + 17,18, 0,16,16,17,17, 0,17,17,18,18, 0,12,12,17, + 17, 0,16,15,18,18, 0,12,12,16,16, 0,16,16,18,18, + 0,15,15,17,17, 0,12,12,17,17, 0,16,16,19,18, 0, + 12,12,16,17, 0,16,16,19,19, 0,15,16,16,17, 0,16, + 16,19,17, 0, 0, 0,20,22, 0,13,13,16,16, 0,19,18, + 21, 0, 0,15,15,16,16, 0,16,16,18,18, 0, 0, 0,22, + 21, 0,14,14,16,16, 0,21,19,21,22, 0,16,16,16,16, + 0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, + 0,20,18,19, 0, 0,22,18,18, 0,12,12,15,15, 0,15, + 15,17,18, 0,14,13,14,14, 0,20, 0,18,18, 0,21, 0, + 18,17, 0,13,13,15,16, 0,17,17,18,18, 0,14,14,15, + 15, 0,22,22,20,19, 0,20,21,18,18, 0,20,22,19,19, + 0, 0, 0, 0, 0, 0,20,20,17,17, 0, 0,22,22,21, 0, + 22, 0,18,18, 0,20,22,19,19, 0, 0, 0, 0, 0, 0,21, + 21,17,18, 0, 0, 0,21,20, 0, 0,22,19,18, 0,18,18, + 15,15, 0,22,21,17,16, 0, 0,22,17,17, 0,20,22,18, + 18, 0, 0,22,20,20, 0,21,19,16,16, 0,21,21,18,18, + 0,19,19,17,17, 0, 0,22,19,19, 0,22,20,17,17, 0, + 21,19,16,16, 0,22,22,19,18, 0,19,20,16,16, 0,22, + 21,19,21, 0,21,22,17,18, 0,21,20,18,18, 0, 0, 0, + 19,20, 0,20,19,16,16, 0,22,22, 0, 0, 0,21,21,17, + 16, 0,22,20,19,18, 0, 0, 0,20,20, 0,20,19,16,16, + 0, 0, 0, 0, 0, 0,21,22,17,17, 0,11,11,13,13, 0, + 13,13,15,16, 0,13,13,16,16, 0,17,18,21, 0, 0,17, + 18, 0, 0, 0,12,12,15,16, 0,15,15,19,18, 0,12,12, + 16,16, 0,17,17,22, 0, 0,17,17, 0,22, 0,12,12,17, + 16, 0,16,16,19,20, 0,12,12,16,16, 0,17,17, 0, 0, + 0,17,17, 0,21, 0,17,16,22, 0, 0, 0, 0, 0, 0, 0, + 15,15,20,22, 0,20,18, 0, 0, 0,18,18, 0, 0, 0,17, + 17,21, 0, 0, 0, 0, 0, 0, 0,15,15,21,22, 0,19,20, + 22, 0, 0,19,18, 0, 0, 0,14,14,18,18, 0,16,16,22, + 20, 0,16,16,22,19, 0,17,17,20,22, 0,19,19, 0, 0, + 0,15,15,20, 0, 0,18,21, 0,20, 0,15,15,21,20, 0, + 18,17, 0, 0, 0,17,17, 0,22, 0,15,15,19,19, 0,19, + 18, 0, 0, 0,15,15,20, 0, 0,18,18,22,22, 0,17,17, + 0,20, 0,18,18, 0, 0, 0, 0,22, 0, 0, 0,15,15,19, + 20, 0,20,19, 0, 0, 0,17,17,20,21, 0,17,18,20,22, + 0, 0, 0, 0,22, 0,15,15,20,20, 0,22,20, 0, 0, 0, + 17,18,20, 0, 0,12,12,17,16, 0,14,14,17,17, 0,13, + 13,17,17, 0,16,16,18,18, 0,17,16,17,17, 0,13,13, + 17,17, 0,15,16,18,18, 0,13,13,16,16, 0,16,16,18, + 18, 0,16,16,17,16, 0,13,13,16,16, 0,17,17,18,17, + 0,12,12,15,16, 0,17,17,19,19, 0,16,16,16,16, 0, + 16,17,19,18, 0, 0, 0,21,22, 0,14,14,16,16, 0,18, + 18, 0,22, 0,16,16,16,16, 0,16,16,18,17, 0, 0, 0, + 21,20, 0,14,14,16,16, 0,21,22,22, 0, 0,16,16,16, + 16, 0, 9, 9,14,13, 0,13,14,15,16, 0,14,13,15,14, + 0,22, 0,18,18, 0,21, 0,17,18, 0,13,13,15,15, 0, + 15,16,18,17, 0,14,14,15,14, 0,20,22,18,18, 0,22, + 21,17,17, 0,13,13,15,15, 0,17,17,19,19, 0,14,14, + 14,14, 0, 0,22,18,18, 0, 0,22,17,17, 0, 0,22,19, + 20, 0, 0, 0, 0, 0, 0,21,20,17,16, 0, 0, 0,21,22, + 0, 0, 0,18,19, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, + 22, 0,17,17, 0, 0, 0,20,22, 0, 0, 0,18,19, 0,18, + 19,16,16, 0,22,20,17,17, 0,22,22,17,18, 0,22,22, + 18,17, 0, 0,22,18,19, 0,20,20,17,18, 0, 0,22,19, + 18, 0,22,22,17,17, 0,22, 0,19,19, 0, 0,22,18,18, + 0,20,22,17,17, 0, 0,22,18,18, 0,19,20,17,17, 0, + 22, 0,20,19, 0,22,21,17,17, 0, 0, 0,18,18, 0, 0, + 0,22,19, 0,20, 0,17,17, 0,22, 0, 0,22, 0, 0,20, + 17,18, 0,22, 0,19,19, 0, 0, 0, 0,19, 0,19,21,17, + 17, 0, 0, 0, 0, 0, 0,20,21,17,16, 0,11,11,13,13, + 0,13,13,16,16, 0,13,13,15,16, 0,17,17,21,22, 0, + 17,18, 0, 0, 0,12,12,16,16, 0,15,15,18,18, 0,13, + 13,16,16, 0,17,16,21,21, 0,17,17, 0, 0, 0,13,13, + 16,16, 0,16,16,19,18, 0,13,13,16,16, 0,17,17, 0, + 22, 0,17,18,20,22, 0,17,18, 0, 0, 0, 0, 0, 0, 0, + 0,15,15,20, 0, 0,18,19, 0, 0, 0,17,17, 0, 0, 0, + 18,17,22, 0, 0, 0, 0, 0, 0, 0,15,16,21,20, 0,20, + 20, 0, 0, 0,18,19, 0, 0, 0,15,15,22,22, 0,17,16, + 20,22, 0,17,17,20,22, 0,18,18, 0,21, 0,19,18, 0, + 0, 0,16,16,20,20, 0,19,19,22, 0, 0,15,16,21,22, + 0,18,19,22, 0, 0,17,18, 0, 0, 0,16,16,22, 0, 0, + 19,19, 0,21, 0,15,16,20, 0, 0,18,18, 0,22, 0,18, + 17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, + 22,21, 0,20,21, 0, 0, 0,17,18,22, 0, 0,18,18, 0, + 0, 0, 0, 0, 0, 0, 0,16,16,20,19, 0,22,21, 0, 0, + 0,18,18,22,22, +}; + +static const static_codebook _44p2_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p2_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p2_p5_0, + 0 +}; + +static const long _vq_quantlist__44p2_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p2_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p2_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p2_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p2_p5_1, + 0 +}; + +static const long _vq_quantlist__44p2_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p6_0[] = { + 1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,11,11, 9, + 8, 8, 7, 8, 9,11,11,11, 9, 8, 8, 6, 7, 7,10,10, + 10,10,10,10,10,10,10,14,14,14,12,11,11,10,11,11, + 15,14,14,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, + 7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, + 7, 6, 8, 7,12,10,10,12,10,10,11,10,10,15,14,13, + 13,10,10,11,10,10,16,14,14,14,10,10, 7, 7, 7,12, + 11,11,12,11,11,11,11,11,16,14,14,13,12,12,11,11, + 11,17,15,15,14,12,12,10, 9, 9,13,11,11,13,11,11, + 12,11,11,16,14,13,14,11,11,12,11,11,17,15,14,14, + 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,13, + 14,13,10,10,11,10,10,17,14,14,14,10,10, 7, 7, 7, + 12,11,11,12,11,11,12,11,11,15,14,15,14,12,12,12, + 11,11,17,15,15,14,12,12,10,10, 9,13,11,11,13,11, + 11,13,11,11,16,14,14,14,11,11,13,11,11,16,15,15, + 15,11,11, +}; + +static const static_codebook _44p2_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p2_p6_0, + 0 +}; + +static const long _vq_quantlist__44p2_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p6_1[] = { + 2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 8, + 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 9, 8, + 8, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, + 10, 8, 9,10, 8, 8, 7, 6, 6, 8, 6, 6, 9, 6, 6, 9, + 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 9, 8, 9, 7, + 7, 7, 7, 7,11, 8, 8,11, 9, 9,10, 9, 9,12, 9, 9, + 12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, + 9, 9,10, 9, 9,10, 9, 9,11,10,11,11, 9, 9,11, 9, + 9,11,11,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, + 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,12,10,10,11, + 9, 9, 8, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, + 9,12, 8, 8,12, 9, 9,12, 9,10,12, 8, 8, 9, 7, 7, + 11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, + 10,10,12,11,11,11, 9,10,10, 9, 9,11, 9, 9,11,10, + 10,11,10,10,11,11,11,11, 9, 9,11, 9,10,11,11,11, + 11, 9, 9, +}; + +static const static_codebook _44p2_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p2_p6_1, + 0 +}; + +static const long _vq_quantlist__44p2_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p2_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p2_p7_0, + 0 +}; + +static const long _vq_quantlist__44p2_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p2_p7_1[] = { + 1, 9, 9, 6, 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10, +}; + +static const static_codebook _44p2_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p2_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p2_p7_1, + 0 +}; + +static const long _vq_quantlist__44p2_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p2_p7_2[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p2_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p2_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p2_p7_2, + 0 +}; + +static const long _vq_quantlist__44p2_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p2_p7_3[] = { + 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p2_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p2_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p2_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p2_short[] = { + 4, 4,12, 9, 8,12,15,17, 4, 2,11, 6, 5, 9,13,15, + 11, 7, 8, 7, 7,10,14,13, 8, 5, 7, 5, 5, 8,12,12, + 8, 4, 7, 4, 3, 6,11,12,11, 8, 9, 7, 6, 8,11,12, + 15,13,14,12, 9, 7,10,13,16,12,17,12, 7, 5, 8,11, +}; + +static const static_codebook _huff_book__44p2_short = { + 2, 64, + (long *)_huff_lengthlist__44p2_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p3_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p3_l0_0[] = { + 1, 4, 4, 8, 8, 8, 8, 9, 9,10,10,10,10, 4, 6, 5, + 8, 7, 9, 9, 9, 9,10, 9,11, 9, 4, 5, 6, 7, 8, 9, + 9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, + 12,10,12,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,12,10, + 12, 9,10,10,11,10,12,11,12,11,12,12,12,12, 9,10, + 10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, + 12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, + 12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,13, + 12,12,11,12,12,12,12,12,12,13,12,12,12,12,12,12, + 12,12,13,13,12,13,12,13,12,13,12,12,12,13,12,13, + 12,13,12,13,12,13,12,12,12, +}; + +static const static_codebook _44p3_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p3_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p3_l0_0, + 0 +}; + +static const long _vq_quantlist__44p3_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p3_l0_1[] = { + 3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, + 5, 6, 5, 6, 5, 6, 5, 6, 5, +}; + +static const static_codebook _44p3_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p3_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p3_l0_1, + 0 +}; + +static const long _vq_quantlist__44p3_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p3_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p3_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p3_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p3_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p3_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p3_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p3_long[] = { + 3, 4,13, 9, 9,12,15,17, 4, 2,18, 5, 7,10,14,18, + 11, 8, 6, 5, 6, 8,11,14, 8, 5, 5, 3, 5, 8,11,13, + 9, 6, 7, 5, 5, 7, 9,10,11,10, 9, 8, 6, 6, 8,10, + 14,14,11,11, 9, 8, 9,10,17,17,14,13,10, 9,10,10, +}; + +static const static_codebook _huff_book__44p3_long = { + 2, 64, + (long *)_huff_lengthlist__44p3_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p3_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p3_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p3_p1_0, + 0 +}; + +static const long _vq_quantlist__44p3_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p3_p2_0[] = { + 3, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, + 11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,10,11, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, + 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, + 5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, + 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, + 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, + 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, + 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, + 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, + 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, + 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, + 7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, + 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, + 9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, + 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, + 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, +}; + +static const static_codebook _44p3_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p3_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p3_p2_0, + 0 +}; + +static const long _vq_quantlist__44p3_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p3_0[] = { + 1, 5, 5, 5, 8, 8, 0, 8, 8, 6, 9, 9, 8,10,10, 0, + 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, + 10, 0,12,12, 7,11,11, 9,12,12, 0,12,12, 0,13,13, + 0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, + 8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, + 7, 5, 7, 7, 9, 9, 9, 0,11,10, 9, 9, 9,11,12,12, + 0,10,10, 0,11,11, 0,13,13, 0,11,11, 6, 7, 7, 9, + 10,10, 0,12,12,10,11,11,11,12,12, 0,12,12, 0,13, + 13, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, + 0,12,12, 0,13,13, 0,11,11, 0,12,12, 0,15,15, 0, + 11,11, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, + 12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, + 0,10,10, 0,12,12, 0,10,10, 0,12,13, 0,12,12, 0, + 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p3_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p3_p3_0, + 0 +}; + +static const long _vq_quantlist__44p3_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p3_1[] = { + 3, 4, 4, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, + 8, 8, 0, 9, 9, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, + 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, + 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, + 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 6, + 5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, + 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, + 9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, + 10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, + 0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, + 7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, + 9, 0, 7, 7, 0, 7, 7, 0, 9, 9, 0, 6, 6, 0, 6, 6, + 0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, + 10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 8, + 8, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, + 0, 7, 7, +}; + +static const static_codebook _44p3_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p3_p3_1, + 0 +}; + +static const long _vq_quantlist__44p3_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p4_0[] = { + 1, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8,10,11,11, 9, + 8, 8, 8, 8, 8,11,11,11,10, 8, 8, 5, 7, 7, 9,11, + 11,10,11,11,10,11,11,12,13,14,11,12,12,10,11,11, + 13,14,14,12,12,12, 5, 6, 6, 8, 6, 6, 8, 7, 7, 8, + 7, 7,11,10,10,10, 7, 7, 9, 7, 7,12,11,11,11, 7, + 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, + 13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, + 11,11,12,11,11,12,11,11,14,14,14,14,12,12,12,12, + 12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,11,12, + 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, + 11,11, 8, 8, 8,12,10,10,12,10,10,13,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, + 12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, + 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, + 12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,14,15, + 0,12,12, +}; + +static const static_codebook _44p3_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p3_p4_0, + 0 +}; + +static const long _vq_quantlist__44p3_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p3_p4_1[] = { + 3, 4, 5, 8, 8,12,10,10,12,12,12,10,10,12,12,13, + 11,11,12,12,13,12,12,12,12,13,10,10,13,13,13,13, + 13,13,13,13,10,10,13,13,13,11,11,13,13,14,13,13, + 12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,12, + 12,13,11,11,13,13,13,13,13,12,12,13,12,12,13,13, + 13,13,13,13,13,14,11,11,12,12,14,12,12,13,12,14, + 14,14,12,12,13,14,14,13,13,14,13,13,13,13,14,14, + 14,12,12,14,13,13,13,13,14,14,14,12,12,12, 8, 8, + 11,11,12,12,12,11,11,12,11,11,10,10,13,12,12,10, + 10,13,12,12,10,10,13,12,12,12,12,14,12,12,12,12, + 13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, + 12,12,12,12,13,12,12,12,12,13,13,13,11,11,14,12, + 12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, + 12,11,14,13,13,11,11,14,13,12,11,11,14,13,13,11, + 11,14,13,13,12,12,14,12,12,12,12,15,13,13,12,12, + 14,12,12,11,11,14,13,13,11,11,12, 9, 9,10,10,12, + 7, 7,11,11,12, 9, 9,12,12,13,10,10,10,10,14,14, + 14,11,11,13, 9, 9,12,12,14,14,14,12,12,13, 8, 8, + 11,11,14, 9, 9,12,12,14,14,14,11,11,13, 9, 9,12, + 12,14,14,14,12,12,14, 8, 8,11,11,14, 9, 9,12,12, + 14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, + 9, 9,11,11,14,10,10,12,12,14,14,14,11,11,14,14, + 15,12,12,15,14,14,14,14,15,14,14,11,11,14,14,14, + 12,12,14,14,14,11,11,14,11,11,10,10,14,10,10,10, + 10,14,10,10,10,10,15,11,11, 9, 9,14,12,12, 9, 9, + 15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, + 11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, + 13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, + 11,11,15,12,12,11,11,15,13,13,11,11,15,11,11,10, + 10,15,12,12,10,10,15,13,13,10,10,15,14,14,11,11, + 15,13,13,11,11,15,14,14,10,11,15,13,13,10,10,15, + 13,14,10,10,14,13,13,10,10,14,13,13,10,10,14,13, + 13,10,10,14,13,13, 9, 9,14,14,14, 9, 9,15,14,14, + 11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, + 11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, + 14,14,14,10,10,15,14,14,10,10,14,14,14,10,10,15, + 14,14,11,11,15,14,14,11,11,14,14,14,10,10,15,14, + 14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, + 12,12,15,15,14,10,10,15,14,14,10,10,14,15,15, 9, + 9,14,10,10,12,12,17, 9, 9,12,12,17,10,10,13,13, + 17,11,11,12,12,18,14,14,12,12,17,10,10,13,13,17, + 14,14,12,12,17, 9, 9,12,12,17,11,11,12,12,17,14, + 14,12,12,18,10,10,13,13,18,14,14,13,13,18, 9, 9, + 12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, + 13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, + 17,14,14,12,12,18,15,15,13,13,18,14,14,14,14,18, + 15,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, + 7,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15, + 11,11,15,15,15,11,11,14,15,15,12,12,14,15,15,12, + 12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12, + 14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14, + 15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, + 15,12,12,14,15,14,12,12,14,15,15,11,11,15,14,14, + 12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, + 12,15,15,15,12,12,15,15,15,12,12,13,13,13,11,10, + 14,14,15,11,11,14,14,14,12,12,15,14,14,10,10,15, + 15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, + 15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, + 12,12,14,14,14,12,12,14,15,15,11,11,14,15,15,12, + 12,15,15,15,11,11,15,15,15,12,12,15,14,14,12,12, + 14,15,15,11,11,14,15,15,11,11,15,15,15,10,10,15, + 15,16,12,12,15,15,15,14,14,15,15,15,11,11,15,15, + 15,12,12,15,15,15,11,11,14,11,11,10,10,15, 9, 9, + 12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12, + 12,15,10,10,13,13,15,14,14,12,12,15, 9, 9,12,12, + 15,10,10,13,13,15,13,13,12,11,15,10,10,12,12,15, + 14,14,12,12,15, 9, 9,11,11,15,11,11,12,12,15,13, + 13,11,11,15,11,11,13,13,15,13,14,13,14,15,11,11, + 11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13, + 13,15,14,14,20,20,15,14,14,12,12,15,14,14,12,12, + 15,14,14,11,11,14,13,13,10,10,14,13,13,12,12,14, + 14,13,12,12,15,14,14,12,12,15,14,14,11,11,15,14, + 14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14, + 11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, + 13,15,14,14,12,11,15,14,14,12,12,15,14,14,13,13, + 15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15, + 14,14,12,12,15,15,15,13,13,15,15,15,13,13,15,14, + 14,13,13,15,15,15,13,13,15,14,15,12,12,15,15,15, + 13,13,14,10,10,12,13,17, 9, 9,12,12,17,10,10,13, + 13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, + 18,14,14,12,12,17, 9, 9,12,12,18,10,11,13,13,18, + 14,14,12,12,17,10,10,12,12,17,14,14,12,12,17, 9, + 9,12,12,17,11,11,12,12,17,14,14,12,12,18,11,11, + 12,12,18,14,14,13,13,18,11,11,12,12,18,11,11,12, + 12,18,14,14,12,12,18,15,15,12,12,18,14,14,13,13, + 18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13, + 7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, + 14,12,12,15,15,15,12,11,14,15,15,12,12,14,15,15, + 12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13, + 13,14,15,15,11,11,14,15,15,13,12,14,15,15,11,11, + 14,15,15,11,11,15,15,15,13,13,14,15,15,12,12,15, + 15,15,12,12,15,15,15,11,11,15,15,15,11,11,15,15, + 15,12,12,15,15,15,13,13,15,16,16,12,12,15,15,15, + 12,13,15,15,15,12,12,15,15,15,12,12,13,13,13,11, + 11,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, + 15,14,14,11,11,14,15,15,12,12,14,14,14,12,12,14, + 15,15,11,11,14,15,14,12,12,15,14,14,11,11,14,15, + 15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, + 12,12,15,15,14,11,11,15,15,15,12,12,15,14,14,12, + 12,14,15,15,11,11,14,15,14,11,11,15,15,15,10,10, + 15,15,15,12,12,15,14,14,14,13,15,15,15,11,11,15, + 15,15,11,11,15,15,15,10,10,14,11,11,10,10,15, 9, + 9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14, + 12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, + 12,15,11,11,13,13,15,14,14,12,12,15,10,10,13,13, + 15,13,14,12,12,15, 9, 9,12,12,15,10,10,13,13,15, + 13,13,11,11,15,11,11,13,13,15,14,14,13,13,15,10, + 10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, + 13,13,15,14,14,21,20,15,14,14,11,11,15,14,14,12, + 12,15,14,14,11,11,14,13,13,10,10,14,13,13,11,11, + 15,14,14,12,12,15,14,14,12,12,14,14,14,12,12,15, + 14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14, + 14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, + 13,13,14,14,14,11,11,15,14,14,11,11,14,14,14,13, + 13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, + 15,14,14,12,12,14,14,14,13,13,15,15,15,13,13,16, + 14,14,12,13,15,15,15,13,13,15,14,14,12,12,15,15, + 15,13,13,15,11,11,13,12,18,10,10,12,12,17,11,11, + 12,12,18,12,12,11,11,18,14,14,12,12,18,11,11,13, + 13,17,14,14,12,12,18,10,10,12,12,18,12,12,12,12, + 18,14,15,12,12,18,11,11,13,13,18,14,14,12,12,17, + 10,10,12,12,18,11,11,12,12,18,15,14,12,12,17,12, + 12,12,12,17,14,14,12,12,17,11,11,11,11,17,12,12, + 12,11,17,15,15,11,11,18,15,15,12,12,18,14,15,13, + 13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, + 14, 9, 9,11,11,14,15,15,11,11,15,15,15,11,11,15, + 15,15,12,11,15,15,15,12,12,15,15,15,11,11,15,15, + 15,13,13,14,15,15,11,11,15,15,15,11,11,15,15,15, + 13,13,15,15,15,11,11,15,15,15,13,13,15,15,15,11, + 11,15,15,15,11,11,15,15,15,13,13,15,15,15,12,12, + 15,15,15,13,13,15,15,14,11,11,15,15,15,12,12,15, + 15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, + 15,12,12,15,15,15,13,12,15,15,15,12,12,13,12,12, + 11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, + 11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, + 14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, + 14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14, + 14,12,12,15,14,14,11,11,15,15,15,12,12,15,14,14, + 12,12,15,15,15,11,11,15,14,14,11,11,15,14,15,11, + 11,15,15,15,12,12,15,14,14,13,13,16,15,15,11,11, + 15,14,14,12,12,15,15,15,11,11,14,11,11, 9, 9,15, + 10,10,12,12,14,11,11,12,12,15,12,12,12,12,15,14, + 14,13,13,15,11,11,13,13,15,14,14,13,13,15,10,10, + 12,12,15,12,12,13,13,15,14,14,13,13,15,11,11,12, + 12,15,14,14,13,13,14,10,10,12,12,15,12,12,13,13, + 15,14,14,12,12,15,12,12,13,13,15,14,14,15,15,15, + 11,11,12,12,15,12,12,12,13,15,14,14,12,12,15,15, + 15,14,14,15,14,14,20,20,15,14,14,12,12,15,14,14, + 13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, + 11,14,13,13,12,12,14,14,14,12,12,15,14,14,13,13, + 15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15, + 14,14,12,12,15,14,14,14,14,15,14,14,12,12,14,14, + 14,14,14,14,14,14,11,11,15,14,14,12,12,14,14,14, + 14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,12, + 12,15,14,14,12,12,14,14,14,14,13,15,15,15,14,14, + 15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15, + 15,15,13,13,14,13,13,13,13,18,15,15,12,12,18,15, + 15,13,12,18,15,16,11,11,18,16,17,12,12,18,15,15, + 13,13,18,17,17,12,12,18,15,15,12,12,17,15,15,12, + 12,18,17,17,12,12,18,15,15,13,13,18,16,17,12,12, + 17,15,15,12,12,18,15,15,12,12,18,16,17,11,12,18, + 16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, + 15,12,12,18,17,17,11,11,17,17,17,12,12,18,16,16, + 13,13,18,17,17,11,11,18,16,16,12,12,18,17,17,11, + 11,15,14,14,11,11,16,15,15,11,11,16,15,15,12,12, + 16,15,15,12,12,17,15,15,14,13,16,15,15,12,12,17, + 15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, + 15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, + 11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, + 12,17,16,15,14,14,16,14,15,12,12,16,15,15,12,12, + 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, + 15,15,13,13,17,15,15,14,14,18,15,15,13,13,15,12, + 13,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, + 12,12,16,14,14,12,12,16,14,14,13,12,17,14,14,13, + 13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, + 16,14,14,12,12,17,14,14,13,13,15,15,15,12,12,16, + 14,14,12,12,17,14,14,12,12,17,15,15,12,12,17,14, + 14,13,13,16,15,15,12,12,16,14,14,12,12,17,15,15, + 12,12,18,15,15,13,13,17,14,14,13,13,17,15,15,12, + 12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, + 15,15,15,12,12,15,15,15,13,13,15,15,15,14,14,15, + 15,15,19,19,15,15,16,13,13,15,15,16,19,20,15,15, + 15,13,12,15,16,16,14,14,15,15,15,19,19,15,15,15, + 13,13,15,16,15,20,19,14,15,15,13,13,15,15,15,14, + 14,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20, + 15,15,15,14,14,15,15,15,14,14,15,15,15,19,19,15, + 15,15,20,19,15,16,16,20,19,15,15,15,19,19,15,16, + 16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, + 11,11,14,14,14,12,12,15,14,14,13,13,15,14,14,19, + 20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11, + 15,14,14,12,12,15,14,14,20,20,15,14,14,12,12,14, + 14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14, + 14,19,20,15,14,14,13,13,15,14,14,22,19,15,15,14, + 12,12,15,14,14,13,13,14,15,15,22,20,15,15,15,20, + 20,15,14,14,21,20,15,15,15,20,21,15,14,14,20,20, + 14,15,15,20,20, +}; + +static const static_codebook _44p3_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p3_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p3_p4_1, + 0 +}; + +static const long _vq_quantlist__44p3_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p3_p5_0[] = { + 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, + 12,12,15,15, 0,13,13,15,15, 7, 8, 8,15,15,10,10, + 10,16,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, + 16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,15, + 15, 0,13,13,18,18, 0,13,13,16,16, 0,14,14,17,17, + 0,20, 0,19,20, 0,12,12,16,16, 0,16,16,20,22, 0, + 14,14,16,16, 0,14,14,17,17, 0,20,22,20,19, 0,13, + 13,15,16, 0,17,18, 0,21, 0,15,15,16,16, 5, 7, 7, + 13,13, 8, 9, 9,14,14,10,10,10,14,14, 0,20,22,18, + 18, 0,22,21,18,17, 9,10,10,14,14,12,12,12,17,17, + 12,10,10,14,14, 0, 0,20,17,17, 0,22,21,17,18,11, + 10,10,14,14,14,13,13,18,18,12,11,11,14,14, 0,22, + 21,18,19, 0,20, 0,17,17, 0,22, 0,18,18, 0, 0, 0, + 0, 0, 0,20,20,17,17, 0,22, 0,22,21, 0,21, 0,19, + 18, 0,22,22,18,18, 0, 0, 0, 0, 0, 0,21, 0,17,17, + 0,22, 0,20,20, 0, 0, 0,19,18, 6, 6, 6,12,12, 8, + 6, 6,10,10, 8, 6, 6,13,12, 0,10,10,11,11, 0,11, + 11,13,13, 8, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, + 12,12, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, + 13,12,10,10,13,13,10, 6, 6,12,12, 0,11,11,15,15, + 0,10,10,13,13, 0,12,12,15,14, 0,19,20,16,17, 0, + 9, 9,13,13, 0,14,14,20,21, 0,12,11,13,12, 0,12, + 12,15,14, 0,20,19,17,17, 0,10,10,12,13, 0,15,15, + 22,21, 0,12,12,12,13, 0,10,10,12,12, 0,11,11,15, + 15, 0,11,11,15,15, 0,15,15,22,22, 0,16,17, 0, 0, + 0,11,11,15,15, 0,14,14,18,18, 0,11,11,16,16, 0, + 16,15, 0,21, 0,16,16, 0, 0, 0,12,12,15,15, 0,14, + 14,19,19, 0,11,11,15,15, 0,15,15,22, 0, 0,16,16, + 22, 0, 0,16,16, 0,21, 0, 0, 0, 0, 0, 0,15,15,19, + 20, 0,18,18, 0, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, + 0, 0, 0, 0, 0, 0,16,15,22,21, 0,20,20, 0, 0, 0, + 18,18, 0, 0, 0,10,10,12,12, 0,10,10,11,11, 0,11, + 11,12,12, 0,11,11, 9, 9, 0,13,12,12,12, 0,11,11, + 13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, + 13, 0,12,12,12,12, 0,11,11,13,13, 0,13,13,12,12, + 0,10,10,12,12, 0,13,13,14,13, 0,12,12,12,12, 0, + 14,13,13,14, 0,20,21,15,15, 0,11,11,12,12, 0,15, + 16,20,20, 0,12,13,10,10, 0,13,13,14,13, 0,20,20, + 15,15, 0,11,11,12,12, 0,16,17,21,21, 0,13,13,11, + 11, 6, 7, 7,16,15,11, 9, 9,14,15,12, 9, 9,16,16, + 0,13,13,15,15, 0,14,14,17,17,10, 9, 9,16,16,14, + 12,12,16,16,12, 9, 9,15,15, 0,13,13,17,18, 0,13, + 13,15,15,12,10,10,17,17,15,12,12,17,17,13, 9, 9, + 16,16, 0,13,13,18,19, 0,14,14,16,16, 0,15,15,18, + 18, 0, 0, 0,20,19, 0,12,12,17,16, 0,16,17, 0,21, + 0,14,15,16,16, 0,15,15,18,18, 0, 0,22,19,21, 0, + 13,13,16,16, 0,18,17,22,22, 0,15,15,16,16, 7, 7, + 7,13,13,11,10,10,15,15,12,10,10,14,14, 0,21, 0, + 18,17, 0,21,22,18,18,11,10,10,15,15,14,12,12,17, + 17,14,11,11,14,14, 0,21,20,18,18, 0,22,21,18,17, + 12,11,10,16,16,16,14,14,17,19,14,11,11,15,15, 0, + 0,22,19,19, 0,21,22,18,18, 0,21, 0,18,19, 0, 0, + 0,22, 0, 0,22,21,17,17, 0, 0, 0,20,22, 0, 0,21, + 18,18, 0, 0, 0,19,20, 0, 0, 0, 0, 0, 0, 0,21,17, + 17, 0, 0, 0,22,21, 0, 0, 0,19,19,10, 9, 9,14,13, + 13,10,10,12,12,13,10,10,14,14, 0,13,13,12,12, 0, + 15,14,16,15,13,10,10,14,14,15,12,12,14,14,15,10, + 10,14,14, 0,14,14,15,15, 0,14,13,14,14,13,10,10, + 15,15,17,13,13,15,15,14,10,10,14,14, 0,14,14,15, + 16, 0,14,14,15,15, 0,15,15,16,16, 0,21,22,17,18, + 0,12,12,14,14, 0,17,17,20,21, 0,14,14,14,14, 0, + 15,15,16,16, 0,21,22,18,18, 0,13,13,14,14, 0,18, + 18,22, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, + 16,15, 0,12,12,16,16, 0,16,16, 0, 0, 0,16,17, 0, + 22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, + 0,15,15, 0,21, 0,16,16,21,22, 0,12,12,16,16, 0, + 15,15,19,19, 0,12,12,17,16, 0,16,16,21,22, 0,16, + 16, 0, 0, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, + 19,20, 0,17,19, 0, 0, 0,17,17,22, 0, 0,17,17, 0, + 22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,20, 0, 0, + 0,19,18,22, 0, 0,11,12,14,14, 0,11,11,14,14, 0, + 12,12,15,15, 0,13,13,13,13, 0,14,14,16,16, 0,12, + 12,15,15, 0,14,14,16,15, 0,11,11,15,15, 0,13,13, + 16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, + 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, + 0,15,15,16,16, 0, 0, 0,18,18, 0,12,12,14,14, 0, + 16,16,22, 0, 0,14,14,15,15, 0,15,15,16,17, 0,21, + 22,18,18, 0,13,13,15,14, 0,18,17,22, 0, 0,14,14, + 15,15, 8, 8, 8,16,15,12,10,10,16,15,12,10,10,16, + 16, 0,14,14,16,17, 0,14,14,17,16,12,10,10,17,18, + 14,12,12,18,18,14,10,10,16,16, 0,14,14,18,18, 0, + 14,14,16,16,12, 9, 9,16,16,17,13,13,16,17,14, 9, + 9,15,15, 0,14,14,18,19, 0,13,13,15,15, 0,15,15, + 18,19, 0, 0, 0,22,21, 0,13,13,16,16, 0,16,16,22, + 0, 0,15,15,16,16, 0,14,14,18,17, 0, 0, 0,20, 0, + 0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, + 7, 7,13,13,12,10,10,15,15,12,10,10,14,14, 0,22, + 22,19,18, 0, 0, 0,18,18,12,10,10,15,15,14,13,13, + 17,17,14,11,11,15,15, 0,19,20,18,18, 0,22,21,17, + 18,13,11,11,15,15,16,13,13,18,18,14,11,11,14,15, + 0,22,21,20,19, 0,22,21,17,17, 0, 0,22,19,18, 0, + 0, 0, 0, 0, 0,22,20,17,17, 0, 0, 0,21,20, 0, 0, + 0,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,20, + 18,17, 0, 0, 0, 0, 0, 0, 0, 0,18,18, 0,10,10,14, + 14, 0,11,11,14,14, 0,11,11,15,15, 0,14,14,14,14, + 0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, + 11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, + 11,15,15, 0,13,13,15,15, 0,10,10,15,15, 0,15,15, + 17,17, 0,14,14,14,14, 0,16,16,16,16, 0, 0,22,19, + 19, 0,13,13,14,14, 0,17,17, 0, 0, 0,15,15,14,14, + 0,16,16,17,17, 0, 0,22,18,18, 0,13,13,14,14, 0, + 21,18, 0, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, + 12,15,15, 0,12,12,16,15, 0,16,16, 0, 0, 0,17,17, + 22,22, 0,12,12,16,16, 0,14,14,18,18, 0,11,12,16, + 16, 0,15,16, 0,21, 0,16,16,22,21, 0,12,12,16,16, + 0,15,15,19,20, 0,11,12,16,16, 0,15,15,20,22, 0, + 16,16, 0,22, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, + 15,21,22, 0,19,18, 0, 0, 0,17,17, 0, 0, 0,17,17, + 0,22, 0, 0, 0, 0, 0, 0,16,15,22, 0, 0,19,19, 0, + 0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, + 0,12,12,15,15, 0,13,13,14,14, 0,15,15,16,17, 0, + 12,12,16,16, 0,14,14,16,16, 0,12,11,15,16, 0,14, + 14,16,17, 0,14,14,16,16, 0,13,12,16,16, 0,15,15, + 16,16, 0,11,11,15,15, 0,14,14,16,16, 0,14,14,15, + 15, 0,15,15,18,17, 0, 0,22, 0,20, 0,13,13,15,15, + 0,16,17,22,22, 0,14,14,15,15, 0,15,15,17,18, 0, + 20, 0,19,19, 0,13,13,15,15, 0,18,18,22, 0, 0,14, + 14,15,15, 0,11,11,16,16, 0,14,14,17,16, 0,13,13, + 17,17, 0,16,16,17,17, 0,17,17,18,19, 0,12,12,16, + 17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,18, + 0,16,16,17,16, 0,12,13,17,17, 0,17,16,18,17, 0, + 13,12,16,16, 0,16,16,18,19, 0,16,16,16,17, 0,16, + 16,18,18, 0,22, 0,22,22, 0,13,13,16,16, 0,19,18, + 22,20, 0,16,15,16,16, 0,16,17,18,18, 0, 0, 0,22, + 20, 0,14,14,16,16, 0,19,19, 0, 0, 0,16,16,16,16, + 0, 9, 9,13,13, 0,13,13,15,15, 0,14,14,15,15, 0, + 0,22,17,18, 0,22, 0,18,19, 0,12,12,15,15, 0,15, + 16,17,17, 0,14,14,14,14, 0,22, 0,18,18, 0,21,22, + 17,17, 0,13,13,15,15, 0,17,17,17,18, 0,14,14,15, + 15, 0,22,21,21,19, 0,20,21,17,17, 0,21,21,19,18, + 0, 0, 0, 0, 0, 0,21,21,17,17, 0, 0, 0,22,22, 0, + 0,22,19,18, 0, 0,21,19,18, 0, 0, 0, 0,22, 0,19, + 20,17,17, 0, 0, 0, 0,22, 0, 0, 0,19,18, 0,19,19, + 15,16, 0,21,19,16,17, 0, 0,21,17,17, 0, 0,22,17, + 17, 0,22,22,18,19, 0,20,20,16,16, 0, 0,22,18,18, + 0,20,19,16,17, 0,22,21,20,19, 0, 0,21,17,17, 0, + 21,20,17,17, 0, 0, 0,18,18, 0,19,19,17,16, 0,22, + 0,19,19, 0,21,22,17,18, 0, 0,22,19,18, 0, 0, 0, + 19,20, 0,19,19,16,16, 0,22,22,22, 0, 0,20,22,16, + 16, 0,22,20,18,19, 0, 0, 0,20,19, 0,20,20,16,16, + 0, 0, 0, 0, 0, 0,22,20,17,16, 0,11,11,13,13, 0, + 14,13,15,15, 0,13,13,16,15, 0,18,17,21, 0, 0,18, + 18,21, 0, 0,12,12,15,15, 0,15,16,17,18, 0,12,12, + 15,15, 0,17,17,22,20, 0,17,18,22, 0, 0,12,12,17, + 16, 0,16,17,19,19, 0,13,13,16,16, 0,17,17, 0,22, + 0,17,17, 0,21, 0,18,18,20,22, 0, 0, 0, 0, 0, 0, + 15,15,21,20, 0,20,19, 0, 0, 0,18,18,22, 0, 0,17, + 17,22, 0, 0, 0, 0, 0, 0, 0,15,16,20,22, 0,20,21, + 0, 0, 0,19,18, 0, 0, 0,15,15,19,19, 0,17,16,20, + 20, 0,16,17,20,21, 0,18,17, 0, 0, 0,19,19, 0, 0, + 0,15,15,21,19, 0,19,19, 0, 0, 0,15,15,22,22, 0, + 18,18, 0,22, 0,17,18,22,21, 0,15,15,20,19, 0,19, + 19, 0, 0, 0,15,15,20,22, 0,18,19,20, 0, 0,18,17, + 21,21, 0,18,18,19,22, 0, 0, 0, 0, 0, 0,15,15,20, + 19, 0,19,19, 0, 0, 0,18,18,21,22, 0,18,18,22, 0, + 0, 0, 0, 0, 0, 0,15,15,19,20, 0,21,21, 0, 0, 0, + 17,17,20,20, 0,12,12,17,17, 0,14,14,16,17, 0,13, + 14,17,17, 0,16,16,17,17, 0,17,17,17,19, 0,13,13, + 17,17, 0,16,16,18,18, 0,13,13,16,16, 0,16,16,18, + 18, 0,16,16,17,17, 0,13,13,17,17, 0,17,17,18,17, + 0,12,12,15,16, 0,17,18,19,20, 0,16,16,16,16, 0, + 17,16,18,19, 0, 0,22,21,22, 0,14,14,16,16, 0,19, + 19, 0, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,22, + 21,21, 0,14,14,16,16, 0,22,20,22, 0, 0,16,16,15, + 15, 0, 9, 9,13,13, 0,14,14,15,15, 0,14,14,14,14, + 0,22,22,18,18, 0, 0,22,18,18, 0,12,12,15,15, 0, + 16,16,18,17, 0,14,14,14,14, 0,20,21,18,18, 0,22, + 21,17,17, 0,13,13,15,15, 0,17,17,18,18, 0,14,14, + 14,14, 0, 0,21,18,19, 0, 0,22,17,17, 0,22,22,19, + 18, 0, 0, 0, 0, 0, 0,19,21,17,17, 0, 0, 0,22,20, + 0, 0,21,18,19, 0, 0,22,18,18, 0, 0, 0, 0,22, 0, + 20,22,17,17, 0, 0, 0,20,22, 0, 0, 0,18,18, 0,19, + 21,16,16, 0,20,22,16,17, 0,20, 0,17,17, 0,22, 0, + 18,17, 0,21, 0,18,19, 0,20,20,17,17, 0,22, 0,18, + 18, 0,21,20,17,17, 0, 0,20,20,19, 0, 0,21,18,17, + 0,21,21,17,17, 0,22, 0,18,17, 0,19,19,17,17, 0, + 0,22,20,21, 0, 0,21,17,17, 0,22, 0,18,18, 0, 0, + 0,20,22, 0,20,19,16,16, 0, 0, 0, 0, 0, 0,22,22, + 17,17, 0,22, 0,18,19, 0, 0, 0,21,20, 0,19,21,16, + 17, 0, 0, 0, 0, 0, 0,22,22,17,16, 0,11,11,13,13, + 0,13,13,15,15, 0,13,13,15,15, 0,17,17,22,21, 0, + 18,18,22, 0, 0,12,13,16,15, 0,15,16,18,18, 0,13, + 13,16,16, 0,17,17, 0,22, 0,17,17,22,22, 0,13,13, + 16,16, 0,16,16,19,18, 0,13,13,16,16, 0,18,17, 0, + 20, 0,18,17,20, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, + 0,15,15,21,22, 0,19,20, 0, 0, 0,18,18, 0, 0, 0, + 18,17, 0, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20, + 20, 0, 0, 0,21,19, 0, 0, 0,15,15,20,19, 0,16,16, + 22,20, 0,17,17, 0,22, 0,18,18, 0,22, 0,19,17, 0, + 0, 0,15,16,22,20, 0,18,19, 0, 0, 0,16,16,22,20, + 0,18,18, 0,22, 0,18,18,22, 0, 0,16,16,21,20, 0, + 19,20, 0,22, 0,16,16, 0,22, 0,18,18, 0,22, 0,18, + 18, 0,21, 0,19,18, 0,22, 0, 0, 0, 0, 0, 0,16,16, + 21,20, 0,20, 0, 0, 0, 0,18,18,21, 0, 0,18,18, 0, + 0, 0, 0, 0, 0, 0, 0,16,16,21,19, 0, 0, 0, 0, 0, + 0,18,18, 0,21, +}; + +static const static_codebook _44p3_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p3_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p3_p5_0, + 0 +}; + +static const long _vq_quantlist__44p3_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p3_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p3_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p3_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p3_p5_1, + 0 +}; + +static const long _vq_quantlist__44p3_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p6_0[] = { + 1, 6, 6, 7, 7, 7, 7, 8, 8, 7, 9, 9,11,11,11, 9, + 8, 8, 8, 9, 9,12,11,11, 9, 8, 8, 6, 7, 7,10,11, + 10,10,10,10,11,11,10,14,13,14,12,11,11,11,11,11, + 15,14,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, + 8, 8,12,10,10, 9, 7, 7, 9, 7, 8,12,10,10,10, 7, + 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, + 13,10,10,11,10,10,16,13,14,14,10,10, 7, 7, 7,12, + 11,11,12,11,11,11,11,11,16,15,15,14,12,12,12,11, + 11,16,15,16,14,12,12,10, 9, 9,14,11,11,13,11,11, + 12,11,11,16,14,14,14,11,11,12,11,11,17,15,15,14, + 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, + 13,14,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, + 13,11,11,12,11,11,12,11,11,16,15,14,14,12,12,12, + 11,11,16,15,14,15,12,12,11,10,10,13,11,11,13,12, + 11,13,11,11,17,14,14,14,11,11,13,11,11,17,14,15, + 14,11,11, +}; + +static const static_codebook _44p3_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p3_p6_0, + 0 +}; + +static const long _vq_quantlist__44p3_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p6_1[] = { + 2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, + 7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 8, 6, 7, 7, 8, 8, + 8, 8, 8, 8, 9, 8, 8,10, 9, 9,10, 8, 8,10, 8, 8, + 10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, + 7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 9, 9, 7, + 7, 7, 7, 7,10, 8, 8,11, 8, 8,10, 8, 8,12, 9, 9, + 12, 8, 8,11, 9, 9,12, 9, 9,11, 8, 8, 7, 7, 7,10, + 9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, + 9,11,10,10,11, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, + 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, + 9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, + 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, + 10, 9, 9,10, 9, 9,11, 9, 9,11,11,11,11, 9, 9,11, + 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, + 10,11,10, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, + 11, 9, 9, +}; + +static const static_codebook _44p3_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p3_p6_1, + 0 +}; + +static const long _vq_quantlist__44p3_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p3_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p3_p7_0, + 0 +}; + +static const long _vq_quantlist__44p3_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p3_p7_1[] = { + 1, 9, 9, 6, 9, 9, 5, 9, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10, +}; + +static const static_codebook _44p3_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p3_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p3_p7_1, + 0 +}; + +static const long _vq_quantlist__44p3_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p3_p7_2[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p3_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p3_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p3_p7_2, + 0 +}; + +static const long _vq_quantlist__44p3_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p3_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p3_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p3_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p3_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p3_short[] = { + 4, 5,16, 9, 9,12,17,18, 4, 2,18, 6, 5, 9,13,15, + 10, 7, 7, 6, 7, 9,13,13, 8, 5, 6, 5, 5, 7,11,12, + 8, 4, 7, 4, 3, 6,10,12,11, 8, 9, 7, 6, 8,11,12, + 15,13,13,11, 9, 7,10,12,16,12,16,12, 6, 5, 8,11, +}; + +static const static_codebook _huff_book__44p3_short = { + 2, 64, + (long *)_huff_lengthlist__44p3_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p4_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p4_l0_0[] = { + 1, 4, 4, 8, 8, 9, 8, 9, 9,10,10,10,10, 4, 6, 5, + 8, 7, 9, 9, 9, 9,10, 9,10,10, 4, 5, 6, 7, 8, 9, + 9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, + 12,10,11,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,11,10, + 12, 9,10,10,11,10,11,11,12,11,12,12,12,12, 9,10, + 10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, + 12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, + 12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,13, + 12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,13,12,12,12,12,12,12,11,13,12,12, + 12,13,12,12,12,12,12,12,12, +}; + +static const static_codebook _44p4_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p4_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p4_l0_0, + 0 +}; + +static const long _vq_quantlist__44p4_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p4_l0_1[] = { + 3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, + 5, 6, 5, 6, 5, 6, 5, 6, 5, +}; + +static const static_codebook _44p4_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p4_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p4_l0_1, + 0 +}; + +static const long _vq_quantlist__44p4_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p4_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p4_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p4_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p4_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p4_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p4_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p4_long[] = { + 3, 5,13, 9, 9,12,16,18, 4, 2,20, 6, 7,10,15,20, + 10, 7, 5, 5, 6, 8,10,13, 8, 5, 5, 3, 5, 7,10,11, + 9, 7, 6, 5, 5, 7, 9, 9,11,10, 8, 7, 6, 6, 8, 8, + 15,15,10,10, 9, 7, 8, 9,17,19,13,12,10, 8, 9, 9, +}; + +static const static_codebook _huff_book__44p4_long = { + 2, 64, + (long *)_huff_lengthlist__44p4_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p4_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p4_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p4_p1_0, + 0 +}; + +static const long _vq_quantlist__44p4_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p4_p2_0[] = { + 3, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 12,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, + 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, + 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, + 5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, + 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, + 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, + 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, + 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, 7, + 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, + 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, + 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, + 0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, + 7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, + 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, + 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, + 9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, + 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, + 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, + 10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, +}; + +static const static_codebook _44p4_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p4_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p4_p2_0, + 0 +}; + +static const long _vq_quantlist__44p4_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p3_0[] = { + 1, 6, 6, 5, 7, 8, 0, 8, 8, 6, 9, 9, 7,10,10, 0, + 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, + 10, 0,12,12, 7,11,11, 8,12,12, 0,12,12, 0,13,12, + 0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 7, 7, 0, + 8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, + 7, 5, 7, 7, 8, 9, 9, 0,10,10, 8, 9, 9,11,11,11, + 0,10, 9, 0,11,11, 0,13,13, 0,10,10, 6, 7, 7, 8, + 10,10, 0,12,12, 9,10,10,10,12,12, 0,12,12, 0,12, + 12, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, + 0,11,11, 0,13,13, 0,11,11, 0,11,11, 0,15,15, 0, + 10,10, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, + 12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, + 0,10,10, 0,12,12, 0,10,10, 0,12,12, 0,12,12, 0, + 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44p4_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p4_p3_0, + 0 +}; + +static const long _vq_quantlist__44p4_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p3_1[] = { + 3, 5, 5, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, + 8, 8, 0, 8, 8, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, + 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, + 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, + 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 5, + 5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, + 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, + 9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, + 10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, + 0, 9, 9, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, + 7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, + 9, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 6, 6, 0, 6, 6, + 0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, + 10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 7, + 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, + 0, 6, 6, +}; + +static const static_codebook _44p4_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p4_p3_1, + 0 +}; + +static const long _vq_quantlist__44p4_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p4_0[] = { + 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, + 8, 8, 8, 8, 8,11,11,12, 9, 8, 8, 5, 7, 7, 9,11, + 11,10,11,11,10,11,11,12,14,14,11,12,12,10,12,12, + 13,14,14,12,12,12, 5, 6, 6, 7, 6, 6, 8, 7, 7, 8, + 7, 7,11,10,10,10, 7, 7, 9, 8, 8,12,11,11,10, 7, + 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, + 13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, + 11,11,12,11,11,12,11,11,14,14,14,13,12,12,12,12, + 12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, + 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, + 11,11, 7, 8, 8,12,11,10,12,10,10,12,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, + 12,11,11,12,11,11,12,11,11,15,14,14,14,12,12,13, + 12,12,15,14,14,15,13,13, 0,11,11, 0,12,12, 0,12, + 12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,15,14, + 0,12,12, +}; + +static const static_codebook _44p4_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p4_p4_0, + 0 +}; + +static const long _vq_quantlist__44p4_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p4_p4_1[] = { + 4, 5, 5, 9, 9,12, 9, 9,12,12,12,10,10,13,13,13, + 11,11,12,12,13,13,13,12,12,13,10,10,13,13,13,13, + 13,13,13,13,10,10,13,12,13,11,11,13,13,13,14,14, + 13,12,13,10,10,13,13,12,13,13,13,13,13,10,10,12, + 12,13,11,11,13,13,13,14,14,12,12,13,12,12,13,13, + 13,13,13,13,13,13,11,11,12,12,13,11,11,13,13,13, + 14,14,12,12,13,14,14,13,13,14,13,13,14,14,14,14, + 14,12,12,13,14,14,13,13,14,14,14,12,12,12, 8, 8, + 12,12,13,12,12,11,11,13,11,11,11,11,14,12,12,11, + 11,14,12,12,10,11,14,12,12,12,12,14,12,12,12,12, + 13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, + 12,12,12,12,14,12,12,12,12,14,13,13,11,11,14,12, + 12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, + 12,12,14,13,13,11,11,14,12,12,11,11,14,13,13,11, + 11,15,13,13,12,12,14,12,12,12,12,15,13,13,12,12, + 14,12,12,11,11,15,13,13,11,11,12, 9, 9,11,11,13, + 7, 7,11,11,13, 8, 8,12,12,14,10,10,10,10,14,14, + 14,11,11,14, 8, 8,12,12,14,14,14,12,12,14, 7, 7, + 11,11,14, 9, 9,12,12,14,14,14,11,11,14, 8, 8,12, + 12,14,14,14,12,12,14, 7, 7,11,11,14, 9, 9,12,12, + 14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, + 9, 9,11,11,14,10,10,12,11,15,14,14,11,11,14,15, + 15,12,12,15,14,14,14,14,15,14,14,11,11,15,14,14, + 12,12,15,14,14,11,11,14,11,11,10,10,15,10,10,10, + 10,15,10,10,10,10,15,11,11, 9, 9,15,12,13, 9, 9, + 15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, + 11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, + 13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, + 10,11,15,12,12,11,11,15,13,13,11,10,15,11,11,10, + 10,15,11,12,10, 9,15,13,13,10,10,15,14,14,11,11, + 15,13,13,11,11,15,14,14,10,10,15,13,13,10,10,15, + 14,14,10,10,14,13,13,10,10,15,13,13,10,10,15,13, + 13,10,10,14,14,14, 8, 9,15,14,14, 9, 9,15,14,14, + 11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, + 11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, + 15,14,14,10,10,15,14,14,10,10,15,14,14, 9, 9,15, + 14,14,11,11,15,14,14,11,11,15,14,14,10,10,15,14, + 14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, + 12,12,15,15,15,10,10,15,14,15,10,10,15,15,15, 9, + 9,15,10,10,13,13,17, 8, 8,12,12,17,10, 9,13,13, + 18,11,11,12,12,18,14,14,12,12,17, 9, 9,13,13,17, + 13,13,12,12,18, 8, 8,12,12,18,10,10,12,12,18,14, + 14,12,12,18,10,10,13,13,18,13,13,13,13,18, 9, 9, + 12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, + 13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, + 18,14,14,12,12,18,14,14,13,13,18,14,14,13,13,19, + 14,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, + 7,11,11,14,15,15,11,11,14,16,15,11,11,14,15,15, + 11,11,14,15,15,11,11,14,15,15,11,12,14,15,15,12, + 12,13,15,15,11,11,14,15,15,11,11,15,15,15,12,12, + 14,15,15,12,12,14,16,16,12,12,14,15,15,11,11,14, + 15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, + 15,12,12,14,15,15,11,11,14,15,15,11,11,15,14,15, + 12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, + 12,14,15,15,12,12,15,15,15,12,12,13,13,13,11,11, + 14,14,15,11,11,14,14,14,12,12,14,15,15,10,10,15, + 15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, + 15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, + 12,12,14,14,15,11,11,14,15,15,11,11,14,15,15,12, + 12,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12, + 14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15, + 15,15,12,12,15,15,15,14,14,15,15,15,11,11,15,15, + 15,11,11,15,15,15,11,11,14,10,10,10,10,15, 9, 9, + 12,11,15,10,10,12,12,15,11,11,11,11,15,13,13,12, + 12,16,10,10,12,12,15,13,13,12,12,15, 9, 9,11,11, + 15,10,10,13,12,15,13,13,11,11,15,10,10,12,12,15, + 13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15,13, + 13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10, + 11,11,15,11,11,12,12,15,13,14,11,11,15,14,14,13, + 13,16,14,14,20,19,15,14,14,11,11,15,13,14,12,12, + 15,14,14,11,11,14,13,13,10,10,14,14,13,11,11,15, + 13,14,12,12,15,14,14,12,12,15,14,14,11,11,15,14, + 14,12,12,15,15,14,13,13,15,14,14,11,11,15,14,14, + 11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, + 13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13, + 15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15, + 14,14,11,11,15,15,15,12,12,15,15,15,13,13,16,14, + 14,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15, + 12,12,14,10,10,13,13,17, 9, 9,12,12,17, 9, 9,13, + 13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, + 18,14,13,12,12,18, 9, 9,12,12,18,10,10,12,13,18, + 14,14,12,12,17, 9, 9,12,12,17,13,14,12,12,17, 9, + 9,12,12,17,10,10,12,12,17,14,14,11,11,18,11,11, + 12,12,18,14,14,12,13,18,10,10,12,12,18,11,11,12, + 12,18,14,14,11,11,18,15,15,12,12,18,14,14,13,13, + 18,14,15,12,12,17,14,14,12,12,17,15,15,12,12,13, + 7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, + 15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15, + 12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12, + 12,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11, + 15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14, + 15,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15, + 15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15, + 12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,12, + 12,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, + 15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14, + 15,15,11,11,14,14,14,12,12,15,15,14,11,11,14,15, + 15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, + 11,11,15,14,14,10,10,14,15,15,12,12,14,14,14,12, + 12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10, + 15,15,15,12,12,15,14,14,13,13,15,15,15,10,10,15, + 14,14,11,11,15,15,15,10,10,14,10,10,10,10,14, 9, + 9,12,12,15,10,10,12,12,14,11,11,11,11,15,13,14, + 12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, + 12,15,10,10,13,13,15,13,14,11,11,15,10,10,12,12, + 15,13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15, + 13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10, + 10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, + 13,13,15,14,14,20,19,15,14,14,11,11,15,14,14,12, + 12,15,14,14,11,11,14,13,13,11,11,15,13,13,11,11, + 15,14,13,12,12,15,14,14,11,12,15,14,14,11,11,15, + 14,14,12,12,14,14,14,13,13,15,14,14,11,11,15,14, + 14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, + 13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13, + 13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, + 15,14,14,11,11,14,14,14,12,12,15,15,15,13,13,16, + 14,14,12,12,15,15,15,13,13,15,14,14,12,12,15,15, + 15,12,12,15,11,11,13,13,18,10,10,12,12,17,11,11, + 12,12,18,12,12,11,11,18,14,14,12,12,18,10,10,13, + 13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12, + 18,14,14,12,12,18,11,11,12,13,18,14,14,12,12,18, + 10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,11, + 11,12,12,18,14,14,12,12,17,10,10,11,11,17,12,12, + 11,11,17,14,14,11,11,18,15,15,12,12,18,14,14,13, + 13,18,15,15,11,11,18,15,14,12,12,18,15,15,11,11, + 14, 8, 8,11,11,14,15,15,10,10,14,15,15,11,11,14, + 15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15, + 15,12,12,14,15,15,10,10,15,15,15,11,11,15,15,15, + 12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,10, + 10,15,15,15,11,11,15,15,15,12,12,15,15,15,12,12, + 15,16,16,12,12,15,14,14,11,11,15,15,15,11,11,15, + 15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, + 15,12,12,15,15,15,12,12,15,15,15,12,12,14,13,13, + 11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, + 11,15,15,14,11,11,15,14,14,12,12,15,14,14,12,12, + 14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, + 14,15,12,12,15,14,14,12,12,14,15,15,11,11,15,14, + 14,11,11,15,14,14,11,11,15,15,14,12,12,15,14,14, + 12,12,15,15,15,10,11,15,14,14,11,11,15,15,15,10, + 10,15,15,15,12,12,16,14,14,13,13,15,15,15,11,11, + 15,14,14,11,11,15,15,15,11,11,14,11,11, 9, 9,14, + 10,10,12,12,15,11,11,12,12,15,12,12,12,12,15,14, + 14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10, + 12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,12, + 12,14,14,14,13,13,14,10,10,11,11,15,11,11,12,12, + 15,14,14,12,12,15,12,12,13,13,15,14,14,14,14,15, + 11,11,11,11,15,12,11,12,12,15,14,14,11,11,15,15, + 15,13,14,15,14,14,20,19,15,14,14,12,12,15,14,14, + 13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, + 11,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12, + 15,14,14,12,11,14,14,14,13,13,15,14,14,11,11,15, + 14,14,11,11,15,14,14,14,14,15,14,14,11,12,15,14, + 14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14, + 14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,11, + 11,14,14,14,12,12,15,14,14,13,13,15,15,15,13,13, + 15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15, + 15,15,13,13,15,14,14,13,13,18,15,15,12,12,18,15, + 15,12,12,18,16,16,11,11,18,17,17,12,12,18,15,15, + 13,13,18,17,17,12,12,18,15,15,12,12,18,15,16,12, + 12,18,17,17,12,12,18,15,15,13,12,17,16,17,12,12, + 17,15,15,11,12,18,15,15,12,12,18,17,17,11,11,18, + 16,16,12,12,18,17,16,12,12,18,15,15,11,11,18,15, + 15,12,12,18,17,17,11,11,18,17,17,12,12,18,16,16, + 13,13,18,17,17,11,11,17,16,16,11,11,18,17,17,11, + 11,15,15,15,11,11,16,15,15,11,11,16,15,15,11,11, + 16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,17, + 15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, + 15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, + 11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, + 12,17,16,15,14,14,16,15,15,11,11,16,15,15,12,12, + 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,18, + 14,15,13,13,18,15,15,14,14,18,15,15,13,13,15,13, + 13,12,12,15,14,14,12,12,16,14,14,12,12,16,14,14, + 12,12,17,14,15,12,12,16,14,14,12,12,17,14,14,13, + 13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, + 16,14,14,12,12,17,14,14,13,13,15,15,15,11,11,16, + 14,14,12,12,17,14,14,12,12,16,15,15,12,12,17,14, + 14,13,12,16,15,15,11,11,16,14,14,12,12,17,15,15, + 11,11,17,15,15,13,13,17,14,14,13,13,18,15,15,12, + 12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, + 14,15,15,12,12,15,16,15,13,13,15,15,15,14,14,15, + 15,15,21,19,15,15,15,13,13,15,15,15,19,19,15,15, + 15,12,12,15,16,16,14,14,15,15,15,19,19,15,16,15, + 13,13,15,16,16,19,20,15,15,15,12,13,15,16,16,14, + 14,15,15,15,20,19,15,15,15,14,14,15,16,16,19,19, + 15,15,15,14,13,15,15,15,14,14,15,15,15,19,19,15, + 16,16,20,19,15,17,16,21,20,15,15,15,20,19,15,16, + 16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, + 11,11,14,14,14,12,12,15,14,14,13,13,15,15,14,20, + 20,15,14,14,12,12,14,14,14,19,19,15,14,14,11,11, + 15,14,14,12,12,15,14,14,20,19,15,14,14,12,12,14, + 14,14,20,20,14,14,14,11,11,15,14,14,12,12,15,14, + 14,20,21,15,14,14,13,13,15,14,14,20,20,15,14,14, + 12,12,15,14,14,13,13,14,15,15,20,20,15,15,15,20, + 19,15,14,14,20,19,15,15,15,20,20,15,14,14,21,20, + 15,15,15,20,20, +}; + +static const static_codebook _44p4_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p4_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p4_p4_1, + 0 +}; + +static const long _vq_quantlist__44p4_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p4_p5_0[] = { + 1, 7, 6,15,15, 7, 8, 8,15,15, 8, 8, 8,15,15, 0, + 13,13,16,16, 0,14,14,16,16, 7, 9, 9,16,16,10,11, + 11,17,17,10, 8, 8,15,16, 0,14,14,18,18, 0,14,14, + 16,16, 9, 9, 9,16,16,12,11,11,17,17,10, 9, 9,15, + 15, 0,14,14,19,19, 0,14,14,16,16, 0,15,15,18,17, + 0, 0, 0,20,20, 0,13,13,16,16, 0,17,17,22,20, 0, + 15,15,17,17, 0,15,15,18,18, 0,22,21,20,21, 0,13, + 13,16,16, 0,18,18, 0,22, 0,15,15,17,17, 6, 7, 7, + 13,13, 9,10,10,15,15,11,10,10,15,15, 0,21,22,18, + 18, 0, 0, 0,18,18,10,10,10,15,15,12,13,13,17,17, + 12,11,11,15,15, 0,22,22,18,18, 0, 0,21,18,18,12, + 11,11,15,15,15,14,14,18,18,13,11,11,15,15, 0, 0, + 21,18,19, 0,21,22,18,19, 0,22, 0,18,19, 0, 0, 0, + 0, 0, 0,21,21,18,18, 0,22, 0, 0,21, 0, 0, 0,19, + 18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0,20,20,18,17, + 0, 0,22, 0,21, 0, 0, 0,19,19, 6, 6, 6,13,13, 8, + 6, 6,11,11, 9, 7, 7,13,13, 0,10,10,11,11, 0,12, + 12,14,14, 9, 8, 8,14,14,12,10,10,13,13,10, 7, 7, + 13,13, 0,11,11,15,15, 0,11,11,13,13, 9, 8, 8,14, + 14,13,10,10,13,14,11, 7, 7,13,13, 0,11,11,15,15, + 0,11,11,13,13, 0,12,12,15,15, 0,21,21,17,17, 0, + 10,10,13,13, 0,14,14,20,20, 0,12,12,13,13, 0,12, + 12,15,15, 0,21,22,17,18, 0,10,10,13,13, 0,16,16, + 20,21, 0,12,12,13,13, 0,11,11,13,13, 0,12,12,16, + 16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, + 0,12,12,15,15, 0,15,15,18,18, 0,12,12,16,16, 0, + 16,16,21,22, 0,17,17,22,21, 0,12,12,16,16, 0,15, + 15,19,19, 0,12,12,16,16, 0,16,16,22,22, 0,17,16, + 22, 0, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15,21, + 20, 0,19,20, 0,22, 0,18,18, 0, 0, 0,18,17, 0, 0, + 0, 0, 0, 0, 0, 0,16,16,22,21, 0,20,20, 0,22, 0, + 20,19, 0, 0, 0,11,11,12,12, 0,10,10,11,11, 0,11, + 11,12,12, 0,12,12,10,10, 0,13,13,12,12, 0,11,11, + 13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,13,14, + 13, 0,12,12,12,12, 0,12,12,13,13, 0,14,14,13,13, + 0,10,10,12,12, 0,13,13,14,14, 0,13,12,12,12, 0, + 14,14,14,14, 0,21,21,16,16, 0,12,12,12,12, 0,16, + 16,20,21, 0,13,13,11,11, 0,14,14,14,14, 0,20,20, + 16,15, 0,12,12,12,12, 0,17,17,20,20, 0,13,13,11, + 11, 7, 8, 8,16,16,11,10,10,15,15,12,10,10,17,17, + 0,14,14,16,15, 0,15,15,17,17,11, 9, 9,16,16,14, + 12,12,17,17,13, 9, 9,16,15, 0,14,14,19,18, 0,14, + 14,16,16,12,10,10,17,18,16,13,13,17,18,14,10,10, + 16,16, 0,14,14,19,19, 0,14,15,17,17, 0,15,15,18, + 19, 0, 0, 0,20,20, 0,13,13,17,17, 0,17,18, 0,22, + 0,15,15,16,17, 0,15,15,18,18, 0, 0, 0,20,21, 0, + 14,14,17,17, 0,19,18, 0, 0, 0,16,16,17,17, 8, 7, + 7,14,14,12,11,11,15,15,13,11,11,15,15, 0, 0, 0, + 18,19, 0,21,20,18,18,12,10,11,15,16,14,13,13,18, + 18,14,11,11,15,15, 0,20,20,19,18, 0,20, 0,18,18, + 13,11,11,16,16,17,15,15,19,19,14,12,12,15,15, 0, + 21, 0,18,20, 0,22,22,18,19, 0,22,22,19,19, 0, 0, + 0, 0, 0, 0,21,22,19,18, 0, 0, 0, 0,21, 0, 0, 0, + 19,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,22, 0,18, + 18, 0, 0, 0, 0,22, 0, 0, 0,19,20,11,10,10,14,14, + 14,11,11,13,13,14,11,11,15,15, 0,14,13,12,12, 0, + 15,15,16,16,13,11,11,15,15,16,13,13,15,15,15,10, + 10,14,15, 0,14,14,16,16, 0,14,14,15,15,13,11,11, + 15,15,18,14,14,15,15,15,10,10,15,14, 0,14,14,16, + 16, 0,14,14,15,15, 0,15,15,17,16, 0,21,22,18,18, + 0,13,13,14,14, 0,18,17,20,21, 0,15,15,14,14, 0, + 15,16,16,17, 0, 0, 0,19,18, 0,13,13,15,14, 0,19, + 19, 0, 0, 0,15,15,14,14, 0,12,12,14,13, 0,13,13, + 16,16, 0,12,12,16,16, 0,16,16,22, 0, 0,17,18, 0, + 22, 0,13,13,16,16, 0,15,15,18,18, 0,12,12,16,16, + 0,16,16,22,22, 0,17,17, 0, 0, 0,13,13,17,17, 0, + 16,16,19,20, 0,12,12,17,17, 0,17,17,22, 0, 0,17, + 17,22,21, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, + 21,21, 0,19,19, 0, 0, 0,18,18, 0,22, 0,18,18, 0, + 22, 0, 0, 0, 0, 0, 0,16,16,22, 0, 0,20,20, 0, 0, + 0,19,18, 0, 0, 0,12,12,15,15, 0,12,12,15,14, 0, + 13,13,15,15, 0,14,14,14,14, 0,15,15,16,16, 0,13, + 13,15,16, 0,15,15,16,16, 0,12,12,15,15, 0,14,14, + 16,16, 0,14,14,15,15, 0,13,13,15,16, 0,15,15,16, + 16, 0,12,12,15,15, 0,15,15,17,17, 0,14,14,15,15, + 0,15,15,17,17, 0,21,21,19,19, 0,13,13,14,14, 0, + 17,17,22, 0, 0,14,14,15,15, 0,15,15,17,17, 0,22, + 0,18,20, 0,13,13,15,15, 0,18,18, 0,22, 0,15,15, + 14,15, 8, 8, 8,17,16,12,10,10,16,16,13,10,10,17, + 16, 0,15,15,17,17, 0,15,15,17,17,12,11,11,18,18, + 15,12,12,18,18,15,10,10,16,17, 0,14,14,18,18, 0, + 14,14,17,17,13,10,10,16,16,17,14,14,17,17,15,10, + 10,16,15, 0,15,15,19,20, 0,14,14,15,16, 0,16,16, + 19,19, 0, 0, 0,21,22, 0,13,13,17,17, 0,18,17, 0, + 21, 0,15,15,17,17, 0,15,15,18,19, 0, 0,22, 0,21, + 0,13,13,16,17, 0,19,19, 0,22, 0,16,15,16,16, 9, + 8, 8,14,14,12,11,11,15,15,13,11,11,15,15, 0,21, + 20,19,18, 0, 0, 0,19,18,12,11,11,16,15,15,13,13, + 17,18,14,11,11,15,15, 0,22,22,19,18, 0,22,21,18, + 18,14,11,11,15,15,17,14,14,18,18,15,12,12,15,15, + 0,22,22,20,19, 0, 0,21,18,18, 0, 0,22,20,20, 0, + 0, 0, 0, 0, 0,20,21,18,18, 0, 0, 0,21,21, 0, 0, + 0,20,19, 0,22,21,19,19, 0, 0, 0, 0, 0, 0, 0,22, + 17,18, 0, 0,22, 0,22, 0,22, 0,19,19, 0,11,11,15, + 15, 0,11,11,14,14, 0,12,12,15,15, 0,15,15,14,14, + 0,16,16,16,16, 0,12,12,16,16, 0,14,14,16,16, 0, + 11,11,15,15, 0,15,15,17,17, 0,15,15,15,15, 0,12, + 12,16,16, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, + 17,17, 0,15,15,14,15, 0,16,16,17,17, 0, 0, 0,19, + 19, 0,14,14,15,15, 0,18,18,21, 0, 0,15,15,14,15, + 0,16,16,17,17, 0,21, 0,19,19, 0,14,14,15,15, 0, + 20,20,22, 0, 0,16,15,14,14, 0,12,12,13,13, 0,12, + 12,16,16, 0,12,12,16,16, 0,16,16,22,21, 0,18,17, + 21, 0, 0,13,13,16,16, 0,15,15,18,19, 0,12,12,16, + 16, 0,16,17,22, 0, 0,17,17, 0,22, 0,13,13,17,16, + 0,15,15,19,19, 0,12,12,16,16, 0,16,16,21,20, 0, + 17,16,22, 0, 0,18,18,22,21, 0, 0, 0, 0, 0, 0,15, + 16,21,21, 0,19,19, 0, 0, 0,18,17, 0, 0, 0,18,18, + 21, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20,21, 0, + 0, 0,18,19, 0,22, 0,13,13,16,16, 0,12,12,15,15, + 0,13,13,16,16, 0,14,14,15,15, 0,15,15,17,17, 0, + 13,13,17,16, 0,15,15,17,17, 0,12,12,16,16, 0,15, + 15,17,17, 0,14,14,16,16, 0,13,13,16,17, 0,15,15, + 17,17, 0,12,12,16,16, 0,14,14,17,17, 0,14,14,16, + 16, 0,16,16,17,17, 0,21, 0,21,19, 0,13,13,16,16, + 0,17,17, 0, 0, 0,15,15,16,16, 0,16,15,18,18, 0, + 22, 0,20,20, 0,13,13,15,15, 0,18,18, 0, 0, 0,15, + 15,15,15, 0,12,12,17,17, 0,14,14,17,17, 0,14,14, + 17,17, 0,17,17,18,17, 0,17,17,19,18, 0,13,13,17, + 17, 0,16,16,18,18, 0,13,13,16,16, 0,17,17,19,19, + 0,16,16,17,17, 0,13,13,18,18, 0,17,17,18,18, 0, + 13,13,17,17, 0,17,17,19,19, 0,16,17,17,17, 0,17, + 17,19,19, 0,21, 0,21,19, 0,14,14,16,16, 0,20,19, + 0,21, 0,16,16,16,16, 0,17,18,19,19, 0, 0, 0, 0, + 21, 0,15,15,16,17, 0,21,20, 0, 0, 0,17,18,16,17, + 0, 9, 9,14,14, 0,14,14,15,16, 0,14,14,15,15, 0, + 0, 0,18,18, 0,21, 0,18,19, 0,12,12,15,15, 0,16, + 16,17,17, 0,14,14,14,14, 0,22, 0,19,18, 0,22, 0, + 17,18, 0,14,14,16,15, 0,18,18,19,18, 0,14,15,15, + 15, 0, 0,21,20,20, 0, 0, 0,18,18, 0,21,21,19,19, + 0, 0, 0, 0, 0, 0,21,21,18,18, 0,22, 0,20,20, 0, + 22, 0,19,19, 0,22, 0,19,20, 0, 0, 0, 0, 0, 0, 0, + 21,17,18, 0, 0, 0,22,22, 0, 0, 0,19,18, 0,18,20, + 16,16, 0,21,20,17,17, 0, 0,21,18,18, 0,22,21,18, + 18, 0, 0,22,19,19, 0,20,20,17,17, 0, 0, 0,18,18, + 0,19,20,17,17, 0,22, 0,19,21, 0,22,21,18,18, 0, + 20,19,17,18, 0, 0, 0,19,19, 0,20,20,17,17, 0,22, + 22,21,21, 0,20, 0,18,18, 0,22,22,18,18, 0, 0, 0, + 20,22, 0,20,20,16,16, 0, 0, 0,21, 0, 0,21,20,16, + 17, 0,22, 0,19,20, 0, 0, 0,21,20, 0,19,21,17,17, + 0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, 0, + 14,14,16,16, 0,14,14,16,16, 0,18,18, 0, 0, 0,19, + 18,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13,13, + 16,16, 0,17,18,21, 0, 0,18,18,21, 0, 0,13,13,16, + 16, 0,17,17,19,20, 0,13,13,16,17, 0,18,18,21, 0, + 0,18,18,21, 0, 0,18,19, 0,21, 0, 0, 0, 0, 0, 0, + 16,16,21,20, 0,20,20, 0, 0, 0,18,19, 0, 0, 0,18, + 18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,22,22, + 0, 0, 0,19,19, 0, 0, 0,16,16,19,20, 0,17,16,22, + 21, 0,17,17,21,20, 0,19,18, 0,22, 0,19,19,22,22, + 0,16,15,22,22, 0,19,19, 0,21, 0,15,15,20,20, 0, + 18,19, 0,21, 0,18,18,22,22, 0,16,16,21,20, 0,20, + 19,21,22, 0,16,15,20,20, 0,19,19, 0,22, 0,18,18, + 21, 0, 0,19,18,21,22, 0, 0, 0, 0, 0, 0,16,16,19, + 21, 0,20,22, 0,22, 0,18,18,20,21, 0,19,18, 0,22, + 0, 0, 0,22, 0, 0,16,16,20,20, 0,21,21, 0, 0, 0, + 18,18,21, 0, 0,12,12,17,17, 0,15,14,17,17, 0,14, + 14,18,18, 0,17,17,17,18, 0,18,18,18,18, 0,13,13, + 18,18, 0,16,17,19,18, 0,13,13,16,17, 0,17,17,18, + 19, 0,17,17,17,17, 0,13,13,17,17, 0,17,18,18,18, + 0,13,13,16,16, 0,18,18,19,20, 0,16,17,17,16, 0, + 17,18,19,18, 0, 0, 0,22,21, 0,15,15,16,16, 0,20, + 20,21,22, 0,17,17,16,16, 0,16,17,18,18, 0, 0, 0, + 21,21, 0,15,15,16,16, 0,21,20, 0, 0, 0,17,17,16, + 16, 0,10,10,14,14, 0,14,14,15,15, 0,14,14,15,15, + 0,22, 0,18,18, 0, 0, 0,19,19, 0,13,13,15,16, 0, + 17,16,18,18, 0,14,14,15,15, 0,21,21,19,18, 0,22, + 21,18,17, 0,14,14,15,15, 0,18,18,19,18, 0,15,15, + 14,14, 0,22,21,19,19, 0,22,21,17,18, 0, 0, 0,19, + 19, 0, 0, 0, 0, 0, 0,20,22,17,17, 0, 0,22,22,20, + 0, 0, 0,19,18, 0,21,22,19,18, 0, 0, 0, 0, 0, 0, + 22,22,17,18, 0, 0, 0,21,22, 0, 0, 0,19,18, 0,20, + 20,17,17, 0,21,21,17,18, 0,21,22,18,18, 0,21, 0, + 18,18, 0,22, 0,19,19, 0,19,21,18,18, 0, 0,22,18, + 18, 0,22,21,17,17, 0,22, 0,20,20, 0, 0, 0,18,18, + 0,22,21,18,18, 0,21, 0,19,19, 0,20,21,17,17, 0, + 0,22,22,20, 0,21,22,17,17, 0, 0,21,19,18, 0, 0, + 0,21,21, 0,21,20,16,17, 0, 0, 0, 0, 0, 0,21, 0, + 17,17, 0,21, 0,19,20, 0, 0, 0,20,22, 0,20,20,17, + 17, 0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, + 0,14,14,16,16, 0,14,14,16,16, 0,18,18,21, 0, 0, + 19,19,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13, + 13,16,16, 0,18,18,21,22, 0,18,18, 0,22, 0,13,13, + 16,16, 0,17,17,20,18, 0,13,13,16,16, 0,19,18, 0, + 22, 0,18,18,22,21, 0,18,19, 0, 0, 0, 0, 0, 0, 0, + 0,16,16,21,21, 0,21,21, 0, 0, 0,18,19, 0, 0, 0, + 19,19,21, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,20, + 20, 0, 0, 0,20,20, 0, 0, 0,16,16,21,20, 0,18,17, + 21,22, 0,17,18, 0,21, 0,18,19,22,22, 0,19,19, 0, + 22, 0,16,17,21,22, 0,20,19, 0, 0, 0,16,16,20,21, + 0,19,19, 0, 0, 0,19,19, 0,22, 0,17,17,21,21, 0, + 19,20, 0, 0, 0,16,16, 0,20, 0,19,20, 0,21, 0,18, + 18, 0,22, 0,19,20,22,22, 0, 0, 0, 0,22, 0,17,17, + 0,21, 0,21,21, 0, 0, 0,18,19,23,21, 0,20,19, 0, + 0, 0, 0, 0, 0, 0, 0,17,17, 0,20, 0, 0, 0, 0, 0, + 0,19,19,23,22, +}; + +static const static_codebook _44p4_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p4_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p4_p5_0, + 0 +}; + +static const long _vq_quantlist__44p4_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p4_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p4_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p4_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p4_p5_1, + 0 +}; + +static const long _vq_quantlist__44p4_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p6_0[] = { + 1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, + 8, 8, 8, 9, 9,12,11,12, 9, 8, 8, 6, 7, 7,10,11, + 11,10,10,10,11,11,11,14,14,14,12,11,12,11,11,11, + 15,15,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, + 7, 7,12,10,10,10, 7, 6, 9, 8, 8,12,10,10,10, 6, + 6, 7, 8, 8,12,10,10,12,10,10,11,10,10,16,14,14, + 13,10,10,12,10,10,15,14,14,14,10,10, 7, 7, 7,13, + 11,11,13,11,11,12,11,11,16,14,14,14,12,12,12,11, + 11,18,15,15,14,12,12,10, 9,10,14,11,11,13,11,11, + 12,11,11,17,14,14,14,11,11,13,11,11,16,15,15,14, + 11,11, 7, 8, 8,13,11,11,12,10,10,12,10,10,16,14, + 13,13,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, + 12,11,11,13,11,11,12,11,11,16,15,14,14,12,12,12, + 11,11,16,15,15,14,12,12,11,10,10,14,11,11,13,11, + 11,13,11,11,17,14,14,14,11,11,13,11,11,18,14,15, + 15,11,10, +}; + +static const static_codebook _44p4_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p4_p6_0, + 0 +}; + +static const long _vq_quantlist__44p4_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p6_1[] = { + 2, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, + 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 8, 8, + 8, 8, 8, 8, 9, 8, 8, 9, 8, 9, 9, 8, 8,10, 8, 8, + 10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, + 7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 8, 9, 7, + 7, 7, 7, 7,10, 8, 8,11, 9, 9,10, 9, 9,11, 9, 9, + 11, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 7, 7, 7,10, + 9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, + 10,11,10,11,10, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, + 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, + 9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, + 9,12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, + 10, 9, 9,10, 9, 9,10, 9, 9,11,11,11,11, 9, 9,11, + 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, + 10,11,10,10,11,10,10,11, 9, 9,11,10,10,11,10,10, + 11, 9, 9, +}; + +static const static_codebook _44p4_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p4_p6_1, + 0 +}; + +static const long _vq_quantlist__44p4_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p4_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p4_p7_0, + 0 +}; + +static const long _vq_quantlist__44p4_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p4_p7_1[] = { + 1, 9, 9, 7, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, + 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 5, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 5,10, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 8,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10, +}; + +static const static_codebook _44p4_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p4_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p4_p7_1, + 0 +}; + +static const long _vq_quantlist__44p4_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p4_p7_2[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p4_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p4_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p4_p7_2, + 0 +}; + +static const long _vq_quantlist__44p4_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p4_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p4_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p4_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p4_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p4_short[] = { + 3, 5,16, 9, 9,13,18,21, 4, 2,21, 6, 6,10,15,21, + 16,19, 6, 5, 7,10,13,16, 8, 6, 5, 4, 4, 8,13,16, + 8, 5, 6, 4, 4, 7,12,15,13,10, 9, 7, 7, 9,13,16, + 18,15,13,12, 9, 7,10,14,21,18,13,13, 7, 5, 8,12, +}; + +static const static_codebook _huff_book__44p4_short = { + 2, 64, + (long *)_huff_lengthlist__44p4_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p5_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p5_l0_0[] = { + 1, 4, 4, 8, 8,10,10,10,10, 9, 8,11,11, 4, 6, 5, + 8, 6,10,10,10,10,10, 9,10, 9, 4, 5, 6, 6, 9,10, + 10,10,10, 9,10, 9,10, 8, 9, 8, 9, 8, 9, 9,10, 9, + 11,10,12,10, 8, 8, 9, 8, 9, 9, 9, 9,10,10,11,10, + 12, 9,10,10,11,10,11,10,12,11,12,11,13,11, 9,10, + 10,10,11,10,11,11,12,11,12,11,12,11,12,12,12,12, + 13,12,13,12,13,12,13,13,11,12,12,12,12,12,12,12, + 13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13, + 13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,12, + 13,13,13,14,14,13,13,13,13,13,13,13,12,13,12,13, + 13,13,13,13,13,13,13,13,13, +}; + +static const static_codebook _44p5_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p5_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p5_l0_0, + 0 +}; + +static const long _vq_quantlist__44p5_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p5_l0_1[] = { + 4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 4, 4, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p5_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p5_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p5_l0_1, + 0 +}; + +static const long _vq_quantlist__44p5_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44p5_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p5_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p5_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p5_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44p5_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p5_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p5_long[] = { + 3, 7,12,14,14,16,18,19, 6, 2, 4, 6, 8, 9,12,14, + 12, 3, 3, 5, 7, 8,11,13,13, 6, 4, 5, 7, 8,10,11, + 14, 8, 7, 7, 7, 7, 9,10,15, 9, 8, 7, 7, 6, 8, 9, + 17,11,11,10, 9, 8, 9, 9,19,14,13,11,10, 9, 9, 9, +}; + +static const static_codebook _huff_book__44p5_long = { + 2, 64, + (long *)_huff_lengthlist__44p5_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p5_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p1_0[] = { + 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, + 10, 8, 9,10, 8, 9,10, 9,10,12,10,11,11, 8,10,10, + 10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, + 10,10, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, + 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, + 9,11,11, 8,10, 9,10,11,11,10,11,11, 7, 9, 9, 9, + 10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, + 11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,11,10, + 9,11,10,10,11,12,11,13,12, 9,11,11,11,12,13,11, + 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,11, + 11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, + 9,10,11, 9,11,11, 9,11,11,11,11,13,11,13,12, 9, + 10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, + 10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, + 10,13,10, +}; + +static const static_codebook _44p5_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p5_p1_0, + 0 +}; + +static const long _vq_quantlist__44p5_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p5_p2_0[] = { + 4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, + 10,10,12,13, 8,10,10,13,12, 6, 7, 8,10,10, 7, 8, + 9,10,11, 8, 9, 9,11,11,10,10,11,12,14,10,11,11, + 14,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, + 10,10,11,11,13,14,10,11,10,14,12, 9,10,10,12,12, + 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, + 14,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, + 10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 7, 8, + 10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, + 14,10,11,11,14,13, 8, 9,10,11,12, 9,10,11,12,13, + 9,10,11,12,13,11,12,13,13,15,12,12,13,15,14, 8, + 9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,12,12, + 13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, + 13,15,12,13,13,14,15,14,13,15,14,16,14,15,15,16, + 16,11,12,11,14,13,12,13,13,15,14,11,13,12,14,13, + 14,15,15,15,16,13,14,14,16,14, 6, 8, 7,11,10, 8, + 9, 9,11,12, 8,10, 9,12,11,10,11,11,13,14,10,12, + 11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, + 13,12,11,12,12,13,14,12,13,12,15,14, 8,10, 9,12, + 11, 9,11,10,13,12, 9,11,10,13,12,12,13,12,14,15, + 11,13,12,15,13,11,11,12,13,14,11,12,13,13,15,12, + 13,13,14,15,13,14,14,14,16,14,15,15,16,16,11,12, + 11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, + 16,16,13,15,13,16,14, 9,10,11,12,14,11,11,12,13, + 15,11,12,12,13,14,13,14,15,15,17,13,14,14,15,16, + 11,11,12,13,15,12,12,13,14,16,12,13,13,14,15,14, + 14,16,15,17,15,15,15,16,17,11,12,12,14,14,12,13, + 13,15,16,12,13,13,15,15,15,15,15,16,17,14,15,15, + 16,16,14,14,15,15,17,14,15,15,15,17,15,15,16,16, + 17,16,16,17,16,18,17,17,17,18,18,14,15,14,16,16, + 15,15,16,17,17,14,15,15,17,16,17,17,17,18,18,16, + 16,16,17,17, 9,11,10,14,12,11,12,12,14,13,11,12, + 11,15,13,13,14,14,16,15,13,15,14,17,15,11,12,12, + 15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16, + 16,15,15,15,17,16,11,12,11,15,13,12,13,13,15,14, + 12,13,12,16,14,15,15,15,17,16,14,15,14,17,15,14, + 14,15,16,16,14,15,15,16,16,15,16,15,17,17,16,16, + 16,17,17,17,17,17,18,17,14,15,14,16,15,15,15,15, + 17,16,15,15,15,17,15,17,17,17,18,18,16,17,16,18, + 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, + 10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, + 10,10,12,13, 9,10,10,13,13,11,11,12,13,15,11,12, + 12,15,14, 8, 9, 9,12,11, 9,11,10,13,13, 9,11,10, + 13,12,12,13,12,14,15,11,13,12,15,13,10,11,12,13, + 14,11,12,12,13,15,12,12,13,14,15,13,13,14,14,16, + 14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11, + 13,12,15,13,14,15,15,15,16,13,14,14,16,14, 7, 9, + 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,12, + 14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, + 14,10,11,12,13,14,12,12,13,14,16,12,13,13,15,15, + 9,11,10,13,13,10,12,12,13,14,10,12,11,14,13,12, + 13,13,15,16,12,13,13,15,14,11,11,13,13,15,12,12, + 14,13,16,13,13,13,14,15,14,14,15,14,17,15,15,15, + 16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16, + 14,15,15,16,16,17,14,15,14,17,15, 7, 9, 9,12,11, + 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,14,11, + 13,12,15,14, 9,10,10,13,12,10,10,11,12,13,10,12, + 11,14,13,12,12,13,13,15,12,14,13,16,15, 9,10,10, + 13,12,11,11,12,13,13,10,12,10,14,12,13,13,13,15, + 15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, + 13,14,13,15,15,14,13,15,13,16,15,16,15,17,16,12, + 13,12,14,14,13,14,14,15,15,12,13,12,15,14,15,15, + 16,16,17,14,15,13,16,13,10,11,12,13,14,11,12,13, + 14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, + 16,12,12,13,12,15,12,12,14,13,16,13,13,14,14,16, + 14,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13, + 14,14,16,16,13,14,13,16,15,15,16,16,17,17,14,15, + 15,17,16,14,14,15,14,17,15,15,16,15,17,15,15,16, + 15,17,16,16,17,16,18,17,17,17,17,18,14,15,15,17, + 16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, + 16,17,16,18,17,10,12,11,14,14,12,13,13,15,15,12, + 13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,13, + 12,15,14,12,13,13,15,15,13,14,13,16,14,15,15,15, + 16,16,15,16,15,17,16,12,13,13,15,15,13,14,14,16, + 16,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, + 14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,16, + 16,16,16,17,17,18,17,18,17,14,15,15,17,16,15,16, + 16,17,17,15,16,15,17,16,17,17,18,18,18,16,17,16, + 18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, + 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, + 9,10,11,12,13, 9,10,11,13,13,11,12,13,13,15,12, + 12,12,15,14, 7, 9, 9,12,11, 9,10,10,13,13, 9,10, + 10,13,12,11,12,12,14,15,11,12,11,15,13,11,11,12, + 13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, + 16,14,15,15,16,16,10,12,11,14,13,12,13,12,14,14, + 11,12,12,15,13,14,15,15,16,16,13,14,13,16,14, 7, + 9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, + 13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,12, + 12,14,11,12,11,13,13,12,12,14,13,15,13,13,13,15, + 15, 9,10,10,12,13,10,11,12,13,14,10,11,10,13,12, + 13,13,14,15,16,12,13,12,15,13,12,13,13,14,14,12, + 12,13,14,15,13,14,14,15,15,14,13,15,13,16,15,16, + 15,17,16,11,12,12,14,14,13,13,14,15,15,12,13,12, + 15,14,15,15,16,16,17,14,14,13,16,13, 7, 9, 9,12, + 11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, + 11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, + 12,12,14,13,12,13,13,14,16,12,13,13,16,15, 9,11, + 9,13,11,10,12,11,13,13,10,12,10,14,12,12,13,13, + 15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, + 15,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, + 11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, + 15,15,16,16,14,15,14,17,14,10,11,12,14,14,12,12, + 13,14,15,12,13,13,15,15,14,15,15,16,17,14,15,15, + 16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16, + 16,15,15,16,16,17,15,16,16,17,17,11,12,13,14,15, + 13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,15, + 15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, + 16,17,17,16,16,17,16,18,17,17,17,18,18,14,15,15, + 16,16,15,16,16,16,17,15,15,15,16,16,17,17,17,18, + 18,16,16,16,17,16,10,12,11,14,13,12,13,13,15,15, + 11,13,12,15,14,14,15,15,16,16,14,15,14,17,15,12, + 13,13,15,15,13,13,14,16,16,13,14,14,16,16,15,15, + 15,16,17,15,16,16,17,17,12,13,12,15,12,13,14,13, + 16,14,12,14,12,16,13,15,16,15,17,16,14,16,14,17, + 15,14,15,15,16,17,15,15,16,17,17,15,16,16,17,17, + 16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, + 16,15,17,15,15,16,15,17,15,17,17,17,18,17,16,17, + 16,18,16, 9,11,11,14,14,11,12,12,14,14,11,12,12, + 15,14,13,14,14,16,16,13,15,14,16,16,10,11,12,14, + 14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17, + 14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, + 13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13, + 14,15,16,13,14,14,15,16,13,14,15,16,16,15,15,16, + 16,18,16,16,16,18,17,14,14,14,16,15,15,15,15,17, + 16,14,15,15,17,16,16,17,17,18,17,16,16,16,18,16, + 10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, + 14,15,16,17,14,15,15,17,16,11,12,13,14,15,12,12, + 14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, + 17,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16, + 15,15,16,15,17,17,15,16,15,17,16,13,13,15,14,17, + 14,13,16,15,17,15,14,16,15,17,15,15,17,16,18,16, + 16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, + 15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11, + 14,14,11,12,13,15,15,12,13,12,15,15,14,15,15,16, + 16,14,15,15,17,16,11,12,12,15,15,12,13,13,15,15, + 13,14,13,16,15,14,15,15,16,16,15,16,15,17,16,11, + 13,13,15,15,13,14,14,15,15,12,14,13,16,15,15,16, + 15,17,17,15,16,15,17,16,13,15,14,16,16,14,15,14, + 16,16,15,16,15,17,16,15,16,16,16,17,16,17,16,18, + 17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16, + 17,17,17,18,18,16,16,16,18,16,12,13,13,15,16,13, + 14,14,15,16,13,14,14,16,16,15,15,16,16,18,15,16, + 16,17,17,13,13,14,15,16,14,14,15,15,17,14,15,15, + 16,17,15,15,17,16,18,16,16,17,17,17,13,14,14,16, + 16,14,15,15,17,17,14,15,14,17,16,16,17,16,17,18, + 16,17,16,18,17,15,15,16,14,17,16,15,17,14,18,16, + 16,16,15,18,16,16,18,15,19,18,18,18,17,19,15,16, + 16,18,17,16,17,17,18,17,16,17,16,18,17,18,18,18, + 19,19,17,18,16,18,17,11,12,12,15,15,13,13,14,15, + 16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16, + 12,14,13,16,15,13,13,14,15,16,14,15,14,17,15,15, + 15,16,16,17,16,17,16,18,17,12,13,14,15,16,14,15, + 15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, + 17,15,15,16,15,17,16,15,15,15,16,16,16,17,16,18, + 16,16,15,16,15,17,17,18,17,18,17,15,15,16,17,17, + 16,16,17,17,17,15,16,15,17,16,18,18,18,18,18,16, + 17,16,18,15, 9,11,11,14,14,11,12,12,14,15,10,12, + 12,15,14,13,14,15,16,16,13,14,14,16,16,11,12,12, + 14,15,12,12,13,15,15,12,13,13,15,15,14,15,15,16, + 17,14,15,15,16,16,10,12,12,14,14,12,13,13,15,15, + 11,13,12,15,15,14,15,15,16,17,13,15,14,16,16,14, + 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, + 17,16,18,16,17,17,17,17,12,14,13,16,15,13,15,14, + 16,16,13,14,14,16,15,16,16,16,17,17,15,16,15,17, + 16,10,11,11,14,14,12,12,13,14,15,11,13,12,15,14, + 14,15,15,16,17,14,15,15,16,16,12,13,13,15,15,12, + 13,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15, + 16,17,17,11,12,12,15,15,13,13,14,15,16,12,13,13, + 15,15,15,15,16,16,17,14,15,15,16,16,14,15,15,16, + 16,15,15,15,16,17,15,16,16,17,17,16,16,17,16,18, + 17,17,17,17,18,13,14,15,16,16,15,15,16,16,17,14, + 14,14,16,16,16,16,17,17,18,16,16,16,17,16,10,12, + 12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, + 16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, + 16,13,14,14,16,16,15,15,16,16,17,15,15,16,17,17, + 11,13,12,15,14,13,14,13,16,15,12,14,12,16,15,15, + 16,15,17,17,14,15,14,17,16,14,15,15,16,17,15,15, + 16,16,17,15,16,16,17,17,16,16,17,17,18,17,17,17, + 18,18,13,15,13,17,14,14,16,14,17,16,14,15,13,17, + 15,16,17,16,18,17,15,17,15,18,16,11,12,12,15,15, + 13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15, + 16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15, + 15,16,16,16,15,16,16,17,16,16,16,17,17,12,13,14, + 15,16,14,14,15,15,17,13,14,13,16,15,16,16,17,17, + 18,15,16,15,17,15,15,16,15,17,17,15,15,16,16,17, + 16,17,16,17,17,16,15,17,15,18,17,18,17,18,18,15, + 15,16,16,17,16,16,17,16,18,15,15,15,16,16,17,17, + 18,17,18,16,16,15,17,15,12,13,13,15,15,13,14,14, + 16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, + 16,13,14,14,16,16,14,14,15,16,17,14,15,15,17,17, + 16,16,17,17,18,16,16,17,18,17,13,14,13,16,14,14, + 15,15,17,16,14,15,14,17,15,16,17,17,18,17,15,17, + 15,18,16,15,16,16,17,17,16,16,17,17,18,16,17,17, + 18,18,17,16,18,17,19,18,18,18,18,18,15,16,15,17, + 14,16,16,16,18,15,16,17,15,18,14,18,18,18,18,17, + 17,18,16,19,15, +}; + +static const static_codebook _44p5_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p5_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p5_p2_0, + 0 +}; + +static const long _vq_quantlist__44p5_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p3_0[] = { + 1, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, + 10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 8,10, + 11, 9,10,10, 9,10,11,10,11,12,11,12,12, 9,11,10, + 11,12,12,10,12,11, 6, 9, 8, 9,10,10, 8,11,10, 9, + 10,11,10,11,12,11,12,12, 9,11,10,11,12,12,10,12, + 11, 6, 9, 9, 8,10,11, 9,11,10, 8,10,10,10,10,12, + 11,12,12, 9,11,10,11,12,12,10,12,11, 8,10,10,10, + 11,12,10,12,11,10,10,12,11,11,13,12,13,13,10,12, + 11,12,13,13,11,13,11, 7,10,10,10,11,12,10,12,11, + 10,12,11,11,11,12,12,14,13,10,12,12,12,14,14,11, + 13,11, 6, 9, 9, 9,10,11, 8,11,10, 9,10,11,10,11, + 12,11,12,12, 8,11,10,11,12,12,10,12,10, 7,10,10, + 10,11,12,10,12,11,10,12,12,11,11,13,12,13,13,10, + 11,12,12,13,14,11,12,11, 8,10,10,10,11,12,10,12, + 11,10,11,12,11,11,13,12,13,13,10,12,10,12,13,13, + 11,13,11, +}; + +static const static_codebook _44p5_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p5_p3_0, + 0 +}; + +static const long _vq_quantlist__44p5_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p3_1[] = { + 5, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, + 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, + 8, 9, 9, 8, 9, 9, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, + 8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, + 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, + 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 8, 9, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 8, + 9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, + 8, 8, 9, 8, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, + 8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, + 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p5_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p5_p3_1, + 0 +}; + +static const long _vq_quantlist__44p5_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p4_0[] = { + 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, + 10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 8, 9, 9,10, + 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, + 11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, + 11,11,11,11,13,11,13,12, 9,11,10,12,13,13,11,13, + 11, 6, 9, 9, 8,10,11, 9,12,11, 9,10,11,10,10,12, + 11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, + 10,12,10,12,11,10,10,12,10,10,13,12,13,13,10,12, + 11,12,13,13,10,13,10, 7,10,10,11,11,13,11,14,11, + 10,12,11,11,11,13,13,14,13,10,12,12,14,14,14,11, + 14,11, 6, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, + 13,11,12,13, 8,11,10,11,13,13,10,12,10, 7,10,10, + 11,11,14,11,13,11,10,12,12,11,11,14,14,14,14,10, + 11,12,13,13,14,11,13,11, 8,10,10,10,11,12, 9,12, + 10,10,11,12,11,10,13,12,13,13,10,12,10,12,13,13, + 11,13,10, +}; + +static const static_codebook _44p5_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p5_p4_0, + 0 +}; + +static const long _vq_quantlist__44p5_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p5_p4_1[] = { + 5, 7, 7,10,10, 7, 8, 9,10,11, 7, 9, 8,11,10, 9, + 10,10,11,11, 9,10,10,11,11, 7, 9, 9,10,10, 8, 9, + 10,10,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, + 12,12, 7, 9, 9,10,10, 9,10,10,11,11, 8,10, 9,11, + 10,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, + 10,10,11,11,11,11,11,11,11,11,11,11,12,11,12,11, + 12,11,12,12,10,10,10,11,11,10,11,11,11,11,10,11, + 10,11,11,11,12,11,12,12,11,12,11,12,11, 8, 9, 9, + 11,11, 9,10,10,11,12, 9,10,10,11,11,10,11,11,12, + 12,10,11,11,12,12, 9,10,10,11,11,10,10,11,11,12, + 10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, 9, + 10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12, + 12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12, 8, 9, 9,11,11, 9, + 10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, + 11,12,12, 9,10,10,11,11,10,10,11,12,12,10,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12, 9,10,10,11, + 11,10,11,11,12,12,10,11,10,12,11,11,12,12,12,12, + 11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, + 11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12, + 12,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13, + 11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12, + 12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, + 12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13, + 13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, + 13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, + 11,12,12,12,12,12,13,12,12,12,12,13,13,11,12,12, + 12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13, + 13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13, + 12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12, + 12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13, + 13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10,10,12,11, + 10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, + 10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12, + 12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11,10, + 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, + 12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, + 10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12, + 12,12,11,12,12,12,12,10,10,11,11,12,11,11,12,12, + 12,11,11,12,12,12,11,11,12,12,13,12,12,12,12,12, + 10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12, + 12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13, + 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,12,12,12,12,13,12, 8,10,10,11,11, + 10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11, + 12,12,12,12,10,11,10,12,12,10,10,11,12,12,11,12, + 12,12,12,12,12,12,12,13,12,12,12,13,13,10,11,11, + 12,12,11,12,12,12,12,10,12,11,12,12,12,12,12,13, + 13,12,13,12,13,12,11,12,12,12,12,11,12,12,12,13, + 12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, + 13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12, + 12,13,11,12,12,12,12,12,12,12,13,13,12,12,13,13, + 13,11,12,12,12,12,12,12,12,12,13,12,12,13,13,13, + 12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12, + 13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13, + 13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11, + 12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,12, + 12,12,12,12,12,12,13,13,12,13,12,13,13,13,13,13, + 13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13, + 13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13, 8, 9, 9,11,11, 9,10,10,11,12, 9,10,10,11, + 11,10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11, + 10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11, + 12,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, + 10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, + 12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 8, + 10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,10,11,11,12,12,10,11,12, + 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,10,10,11,12,12,11,12,12,12,12,10,11,10,12,12, + 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,11, + 12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13, + 13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, + 13,12,12,13,13,13,13,12,13,12,13,12, 9,10,10,11, + 11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, + 11,12,12,12,12,12,12,12,13,12,12,12,13,12,10,11, + 10,12,11,11,12,11,12,12,11,12,11,12,12,12,12,12, + 12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13, + 11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,12, + 13,12,13,13,12,12,12,13,12,10,11,11,12,12,11,12, + 12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13, + 13,13,11,12,12,12,13,12,12,13,13,13,12,12,13,13, + 13,13,13,13,13,13,13,13,13,13,13,11,12,12,12,12, + 12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,13, + 13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,11, + 12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13, + 13,13,13,12,13,13,13,13,11,12,12,12,12,12,13,12, + 13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, + 13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13, + 13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, + 12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12, + 12,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13, + 12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12, + 12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12, + 12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13, + 13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13, + 13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12, + 12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, + 13,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13, + 13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, + 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13, + 12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13, + 13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11, + 12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13, + 13,12,13,12,13,13,11,12,12,13,13,12,12,12,13,13, + 12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11, + 12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13, + 13,13,13,12,13,13,13,13,12,12,12,13,13,12,13,13, + 13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, + 12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, + 12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, + 13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12, + 12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13, + 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, + 13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, + 12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, + 13,13,12,13,13,13,12,10,11,11,12,12,11,12,12,12, + 12,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13, + 11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, + 12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13, + 12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,12, + 13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, + 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, + 12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12, + 12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13, + 13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13, + 11,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12, + 12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13, + 13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13, + 13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12, + 12,12,13,13,13,12,13,13,13,13,11,12,12,13,13,12, + 12,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13, + 13,13,13,11,12,12,13,12,12,13,12,13,13,12,12,12, + 13,13,12,13,13,13,13,13,13,13,13,13,12,12,13,13, + 13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,12, + 11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12, + 13,13,12,12,12,13,13,11,12,12,12,13,12,12,12,13, + 13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, + 11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,12, + 13,13,13,13,12,13,12,13,13,12,13,12,13,13,12,13, + 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, + 13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12, + 11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12, + 12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,13, + 13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12, + 12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13, + 13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13, + 12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12, + 12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,12,13,13,13,13,11,12,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13, + 12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13, + 12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13, + 13,13,13,13,13,12,13,13,13,13,13,13,12,12,12,12, + 12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, + 13,13,13,13,12, +}; + +static const static_codebook _44p5_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p5_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p5_p4_1, + 0 +}; + +static const long _vq_quantlist__44p5_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p5_p5_0[] = { + 1, 6, 6,10,10, 6, 7, 9,11,13, 5, 9, 7,13,11, 8, + 11,12,13,15, 8,12,11,15,13, 6, 7, 8,11,11, 7, 8, + 10,11,13, 9,10,10,13,13,11,11,13,12,16,12,13,13, + 16,15, 6, 8, 7,11,11, 9,10,10,13,13, 7,10, 7,13, + 11,12,13,13,15,16,11,13,11,16,12,10,11,11,11,13, + 11,11,13,12,15,13,13,13,14,15,13,12,15,12,17,15, + 16,16,16,16,10,11,11,14,11,13,13,13,15,14,11,13, + 11,15,12,15,15,16,16,16,13,15,12,17,12, 6, 8, 9, + 12,12, 9,10,12,13,15, 9,11,11,15,14,12,13,15,16, + 18,13,14,14,17,16, 9,10,11,13,14,11,10,13,14,16, + 11,12,12,15,15,14,13,16,15,18,14,15,15,17,17, 9, + 11,11,14,14,11,12,13,15,16,11,13,11,15,14,15,15, + 15,17,18,14,15,14,17,15,13,14,14,15,16,14,14,15, + 15,17,15,16,15,17,17,16,16,17,15,19,17,18,18,19, + 18,13,14,14,16,15,15,15,16,17,17,14,15,14,18,15, + 17,17,17,19,19,16,17,15,19,16, 6, 9, 8,13,12, 9, + 11,11,14,15, 9,12,10,15,13,13,14,14,16,17,12,15, + 13,18,16, 9,11,11,14,14,11,11,13,14,15,11,13,12, + 16,15,14,14,15,15,18,14,15,15,18,17, 9,11,10,14, + 13,11,12,12,15,15,11,13,10,16,14,14,15,15,16,18, + 14,16,13,18,15,13,14,14,16,16,14,14,15,15,17,15, + 16,15,17,17,16,16,17,16,19,17,18,17,18,19,13,14, + 14,16,15,15,15,15,17,17,14,15,14,17,15,17,17,17, + 18,19,16,17,15,19,15,11,13,13,15,16,13,14,15,16, + 18,14,15,15,17,17,16,16,18,18,20,17,18,17,19,20, + 13,14,14,16,17,15,15,16,17,18,15,16,16,17,17,18, + 17,19,18,19,18,18,18,19,21,14,14,15,16,17,15,15, + 16,18,18,15,16,16,17,18,18,18,19,19,21,18,19,19, + 22,20,16,16,17,17,19,17,17,17,18,20,17,18,18,20, + 19,19,19,20,19, 0,19,19,20,20,21,17,17,17,19,18, + 18,18,20,19,19,18,18,18,20,20,19,19,20,20,20,20, + 21,20,21,19,11,13,13,16,15,14,15,15,17,17,14,15, + 14,18,16,16,18,18,20,19,16,19,17,21,18,13,14,15, + 16,17,15,15,16,18,18,15,16,15,19,18,18,18,18,19, + 19,18,18,18,22,20,13,14,14,16,16,15,16,16,18,17, + 15,16,15,18,17,18,18,18,19,19,17,18,17,21,18,16, + 17,17,18,18,17,18,19,19,19,18,20,18,19,19,19,20, + 21,19,21,20,20,20, 0,21,16,17,17,19,19,18,18,18, + 19,21,17,18,18,19,18,20,19,21,20,21,19,20,20,22, + 19, 7, 9, 9,13,13, 8,10,11,14,15, 9,12,11,15,14, + 11,13,14,16,17,13,15,14,17,16, 8,10,11,14,14,10, + 10,12,14,16,11,12,12,16,15,13,12,15,15,18,14,15, + 15,19,17, 9,11,11,14,14,11,12,12,15,15,11,13,11, + 16,14,14,15,14,17,17,14,16,14,18,15,12,13,14,15, + 16,13,13,15,14,17,15,15,15,17,17,15,14,17,14,19, + 17,18,18,19,18,13,14,14,16,16,15,15,15,17,17,14, + 15,14,18,15,17,18,17,18,17,16,18,16,19,15, 7,10, + 10,13,13, 9,10,12,14,15,10,12,11,15,14,12,13,14, + 16,17,13,15,14,18,16,10,10,12,13,14,10,10,13,13, + 16,12,12,13,15,15,13,12,15,15,18,15,15,16,18,17, + 10,11,11,14,14,12,13,13,15,16,10,13,10,16,14,14, + 15,15,17,17,14,15,13,17,15,13,13,14,15,16,14,13, + 15,14,18,15,15,16,16,17,16,15,18,15,18,17,18,18, + 18,18,13,15,14,17,16,15,16,16,17,17,14,15,13,17, + 15,17,17,18,18,18,16,17,14,20,14, 8,10,10,14,14, + 11,11,13,14,16,11,13,11,16,14,14,15,16,16,18,14, + 16,15,18,16,10,12,11,15,14,11,11,13,14,16,13,14, + 13,16,15,15,14,16,15,19,16,17,16,20,18,10,11,12, + 14,15,13,13,14,16,16,11,14,11,16,14,16,16,17,18, + 19,15,17,14,20,15,14,15,14,17,16,13,14,15,15,18, + 16,17,16,19,18,16,15,18,15,19,18,19,18,21,21,14, + 14,15,16,17,16,16,17,18,18,13,15,14,17,15,18,18, + 19,18,22,16,18,15,21,15,12,13,14,16,16,14,14,16, + 16,18,14,15,15,17,18,16,16,18,18,20,18,18,17,20, + 20,13,14,15,15,17,15,14,16,16,18,16,16,16,17,19, + 17,15,18,17,21,18,18,18,19,19,14,15,15,18,17,15, + 16,16,18,19,15,16,15,18,18,17,18,18,20,21,17,19, + 17,20,19,16,16,17,16,19,17,17,18,17,20,18,18,18, + 18,19,19,18,20,17,22,20,20,19,20,20,17,17,18,18, + 19,18,18,20,21,20,17,18,17,20,20,21,21,21,21,21, + 19,21,18,22,20,11,13,13,17,16,14,14,16,16,18,14, + 16,14,18,16,17,18,19,19,20,18,19,18,21,19,14,15, + 14,17,16,14,14,16,18,18,16,17,16,18,17,18,17,19, + 18,20,19,19,18,20,20,13,14,15,16,17,16,16,17,18, + 19,14,16,14,19,17,18,19,18,20,20,18,20,17,21,18, + 17,17,17,19,18,16,17,18,18,19,18,19,18,21,21,18, + 18,20,17,21,19,20,20,22,21,16,17,18,18,19,18,18, + 19,21,20,16,17,17,20,18,21,21,22,21,22,18,21,18, + 0,18, 7, 9, 9,13,13, 9,11,12,14,15, 8,11,10,15, + 14,13,14,15,16,18,11,14,13,17,15, 9,11,11,14,14, + 11,11,13,14,16,11,12,12,15,15,14,14,16,15,18,14, + 14,15,17,17, 8,11,10,14,14,11,12,12,15,15,10,12, + 10,16,14,14,15,15,17,18,13,15,12,18,15,13,14,14, + 16,16,14,14,15,15,17,15,15,15,16,17,16,15,17,15, + 19,17,17,17,18,18,12,14,13,16,15,15,15,15,17,17, + 13,15,13,17,14,17,18,18,18,19,15,17,14,19,14, 8, + 10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15, + 16,17,19,14,16,15,18,17,10,12,11,15,14,11,11,14, + 14,17,13,14,13,17,15,15,14,17,15,19,16,17,16,19, + 17,10,11,12,14,15,13,13,14,15,17,11,13,11,17,14, + 16,16,17,18,19,15,16,14,18,15,14,15,14,16,16,13, + 14,15,15,18,16,16,16,18,18,16,15,18,15,20,18,19, + 18,21,18,14,14,15,16,17,16,16,17,17,18,13,15,14, + 17,16,19,19,19,19,19,15,18,15,20,15, 7,10,10,13, + 13,10,11,12,14,15, 9,12,10,15,14,13,14,15,16,17, + 12,15,13,17,16,10,11,11,14,14,10,10,13,14,16,12, + 13,13,16,15,14,13,16,15,18,15,15,16,17,17,10,12, + 10,14,13,12,13,12,15,15,10,13,10,16,13,15,16,15, + 17,18,13,16,12,18,15,13,14,14,16,17,14,13,15,15, + 18,15,16,15,17,17,16,14,17,15,19,17,18,18,19,19, + 13,15,13,17,14,15,15,15,18,17,14,15,13,17,14,18, + 17,18,18,19,15,17,15,19,15,11,13,13,16,17,14,14, + 16,16,18,14,16,15,18,17,17,18,19,18,21,18,18,17, + 20,18,13,15,14,17,16,14,14,16,17,18,16,17,16,19, + 17,18,17,19,18,22,18,19,19,21,21,13,14,15,16,18, + 16,16,17,17,20,14,16,14,18,17,18,18,19,19,21,17, + 18,17,21,18,17,18,17,19,18,16,17,17,18,19,18,18, + 18,22,22,18,17,19,17, 0,20,21,19,21,20,17,17,18, + 18,21,18,18,18,19,21,17,17,17,19,19,20,20,22,21, + 21,19,20,18,20,17,12,14,13,17,16,14,15,15,17,18, + 14,16,14,18,16,17,18,18,21,20,16,18,16,21,18,14, + 15,15,17,17,15,15,16,18,18,15,17,16,18,18,17,17, + 19,19,20,18,19,18,20,19,14,15,14,17,15,15,16,16, + 18,17,15,16,14,19,15,18,18,18,19,20,17,20,15,21, + 17,16,17,18,18,19,17,17,18,18,20,18,19,18,19,21, + 19,18,19,19,21,20, 0,19,21,20,16,17,16,19,16,18, + 18,18,19,19,17,18,17,20,17,19,20,20,22, 0,19,20, + 17,21,17,11,13,14,16,17,14,15,15,17,18,14,15,15, + 18,18,16,17,17,19,20,16,18,17,19,21,13,14,15,17, + 17,14,15,16,17,19,15,16,16,18,19,16,17,18,19,21, + 17,18,20,21,21,13,15,15,17,17,15,16,16,18,19,15, + 16,16,18,19,17,17,18,19,22,17,19,18,22,19,15,16, + 17,19,19,16,17,18,18,20,17,18,18,19,20,19,18,20, + 18,22,20,19,19,22,21,16,17,17,18,19,18,18,18,19, + 20,17,18,18,20,19,20,19,20,22,20,19,20,21,21,20, + 12,14,14,16,16,13,14,16,17,18,14,16,15,18,18,15, + 17,17,19,19,17,18,18,19,19,13,14,15,16,17,14,14, + 16,16,20,15,16,16,17,19,16,15,18,17,20,18,17,19, + 19,19,14,15,15,17,17,16,16,16,18,18,15,16,15,19, + 18,17,18,18,20,21,17,18,17,21,18,16,15,17,17,19, + 17,15,18,17,20,19,17,18,19,20,18,16,19,17,22,20, + 19,20,19,20,17,17,18,19,19,18,18,19,20,20,17,18, + 17,18,18,21,21,20,20,21,18,20,17,21,19,11,14,14, + 16,17,15,14,16,17,19,14,16,14,18,17,18,18,19,19, + 21,17,19,18,20,20,13,15,14,17,17,14,14,16,17,18, + 16,17,16,19,18,18,17,19,18,20,18,21,18,20,20,13, + 15,15,16,17,16,16,17,18,19,14,16,15,19,18,19,19, + 19,21,20,18,19,17,20,18,16,17,16,19,18,16,17,17, + 19,20,17,19,18,20,19,18,17,21,18, 0,21,20,20, 0, + 20,17,17,18,18,19,18,19,19,20,22,16,17,17,20,18, + 21,22,20,20,22,18,22,18,22,18,12,14,14,17,17,14, + 15,16,17,19,14,16,15,17,17,17,17,18,18,21,17,19, + 17,20,19,14,15,15,16,18,15,14,16,16,19,16,17,16, + 19,18,17,16,20,17,20,18,20,19,19,20,14,15,15,18, + 17,16,16,17,18,19,14,16,15,19,17,18,21,18,19,21, + 17,18,17,19,18,17,17,18,17,20,17,16,18,17,21,18, + 19,19,19,19,18,17,19,17,20,20,21,20,21,20,17,17, + 17,19,19,19,18,18,20,21,16,18,16,19,18,20,20,21, + 21,20,18,19,16, 0,17,12,14,14,17,17,15,15,18,17, + 19,15,18,15,20,16,20,19,21,18,22,20,20,20,22,19, + 14,16,14,20,17,14,15,17,17,20,18,18,17,20,18,18, + 17,19,17,21,20,21,20, 0,21,14,15,16,17,19,18,17, + 19,18,21,14,18,15,21,17,21,20,21,20, 0,18,21,17, + 21,17,18,19,17,20,18,16,17,17,19,19,19,21,20, 0, + 20,18,17,21,17, 0,22, 0,21, 0,22,17,17,19,18,20, + 20,20,21,19,22,16,17,18,20,18,22,22, 0,22, 0,17, + 21,17,22,17,11,14,13,16,16,14,15,15,17,18,14,15, + 14,18,17,17,18,18,19,20,16,17,17,21,19,13,14,15, + 17,17,15,16,16,18,18,15,16,16,19,18,18,18,18,19, + 20,17,18,18,20,19,13,15,14,17,17,15,16,16,17,18, + 14,16,15,19,17,17,18,19,21,21,17,18,17,20,18,16, + 17,17,19,19,17,18,19,19,20,18,19,18,21,21,21,20, + 19,21,22,20,20,19,21,20,15,17,16,19,19,17,18,18, + 20,21,16,18,17,20,18,19,19,21,21,21,19,19,19,20, + 18,11,14,13,17,16,14,14,16,16,19,14,16,15,19,16, + 18,18,18,19,22,17,18,17,20,19,13,15,14,17,17,15, + 15,16,17,19,16,17,16,20,18,18,17,19,18,21,19,19, + 18,22, 0,13,14,15,17,18,16,16,17,17,19,14,16,15, + 19,18,18,19,19,20,21,18,18,17,20,18,17,18,17,20, + 18,16,17,17,18,20,18,19,18,20,20,18,18,21,17,21, + 20,21,21, 0,19,16,16,18,18,19,19,18,20,19,20,16, + 17,17,20,18,21,20,21,22,22,18,20,17,21,17,12,14, + 14,17,16,14,15,16,18,18,13,15,14,18,17,17,18,18, + 19,19,15,17,16,19,19,14,15,15,17,17,15,15,16,18, + 19,15,16,16,19,18,17,17,18,18,20,18,18,18,21,20, + 13,15,14,17,16,15,16,15,18,18,14,16,14,18,17,18, + 18,18,19,21,16,18,16,20,17,17,18,17,18,19,17,17, + 18,18,19,18,19,19,21,19,19,18,20,18,21,21,20,20, + 21,20,16,17,15,20,17,17,19,17,19,19,17,18,15,20, + 17,19,20,19,21,22,17,20,16, 0,17,12,14,14,17,18, + 16,15,18,16,20,16,18,15,21,17,20,18,21,19,22,19, + 21,19, 0,19,14,16,15,19,17,14,15,17,16,21,18,19, + 18,21,17,19,17,21,17,22,20,21,21, 0,21,14,15,16, + 17,19,18,17,19,18,21,14,17,15,20,17,21,22,21,20, + 22,18,21,17,21,17,17,19,17,21,18,16,17,17,19,20, + 19,21,20,21,20,17,18,20,17,21, 0,22,20,21,22,17, + 17,20,18,21,21,20,22,20,21,16,17,17,21,19, 0,22, + 0,21,21,18,22,17,21,17,12,14,14,17,16,14,15,16, + 17,18,14,16,15,18,17,17,17,20,19,20,16,18,17,21, + 18,14,15,15,17,17,14,15,16,17,19,16,17,16,18,18, + 17,16,19,18,19,18,19,18,21,20,14,15,15,18,17,16, + 16,16,19,18,15,16,14,20,16,18,18,19,19,20,16,19, + 16,21,17,17,17,18,19,19,16,16,18,18,19,19,19,18, + 20,20,18,16,19,18,20,22,21,20,19,20,16,18,17,20, + 16,18,19,18,19,18,16,18,16,20,17,21,20,21,20,20, + 18,19,17,21,16, +}; + +static const static_codebook _44p5_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p5_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p5_p5_0, + 0 +}; + +static const long _vq_quantlist__44p5_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p5_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p5_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p5_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p5_p5_1, + 0 +}; + +static const long _vq_quantlist__44p5_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p6_0[] = { + 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, + 9,10, 5, 8, 7, 9,10, 9, 7,10, 7, 6, 9, 9, 9,10, + 12,10,12,11, 9,10,11,11,10,13,12,12,13,10,11,11, + 12,13,13,11,13,11, 6, 9, 9,10,11,12, 9,12,11,10, + 11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, + 10, 6, 9,10, 9,11,12,10,12,11, 9,10,11,10,10,13, + 11,13,13,10,11,11,12,13,12,11,13,11, 7, 9,10, 9, + 10,12,10,11,11,10,10,11,10,10,12,12,11,12,10,11, + 10,12,12,12,10,12,10, 7,10,10,11,11,13,11,13,11, + 10,12,11,11,10,13,13,14,13,10,11,12,13,13,14,11, + 13,10, 6,10, 9,10,11,12, 9,12,11, 9,11,11,11,11, + 13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, + 11,11,14,11,13,11,10,12,11,11,10,14,13,14,13,10, + 11,12,13,13,14,11,13,10, 7,10, 9,10,10,12, 9,12, + 10,10,11,11,10,10,12,12,12,12, 9,11,10,11,12,12, + 10,12, 9, +}; + +static const static_codebook _44p5_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p5_p6_0, + 0 +}; + +static const long _vq_quantlist__44p5_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p6_1[] = { + 2, 6, 6, 5, 7, 8, 5, 8, 7, 6, 7, 7, 7, 7, 8, 8, + 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, + 10, 8, 9, 9, 8, 9, 9, 9, 9,10,10,10,10, 8, 9, 9, + 10,10,10, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 9, + 9, 9, 9, 9,10,10,10,10, 8, 9, 9,10,10,10, 9,10, + 9, 6, 8, 9, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, + 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 8, 9, 8, + 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9,10,10, 9,10,10, + 9,10, 9, 9, 9,10,10,10,10, 9,10, 9,10,10,10, 9, + 10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, + 10, 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, + 9,10,10, 9,10, 9, 9, 9,10,10, 9,10,10,10,10, 9, + 9, 9,10,10,10, 9,10, 9, 7, 9, 8, 8, 9, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p5_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p5_p6_1, + 0 +}; + +static const long _vq_quantlist__44p5_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p5_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p5_p7_0, + 0 +}; + +static const long _vq_quantlist__44p5_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p5_p7_1[] = { + 1, 7, 7, 6, 9, 9, 7, 9, 9, 6, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10, +}; + +static const static_codebook _44p5_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p5_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p5_p7_1, + 0 +}; + +static const long _vq_quantlist__44p5_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p5_p7_2[] = { + 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11,12,12,13,13,14,14,14,14, +}; + +static const static_codebook _44p5_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p5_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p5_p7_2, + 0 +}; + +static const long _vq_quantlist__44p5_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p5_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p5_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p5_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p5_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p5_short[] = { + 4, 7,12,14,15,18,20,20, 5, 3, 4, 6, 9,11,15,19, + 9, 4, 3, 4, 7, 9,13,18,11, 6, 3, 3, 5, 8,13,19, + 14, 9, 6, 5, 7,10,16,20,16,11, 9, 8,10,10,14,16, + 21,14,13,11, 8, 7,11,14,21,14,13, 9, 6, 5,10,12, +}; + +static const static_codebook _huff_book__44p5_short = { + 2, 64, + (long *)_huff_lengthlist__44p5_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p6_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p6_l0_0[] = { + 1, 4, 4, 7, 7,10,10,12,12,12,12,13,12, 5, 5, 5, + 8, 6,11, 9,12,12,13,12,12,12, 4, 5, 5, 6, 8, 9, + 11,12,12,13,12,12,12, 7, 7, 8, 9, 9,11, 8,12, 9, + 12,12,12,12, 7, 8, 8, 9, 9, 8,11, 9,12,12,12,11, + 12,10,10,10,11,11,11,11,11,10,11,11,12,11,10,10, + 10,11,11,11,11,10,11,11,11,11,12,11,11,11,12,11, + 12,11,12,11,13,11,13,11,11,11,11,11,12,11,12,10, + 13,11,12,11,13,12,12,12,13,12,13,13,13,12,14,12, + 14,13,12,12,12,12,13,13,13,12,14,12,14,13,14,13, + 14,14,14,14,14,14,14,14,15,14,15,14,13,14,13,14, + 14,14,14,14,15,14,14,14,15, +}; + +static const static_codebook _44p6_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p6_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p6_l0_0, + 0 +}; + +static const long _vq_quantlist__44p6_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p6_l0_1[] = { + 4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, + 5, 5, 4, 5, 5, 5, 5, 5, 4, +}; + +static const static_codebook _44p6_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p6_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p6_l0_1, + 0 +}; + +static const long _vq_quantlist__44p6_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_l1_0[] = { + 1, 3, 2, 5, 5, 6, 6, 6, 6, +}; + +static const static_codebook _44p6_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44p6_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p6_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p6_lfe[] = { + 2, 3, 1, 3, +}; + +static const static_codebook _huff_book__44p6_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p6_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p6_long[] = { + 2, 7,13,15,16,17,19,20, 6, 3, 4, 7, 9,10,12,15, + 13, 4, 3, 4, 7, 8,11,13,14, 7, 4, 4, 6, 7,10,11, + 16, 9, 7, 6, 7, 8, 9,10,16, 9, 8, 7, 7, 6, 8, 8, + 18,12,10,10, 9, 8, 8, 9,20,14,13,12,11, 8, 9, 9, +}; + +static const static_codebook _huff_book__44p6_long = { + 2, 64, + (long *)_huff_lengthlist__44p6_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p6_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p1_0[] = { + 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, + 10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8, 9,10, + 10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, + 10, 9, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, + 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, + 9,11,11, 8,10,10,10,11,11,10,12,11, 7, 9, 9, 9, + 10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, + 11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,10, + 9,11,10,10,11,12,11,13,12, 9,11,11,11,13,13,11, + 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8,10,10,10,11, + 11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, + 9,10,12, 9,11,11, 9,11,11,11,11,13,11,13,13, 9, + 10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, + 10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, + 10,13,10, +}; + +static const static_codebook _44p6_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p6_p1_0, + 0 +}; + +static const long _vq_quantlist__44p6_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p6_p2_0[] = { + 4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, + 10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 7, 8, + 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, + 14,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 9, 8,11, + 10,10,11,11,13,14,10,11,10,13,12, 9,10,10,12,12, + 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, + 14,13,15,14, 9,10,10,13,12,10,11,11,13,13,10,11, + 10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 8, 8, + 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, + 14,10,11,11,14,13, 8, 9, 9,11,12, 9,10,11,12,13, + 9,10,11,12,13,11,11,13,13,15,11,12,12,14,14, 8, + 9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,11,12, + 13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, + 13,15,12,13,13,14,15,13,13,14,14,16,14,15,15,16, + 16,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13, + 14,15,15,16,16,13,14,14,16,14, 6, 8, 8,11,10, 8, + 9, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, + 11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, + 13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, + 11, 9,10,10,13,12, 9,11,10,13,12,12,12,12,14,14, + 11,13,12,15,13,11,11,12,13,14,11,12,13,13,14,12, + 13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12, + 11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, + 16,16,13,15,13,16,14, 9,10,11,12,13,11,11,12,13, + 14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,16, + 11,11,12,13,14,12,12,13,14,15,12,13,13,14,15,14, + 14,15,15,17,14,15,15,16,17,11,12,12,14,14,12,13, + 13,14,15,12,13,12,15,15,14,15,15,16,17,14,15,15, + 16,16,13,14,14,15,16,14,14,15,15,17,15,15,15,16, + 17,16,16,17,16,18,16,17,17,18,18,13,14,14,16,15, + 14,15,15,17,16,14,15,15,16,16,16,17,17,18,18,16, + 16,16,17,16, 9,11,10,13,12,11,12,12,14,13,11,12, + 11,15,13,13,14,14,16,15,13,14,13,17,14,11,12,12, + 14,14,12,12,13,15,15,12,13,13,15,14,14,14,15,16, + 16,14,15,15,17,16,11,12,11,14,13,12,13,13,15,14, + 12,13,12,15,13,14,15,15,16,16,14,15,14,17,15,13, + 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, + 16,17,17,16,17,17,18,18,13,15,14,16,15,15,15,15, + 17,16,14,15,14,17,15,16,17,17,18,18,16,17,16,18, + 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, + 10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, + 10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, + 12,15,14, 8, 9, 9,12,11, 9,10,10,13,13, 9,11,10, + 13,12,12,12,12,14,15,11,13,12,15,13,10,11,11,13, + 14,11,12,12,13,15,11,12,12,14,14,13,13,14,14,16, + 14,15,14,16,16,11,12,11,14,13,12,13,13,15,14,11, + 13,12,15,13,14,15,15,16,16,13,14,14,16,14, 8, 9, + 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,13, + 14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, + 14,10,10,11,13,14,12,12,13,14,16,12,13,13,15,15, + 9,11,10,13,12,10,11,11,13,14,10,12,11,14,13,12, + 13,13,15,16,12,13,13,15,15,11,11,13,13,15,12,12, + 14,13,15,13,13,14,14,15,14,14,15,14,17,15,15,15, + 16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,15, + 14,15,15,15,17,17,14,15,14,17,15, 7, 9, 9,12,11, + 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, + 13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, + 11,14,13,12,12,13,14,15,12,13,13,16,15, 9,10,10, + 13,12,10,11,11,13,13,10,11,10,14,12,13,13,13,15, + 15,12,13,12,15,14,11,12,12,14,14,12,12,13,14,15, + 13,14,13,15,15,14,13,15,14,16,15,16,15,17,16,12, + 12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, + 16,16,17,14,15,14,17,14,10,11,12,13,14,11,12,13, + 14,15,11,12,13,14,15,13,14,15,15,17,14,15,15,16, + 16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, + 14,14,16,14,18,15,15,16,16,17,12,13,12,15,15,13, + 14,14,15,16,13,14,13,16,15,15,15,16,17,18,15,15, + 15,17,16,14,14,15,14,17,15,14,16,14,17,15,15,16, + 15,18,16,16,17,16,19,17,17,17,17,18,14,15,15,17, + 16,15,16,16,17,17,15,16,15,18,16,17,17,18,18,18, + 16,17,16,18,17,10,11,11,14,13,11,12,12,15,14,11, + 13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,12, + 12,15,14,12,13,13,15,14,13,14,13,16,14,14,15,15, + 16,16,15,16,15,18,16,11,13,12,15,15,13,14,14,15, + 15,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, + 14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,16, + 16,17,16,17,17,18,17,19,18,14,15,15,17,16,15,16, + 16,17,17,15,15,15,18,16,17,18,18,18,18,16,17,16, + 19,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, + 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, + 9,10,11,12,13, 9,10,10,13,13,11,12,13,13,15,11, + 12,12,15,14, 7, 9, 9,12,11, 9,10,10,12,13, 9,10, + 10,13,12,11,12,12,14,15,11,12,11,14,13,11,11,12, + 13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, + 16,14,15,15,16,16,10,11,11,14,13,11,12,12,14,14, + 11,12,12,15,13,14,14,14,16,16,13,14,13,16,14, 7, + 9, 9,11,12, 9,10,10,12,13, 9,10,10,12,12,11,12, + 13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,11, + 12,14,10,11,11,13,13,12,12,13,14,15,13,13,13,15, + 15, 9,10,10,12,12,10,11,11,13,14,10,11,10,13,12, + 12,13,13,15,16,12,13,12,15,14,11,12,13,14,14,12, + 12,13,14,15,13,14,13,15,15,14,14,15,14,17,15,16, + 15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,12, + 15,14,15,15,15,16,17,14,15,14,16,14, 8, 9, 9,12, + 11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, + 11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, + 11,11,14,13,12,13,13,15,15,12,13,13,16,15, 9,11, + 9,13,11,10,11,10,14,13,10,12,10,14,12,12,13,13, + 15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, + 16,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, + 11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, + 15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, + 13,14,15,11,12,12,14,15,14,14,15,16,17,14,15,15, + 16,16,11,12,13,14,15,12,13,14,15,16,13,14,14,15, + 16,15,15,16,16,18,15,16,16,17,17,11,12,12,14,15, + 13,13,14,14,16,12,13,13,15,15,15,15,16,16,18,14, + 15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, + 16,17,17,16,16,17,16,19,17,18,17,18,18,14,14,15, + 16,16,15,15,16,16,17,14,15,15,16,16,17,17,18,18, + 19,16,17,16,17,16,10,12,11,14,13,11,13,12,15,14, + 11,13,12,15,14,14,15,15,16,16,13,15,14,17,15,12, + 13,13,15,15,13,13,14,15,16,13,14,14,16,16,14,15, + 15,17,17,15,16,16,17,17,11,13,12,15,12,13,14,13, + 16,13,12,14,12,16,13,15,16,15,17,16,14,16,14,18, + 14,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17, + 16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, + 16,15,18,15,15,16,15,18,14,17,17,17,18,17,16,17, + 16,19,16, 9,11,11,13,13,10,12,12,14,14,11,12,12, + 15,14,13,14,14,16,16,13,14,14,16,16,10,11,12,14, + 14,11,12,13,14,15,12,13,13,15,15,13,14,15,16,16, + 14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, + 13,12,15,15,14,15,15,16,17,14,15,14,17,16,12,13, + 14,15,16,13,13,14,15,16,13,14,15,16,16,14,15,16, + 16,18,15,16,16,18,18,13,14,14,16,15,14,15,15,17, + 16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, + 10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, + 14,15,16,17,14,15,15,17,16,11,11,13,14,15,12,12, + 14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, + 17,17,12,13,12,15,15,13,14,14,16,16,13,14,13,16, + 15,15,16,15,17,17,15,16,15,18,16,13,12,15,14,17, + 14,13,16,14,17,14,14,16,15,18,15,14,17,16,18,16, + 16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, + 15,18,16,17,17,17,18,18,16,17,16,19,17,10,11,11, + 14,14,11,12,12,15,15,11,13,12,15,15,14,15,14,16, + 16,14,15,15,17,16,11,12,12,15,14,12,12,13,15,15, + 13,14,13,16,15,14,15,15,16,16,15,16,15,18,17,11, + 13,12,15,15,13,14,13,15,15,12,14,13,16,15,15,16, + 15,17,17,15,16,15,18,16,13,14,13,16,16,14,15,14, + 16,16,14,15,15,17,16,16,16,16,16,18,16,18,17,19, + 18,14,15,15,17,16,15,16,16,17,17,15,15,15,17,16, + 17,17,18,18,19,16,17,16,18,16,12,13,13,15,16,13, + 14,14,16,17,13,14,14,16,16,15,15,16,17,18,15,16, + 16,18,17,13,13,14,14,17,14,14,15,15,17,14,14,15, + 16,17,15,15,17,16,18,16,17,17,18,18,13,14,14,17, + 16,14,15,15,17,17,14,15,14,17,16,16,17,17,18,18, + 16,17,16,18,17,15,14,16,13,18,16,15,17,14,19,16, + 16,17,15,18,17,16,18,15,19,18,18,18,17,19,15,16, + 16,18,17,16,17,17,18,18,16,17,16,19,17,18,19,18, + 19,19,17,18,17,20,18,11,12,12,15,15,13,13,14,15, + 16,13,14,13,16,15,15,16,16,17,17,15,16,16,18,17, + 12,14,13,16,15,13,13,14,15,16,14,15,14,17,16,16, + 16,16,16,17,16,17,17,19,17,12,13,14,16,16,14,15, + 15,16,17,13,15,13,17,15,16,17,17,18,18,16,17,16, + 18,16,15,16,15,17,16,15,15,15,17,17,16,17,16,18, + 17,17,16,17,16,18,18,19,18,20,18,15,16,16,17,17, + 16,17,17,18,18,15,16,15,18,17,18,18,19,19,19,17, + 18,16,19,16, 9,11,11,13,13,11,12,12,14,15,10,12, + 12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, + 14,14,12,12,13,15,15,12,13,13,15,15,14,15,15,16, + 17,14,15,15,16,16,10,12,11,14,14,12,13,13,15,15, + 11,13,12,15,14,14,15,15,16,17,13,15,14,17,16,13, + 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, + 17,17,18,16,17,17,18,18,12,14,13,16,15,13,15,14, + 17,16,13,14,13,17,15,15,16,16,18,18,15,16,15,18, + 16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,15, + 14,15,15,16,17,14,15,15,16,16,11,12,13,15,15,12, + 13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,15, + 16,17,17,11,12,12,14,15,13,13,14,15,16,12,13,13, + 15,15,15,15,16,17,18,14,15,15,17,16,14,15,15,16, + 17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19, + 17,17,18,19,18,13,13,14,16,16,14,15,16,17,17,14, + 14,15,16,16,16,16,17,18,18,16,16,16,18,16,10,12, + 12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, + 16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, + 16,13,14,14,16,16,15,15,16,17,18,15,15,16,17,17, + 11,13,12,15,14,13,14,13,16,15,12,14,12,16,14,15, + 16,15,17,17,14,16,14,17,16,14,15,15,16,17,15,15, + 16,16,18,15,16,16,17,17,16,17,17,17,19,17,17,17, + 18,18,13,15,12,17,14,14,16,14,17,15,14,15,13,17, + 14,16,17,16,18,17,15,17,14,19,15,11,12,12,15,15, + 13,13,14,15,16,13,14,13,16,15,15,16,16,17,18,15, + 16,16,17,17,12,14,13,16,16,13,13,15,15,17,14,15, + 15,17,16,16,16,17,16,19,16,17,17,18,18,12,13,14, + 15,16,14,14,15,16,17,13,14,13,16,15,16,17,17,18, + 19,15,16,16,17,16,15,16,16,18,17,15,15,16,17,18, + 16,17,17,18,18,16,16,18,16,19,18,19,19,20,19,15, + 15,16,16,17,16,16,17,17,18,15,15,15,17,16,18,18, + 19,18,20,17,17,16,18,16,12,13,13,16,15,13,14,14, + 16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, + 17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17, + 16,17,17,18,18,16,17,17,18,18,13,14,13,17,14,14, + 15,14,17,16,14,15,14,17,15,16,17,17,18,18,15,17, + 15,19,15,16,16,16,17,18,16,16,17,17,19,16,17,17, + 18,19,17,17,18,18,20,18,18,18,19,19,15,16,14,18, + 13,16,17,16,19,15,16,17,15,19,14,18,18,18,19,17, + 17,18,16,20,15, +}; + +static const static_codebook _44p6_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p6_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p6_p2_0, + 0 +}; + +static const long _vq_quantlist__44p6_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p3_0[] = { + 1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 8, 8,10, 8, + 10,10, 5, 8, 7, 8,10,10, 8,10, 8, 6, 8, 9, 8,10, + 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, + 11,13,13,11,13,12, 6, 9, 8, 9,11,11, 8,12,10, 9, + 11,11,11,12,13,11,13,13, 9,11,10,11,13,13,11,13, + 11, 5, 9, 9, 8,11,11, 9,12,11, 8,10,11,10,11,13, + 11,13,13, 9,11,11,11,13,13,11,13,12, 8,10,11,10, + 12,13,10,13,12,10,10,13,11,11,14,12,13,14,11,13, + 12,13,14,14,12,14,12, 8,11,10,11,12,13,11,14,12, + 10,13,12,12,12,13,13,15,14,11,12,13,13,14,15,12, + 14,12, 5, 9, 9, 9,11,12, 8,11,11, 9,11,11,11,12, + 13,11,13,13, 8,11,10,11,13,13,10,13,11, 8,10,11, + 11,12,14,11,13,12,11,13,12,12,12,14,13,15,14,10, + 12,13,13,14,15,12,13,12, 8,11,10,10,12,13,10,13, + 12,11,12,13,12,12,14,13,14,14,10,13,10,12,14,13, + 11,14,11, +}; + +static const static_codebook _44p6_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p6_p3_0, + 0 +}; + +static const long _vq_quantlist__44p6_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p3_1[] = { + 5, 7, 7, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 8, 8, 7, + 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 8, 7, 7, 8, 7, 8, + 8, 7, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, + 8, 9, 9, 8, 9, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 8, + 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, + 8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, + 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, + 8, 9, 8, 9, 9, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 9, + 9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, + 8, 8, 9, 8, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, + 8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, + 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p6_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p6_p3_1, + 0 +}; + +static const long _vq_quantlist__44p6_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p4_0[] = { + 2, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 7, + 9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, + 10, 8, 9, 9, 8, 9,10, 9, 9,11,10,11,11, 8, 9, 9, + 10,11,11, 9,11,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, + 9, 9, 9,10,11,10,11,10, 8,10, 9,10,11,11, 9,11, + 9, 6, 8, 8, 7, 9, 9, 8,10, 9, 7, 9, 9, 9, 9,10, + 9,10,10, 8, 9, 9, 9,10,10, 9,11,10, 7, 9, 9, 8, + 10,10, 9,10,10, 9, 9,10,10,10,11,10,11,11, 9,10, + 10,10,11,11,10,11,10, 7, 9, 9, 9, 9,10, 9,10, 9, + 8,10, 9, 9, 9,11,10,11,11, 9,10,10,10,11,11, 9, + 11, 9, 6, 8, 8, 8, 9,10, 7, 9, 9, 8, 9, 9, 9,10, + 10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, + 9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, + 9,10,10,11,11, 9,11, 9, 7, 9, 9, 9,10,10, 8,10, + 10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, + 10,11,10, +}; + +static const static_codebook _44p6_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p6_p4_0, + 0 +}; + +static const long _vq_quantlist__44p6_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p6_p4_1[] = { + 6, 8, 8,10,10, 8, 9, 9,10,11, 8,10, 9,11,10, 9, + 10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, + 10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, + 11,11, 8, 9, 9,11,10,10,10,10,11,11, 9,10, 9,11, + 11,10,11,11,11,11,10,11,10,11,11,10,10,11,11,11, + 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11, 8, 9,10, + 11,11,10,10,11,11,11,10,10,10,11,11,10,11,11,12, + 12,10,11,11,12,12,10,10,11,11,11,10,10,11,11,12, + 11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, + 10,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12, + 12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11,10, + 10,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, + 11,12,12,10,10,10,11,11,10,11,11,12,12,11,11,11, + 12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11, + 11,11,11,11,12,12,10,11,10,12,11,11,12,11,12,12, + 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, + 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,13,11,12,11,12,12,12,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12, + 12,12,13,12,10,11,11,12,11,11,11,12,12,12,11,12, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, + 12, 8,10,10,11,11,10,10,11,11,11,10,11,10,11,11, + 10,11,11,12,12,10,11,11,12,12, 9,10,11,11,11,10, + 10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12, + 12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, + 12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12, + 12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, + 10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12, + 12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12, + 12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12, + 10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11, + 10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11, + 12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11, + 12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12, + 12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,12,12,12,12,13,13,12,13, + 12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,13, + 13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, + 12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13, + 12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, + 13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13, + 12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12, + 13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13, + 12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13, + 13,13, 8,10,10,11,11,10,10,11,11,11, 9,11,10,11, + 11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11, + 10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, + 12,12,12,12, 9,11,10,11,11,10,11,11,12,12,10,11, + 10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, + 10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, + 12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11, + 11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11, + 11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12, + 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, + 13,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12, + 12,12,13,12,12,12,12,12,12,12,12,13,13,13,12,12, + 13,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, + 12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13, + 13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, + 13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, + 13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, + 12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13, + 12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, + 13,12,13,12,12,13,12,13,12,13,13,13,13,13,12,13, + 13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, + 12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12, + 12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13, + 12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13, + 12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, + 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, + 12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12, + 12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13, + 13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, + 12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,13, + 13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13, + 12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, + 12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, + 12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, + 12,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13, + 13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, + 12,13,13,13,13,12,13,12,13,13,11,12,12,12,12,11, + 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13, + 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, + 12,13,12,13,12,12,13,12,13,12,13,13,13,13,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13, + 13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, + 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,13,12,12,12,13,12,12,12,12,12,12,12,12, + 12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12, + 13,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, + 11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, + 12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13, + 13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12, + 13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, + 12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, + 13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, + 13,12,12,13,12,13,13,12,12,12,13,13,12,12,12,12, + 12,12,12,13,13,13,12,12,13,13,13,12,12,13,13,13, + 12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12, + 12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, + 12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, + 13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, + 11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12, + 13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, + 12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, + 13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13, + 12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12, + 11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,12,12,12,13,12,12,12,11,12,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12, + 12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12, + 12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12, + 13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, + 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13, + 12,13,12,13,12, +}; + +static const static_codebook _44p6_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p6_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p6_p4_1, + 0 +}; + +static const long _vq_quantlist__44p6_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p6_p5_0[] = { + 2, 6, 6,10,10, 5, 7, 8,11,12, 5, 8, 7,12,11, 9, + 11,11,13,15, 9,11,11,15,13, 6, 7, 8,11,11, 7, 7, + 9,11,13, 8, 9, 9,13,12,11,11,12,12,15,11,12,12, + 15,14, 6, 8, 7,11,11, 8, 9, 9,12,13, 7, 9, 7,13, + 11,11,12,12,14,15,11,12,11,15,12,10,11,11,12,14, + 10,11,12,12,15,12,13,13,14,15,13,12,14,12,16,15, + 15,15,16,16,10,11,11,14,12,12,13,13,15,14,10,12, + 11,15,12,15,15,15,16,17,13,14,12,17,12, 6, 8, 8, + 12,12, 8, 9,10,13,13, 8, 9, 9,13,13,12,12,13,15, + 16,12,13,13,16,15, 8, 9,10,12,13, 9, 9,11,13,14, + 10,11,11,14,14,13,13,14,15,16,13,14,14,16,16, 8, + 10, 9,13,13,10,11,11,14,14, 9,10,10,14,13,13,14, + 14,16,17,13,13,13,16,15,12,13,13,14,16,13,13,14, + 14,16,14,14,14,16,16,15,15,16,15,18,16,17,17,18, + 18,12,13,13,15,15,14,14,14,16,16,13,14,13,16,15, + 16,16,17,18,18,15,16,15,18,15, 6, 8, 8,12,12, 8, + 9, 9,13,13, 8,10, 9,13,13,12,13,13,15,16,12,13, + 12,16,15, 8, 9,10,13,13, 9,10,10,13,14,10,11,11, + 14,14,13,13,13,15,16,13,14,14,17,16, 8,10, 9,13, + 13,10,11,11,14,14, 9,11, 9,14,13,13,14,14,16,16, + 13,14,13,16,14,12,13,13,15,16,13,13,14,15,16,14, + 14,14,16,16,15,15,16,15,18,17,17,17,18,18,12,13, + 13,16,14,14,14,14,16,16,13,14,13,16,14,16,17,17, + 18,18,15,16,15,18,15,11,12,13,14,16,13,13,14,15, + 17,13,14,14,16,17,16,16,17,17,19,16,17,17,18,19, + 13,13,14,16,16,14,14,15,16,17,14,15,15,17,17,17, + 16,17,17,19,17,17,18,19,19,13,14,14,16,16,14,14, + 15,17,18,14,15,14,17,17,17,17,18,18,19,17,17,17, + 18,19,16,16,16,17,18,17,17,17,18,19,17,17,17,18, + 19,18,18,19,18,20,19,20,19,21,20,16,17,17,18,18, + 17,17,18,19,19,17,17,17,19,18,19,19,19,19,20,19, + 19,19,20,19,11,13,12,16,14,13,14,14,17,16,13,14, + 13,17,15,16,17,17,18,18,16,17,16,19,17,13,14,14, + 16,16,14,14,14,17,17,14,15,15,17,16,17,17,17,19, + 19,17,18,17,19,18,13,14,13,17,16,14,15,15,17,17, + 14,15,14,18,16,17,17,17,19,19,17,17,16,19,17,16, + 17,17,18,19,17,17,17,18,18,17,18,17,19,18,18,19, + 18,19,19,19,20,19,20,20,16,17,16,18,17,17,17,17, + 18,18,17,18,17,19,17,19,19,19,19,20,18,19,19,20, + 18, 6, 8, 8,12,12, 8, 9, 9,13,13, 8,10, 9,13,13, + 11,13,13,15,16,12,13,13,16,15, 8, 9, 9,13,13, 9, + 9,10,13,14,10,11,11,14,14,12,12,13,14,16,13,14, + 14,17,16, 8,10, 9,13,13,10,11,11,14,14, 9,11,10, + 14,13,13,14,14,16,16,13,14,13,16,15,12,13,13,14, + 16,12,13,14,14,16,13,14,14,16,16,15,14,16,15,18, + 16,17,17,18,17,12,13,13,16,15,14,14,14,16,16,13, + 14,13,16,15,16,16,17,17,17,15,16,15,18,15, 7, 9, + 9,13,13, 9, 9,11,13,14, 9,10,10,14,13,12,13,14, + 15,16,12,14,13,17,15, 9, 9,10,13,14,10, 9,11,13, + 15,11,11,11,14,14,13,12,14,14,17,14,14,14,17,16, + 9,10,10,14,13,11,11,11,14,14,10,11,10,15,13,14, + 14,14,16,17,13,14,13,17,14,13,13,14,14,16,13,13, + 14,14,17,14,14,14,16,16,15,14,16,15,18,17,17,17, + 18,18,13,14,13,16,15,14,14,15,17,16,13,14,13,17, + 15,17,16,17,17,17,15,16,14,18,14, 7, 9, 9,13,13, + 9,10,10,13,14, 9,11,10,14,13,13,14,14,16,16,13, + 14,14,17,15, 9,10,10,14,13, 9,10,11,13,14,11,12, + 11,15,14,13,13,14,14,16,14,15,15,17,17, 9,10,10, + 14,14,11,12,12,14,15,10,11,10,15,13,14,15,15,17, + 17,14,15,13,17,14,13,14,13,16,16,13,13,14,15,16, + 14,15,15,17,17,15,14,16,15,18,17,18,17,20,18,13, + 14,14,16,16,15,15,15,17,17,13,14,13,17,15,17,17, + 18,18,18,15,16,14,19,14,12,13,13,15,16,13,13,15, + 16,17,13,14,14,16,16,15,15,17,17,19,16,17,17,19, + 18,13,13,14,15,17,14,13,15,15,17,14,15,15,16,17, + 16,15,18,16,19,17,17,17,18,19,13,14,14,17,16,14, + 15,15,17,17,14,15,14,17,16,17,17,17,18,19,16,17, + 16,19,17,16,16,17,16,18,16,16,17,16,19,17,17,18, + 18,19,18,17,18,17,21,19,19,19,20,19,16,17,17,18, + 18,17,17,18,18,19,16,17,16,18,18,19,19,19,19,20, + 18,18,17,20,18,11,13,13,16,15,13,14,14,16,17,13, + 15,14,17,16,16,17,17,18,18,17,17,17,19,18,13,14, + 13,17,16,14,13,14,16,17,15,16,15,18,16,17,16,17, + 17,19,18,18,18,20,18,13,14,14,16,17,15,15,15,17, + 18,14,15,14,18,16,18,18,18,19,20,17,18,16,20,17, + 16,17,16,18,18,16,16,17,18,18,17,18,18,19,18,18, + 17,19,17,20,19,20,19,22,20,16,16,17,18,18,18,17, + 17,19,19,16,17,16,18,17,19,20,19,22,21,18,19,18, + 21,17, 6, 8, 8,12,12, 8, 9,10,13,13, 8, 9, 9,13, + 13,12,13,13,15,16,11,13,13,16,15, 8, 9,10,13,13, + 9,10,11,13,14,10,11,11,14,14,13,13,14,15,16,13, + 14,14,16,16, 8, 9, 9,13,13,10,11,11,14,14, 9,10, + 9,14,13,13,14,14,16,17,12,14,12,16,14,12,13,13, + 15,16,13,13,14,15,16,13,14,14,15,17,15,15,16,15, + 18,16,16,17,17,17,12,13,13,16,14,13,14,14,16,16, + 12,14,13,16,14,16,17,17,18,18,15,15,14,18,14, 7, + 9, 9,13,13, 9,10,11,13,14, 9,10,10,14,13,13,14, + 14,15,17,13,14,14,16,15, 9,10,10,14,14,10,10,11, + 13,15,11,12,12,15,14,14,13,15,14,17,14,15,15,17, + 17, 9,10,10,13,14,11,11,12,14,15, 9,11,10,14,13, + 14,15,15,16,18,13,14,13,16,14,13,14,14,16,16,13, + 13,14,15,17,15,15,15,16,17,15,14,16,15,18,17,17, + 18,19,18,13,14,14,16,16,14,15,15,17,17,13,14,13, + 16,15,17,17,18,18,18,15,16,14,18,15, 7, 9, 9,13, + 13, 9,10,10,13,14, 9,11,10,14,13,12,13,14,15,16, + 12,14,13,16,15, 9,10,10,13,14,10,10,11,13,14,11, + 11,11,15,14,13,13,14,14,16,14,14,14,17,16, 9,10, + 9,14,13,11,11,11,14,14,10,11, 9,15,13,14,14,14, + 16,16,13,14,12,17,14,13,13,14,15,16,13,13,14,15, + 16,14,15,14,16,17,15,14,16,14,18,16,17,17,18,18, + 13,14,13,16,14,14,14,14,16,16,13,14,13,17,14,17, + 17,17,18,18,15,16,14,18,15,11,13,13,16,16,13,14, + 15,16,17,13,14,14,17,16,16,17,17,18,19,17,17,17, + 19,18,13,14,14,17,17,13,13,15,16,18,15,15,15,17, + 17,17,16,18,17,20,18,17,18,19,19,13,14,14,16,17, + 15,15,16,16,18,14,15,14,16,16,17,17,18,18,20,17, + 18,16,18,17,16,17,16,19,18,16,16,17,18,19,18,18, + 18,19,19,18,17,18,17,21,20,19,19,21,21,16,16,17, + 18,18,17,17,18,19,19,16,17,16,19,18,20,20,20,19, + 21,18,18,17,20,18,12,13,13,16,15,13,14,14,16,16, + 13,14,13,17,16,16,17,17,18,18,15,17,15,19,17,13, + 14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16, + 17,17,18,17,17,17,19,19,13,14,13,17,15,14,15,15, + 17,16,14,15,13,17,15,17,18,17,19,18,16,17,15,20, + 16,16,17,17,18,18,16,16,17,18,18,17,18,17,19,18, + 17,17,18,18,20,19,20,19,20,19,16,16,16,19,16,17, + 17,17,19,18,16,17,16,19,16,19,19,19,19,19,18,19, + 17,19,17,11,13,13,16,16,13,14,14,17,17,13,14,14, + 17,17,15,17,17,19,19,16,18,17,20,19,12,14,14,17, + 17,13,14,15,17,18,14,15,15,17,18,16,16,17,18,20, + 17,18,18,20,18,13,14,14,17,17,14,15,15,17,18,14, + 15,15,17,17,17,18,17,19,19,17,18,17,19,19,15,16, + 16,18,18,15,16,17,18,19,16,17,17,19,19,17,17,18, + 18,21,18,19,19,21,19,16,17,17,18,18,17,17,18,19, + 19,17,18,17,19,19,19,19,19,20,20,18,19,18,21,19, + 12,13,13,16,16,13,14,14,16,17,13,15,14,17,16,15, + 16,17,17,19,16,17,17,19,18,13,13,14,16,17,14,13, + 15,16,17,14,15,15,17,17,15,15,17,17,20,17,17,18, + 19,18,13,14,14,17,16,15,15,15,17,18,14,15,14,17, + 16,17,17,17,18,18,16,17,16,19,17,16,15,17,17,19, + 16,15,17,16,19,17,16,17,18,19,17,16,19,16,20,19, + 18,19,19,19,16,17,17,18,18,17,17,17,18,19,16,17, + 16,19,18,20,19,19,20,19,18,18,17,20,17,11,13,13, + 16,16,13,14,15,16,17,14,15,14,18,16,17,17,17,18, + 21,17,18,17,20,19,13,14,14,17,16,13,14,15,16,18, + 15,16,15,18,17,17,16,17,17,19,17,18,18,20,19,13, + 14,14,16,17,15,15,16,17,18,14,15,14,18,17,17,18, + 18,19,20,17,18,16,19,17,16,17,15,19,18,16,16,16, + 18,18,17,18,17,20,19,18,17,18,17,20,20,20,19,22, + 20,16,17,17,18,19,18,18,18,19,20,16,17,16,19,18, + 20,19,19,20,20,18,19,17,20,17,13,14,14,16,17,14, + 14,16,16,18,14,16,15,17,16,16,16,17,17,18,17,17, + 16,19,18,14,14,15,16,17,14,14,16,16,18,16,16,16, + 17,17,16,15,17,16,19,18,18,18,19,19,14,15,15,17, + 17,15,16,16,17,18,14,16,14,18,16,17,17,18,18,19, + 16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,18, + 18,18,17,18,17,16,18,16,20,19,19,19,19,19,16,17, + 17,18,18,17,17,18,19,19,16,17,16,19,17,18,19,19, + 19,20,17,18,16,20,16,11,14,13,17,17,14,14,16,16, + 18,14,16,14,19,16,18,18,19,18,19,18,19,18,21,18, + 13,15,14,18,16,14,14,16,16,18,16,17,16,19,17,18, + 16,19,17,20,19,19,19,21,19,13,14,15,17,18,17,16, + 17,17,19,14,16,14,18,16,20,19,19,20,21,18,19,16, + 21,17,17,18,16,19,17,16,16,17,18,18,19,19,18,21, + 18,17,17,18,17,20,20,20,20,22,20,17,17,18,18,20, + 19,19,19,18,20,16,17,17,19,19,21,21,21,20,21,17, + 19,17,23,17,11,13,13,16,16,13,14,14,17,17,13,14, + 14,17,17,16,17,17,19,20,15,16,16,19,19,13,14,14, + 16,17,14,15,15,17,18,14,15,15,17,17,17,17,18,19, + 19,17,17,18,19,19,13,14,14,17,16,14,15,15,17,17, + 13,15,14,18,17,17,18,18,19,20,16,17,16,19,18,16, + 16,17,18,18,17,17,17,18,19,17,18,17,19,19,19,19, + 19,19,20,19,20,19,20,20,15,16,16,18,17,16,17,17, + 20,18,15,16,16,19,17,19,19,19,20,20,17,18,17,21, + 17,11,13,13,16,16,13,14,15,16,17,13,15,14,17,16, + 17,17,18,18,20,17,17,17,19,19,13,14,14,17,17,14, + 14,15,17,18,15,15,15,18,17,17,17,18,17,20,18,18, + 17,20,18,13,14,14,16,17,15,15,16,17,18,14,15,13, + 17,17,17,18,18,19,20,17,17,16,19,17,16,17,17,18, + 18,16,16,17,18,18,18,18,18,19,19,18,17,19,18,21, + 19,20,20,20,20,16,15,17,18,18,17,17,18,18,20,16, + 16,16,18,17,20,19,20,21,22,17,18,17,20,17,12,13, + 13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,18, + 18,19,15,16,16,19,18,13,14,14,16,17,14,14,15,16, + 17,14,15,15,17,17,16,16,17,17,19,17,17,17,19,18, + 13,14,13,17,16,14,15,15,17,17,13,15,13,17,16,17, + 17,17,19,19,15,17,15,19,17,16,17,17,18,18,16,16, + 17,17,19,17,18,17,19,19,18,17,19,17,19,19,19,19, + 20,19,15,17,15,19,16,17,17,16,19,18,16,17,15,18, + 16,19,19,19,20,19,17,19,16,19,16,11,14,14,17,17, + 15,14,16,16,18,15,16,14,18,16,18,18,19,18,21,18, + 19,18,20,18,13,15,14,18,17,14,14,16,16,18,16,17, + 16,19,17,17,17,19,17,22,19,19,19,21,19,13,14,15, + 17,18,17,16,17,17,19,14,16,14,18,16,19,19,19,20, + 21,18,18,16,20,17,17,18,16,19,18,15,17,17,19,19, + 19,19,18,21,19,18,17,20,17,21,22,21,20,21,21,17, + 16,19,18,20,19,18,19,18,20,16,17,16,19,18,21,20, + 21,19,23,18,19,16,20,17,13,14,14,17,16,14,14,15, + 16,18,14,16,14,17,16,16,16,17,17,19,16,17,16,19, + 17,14,15,15,17,17,14,14,16,16,17,15,16,16,18,17, + 16,16,17,17,19,17,18,17,19,18,14,15,14,17,16,16, + 16,16,17,17,14,16,14,17,16,18,18,18,18,19,16,17, + 15,19,16,17,17,17,18,18,16,15,17,17,18,18,18,18, + 19,19,17,16,18,16,19,19,19,19,19,19,16,17,16,19, + 16,18,18,17,19,18,16,17,16,19,16,19,19,20,19,19, + 17,18,16,20,16, +}; + +static const static_codebook _44p6_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p6_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p6_p5_0, + 0 +}; + +static const long _vq_quantlist__44p6_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p6_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p6_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p6_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p6_p5_1, + 0 +}; + +static const long _vq_quantlist__44p6_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p6_0[] = { + 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, + 10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 9, 9, 9,10, + 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, + 12,13,13,11,13,11, 6, 9, 9, 9,11,11, 9,12,10, 9, + 11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, + 11, 6, 9, 9, 9,11,12, 9,12,11, 9,10,11,10,10,13, + 12,13,13, 9,11,11,12,13,12,11,13,11, 7, 9,10, 9, + 10,12,10,12,11,10,10,12,10,10,12,12,12,13,10,11, + 11,12,12,13,10,12,10, 7,10,10,11,11,14,11,14,11, + 10,12,11,11,11,14,14,14,14,10,11,12,14,14,14,11, + 14,11, 6, 9, 9, 9,11,12, 9,12,11, 9,11,11,11,11, + 13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, + 11,11,14,11,14,11,10,12,11,11,11,14,14,15,14,10, + 11,12,13,14,15,11,14,11, 7,10, 9,10,11,12, 9,12, + 10,10,11,11,10,10,12,12,13,12, 9,12,10,12,13,12, + 10,12,10, +}; + +static const static_codebook _44p6_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p6_p6_0, + 0 +}; + +static const long _vq_quantlist__44p6_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p6_1[] = { + 2, 6, 6, 6, 7, 8, 6, 8, 7, 6, 7, 7, 7, 7, 8, 7, + 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, + 9, 8, 9, 9, 8, 9, 9, 9, 9,10, 9,10,10, 8, 9, 9, + 9,10,10, 9,10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, + 9, 9, 9, 9,10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, + 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, + 9, 9,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 8, 8, 8, + 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, + 9, 9,10, 9, 9, 9, 9, 7, 9, 9, 9, 9,10, 9,10, 9, + 9, 9, 9, 9, 9,10,10,10,10, 9, 9, 9,10,10,10, 9, + 10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, + 10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 9, 9, + 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9,10,10,10,10, 9, + 9, 9,10,10,10, 9,10, 9, 7, 8, 8, 8, 9, 9, 8, 9, + 9, 8, 9, 9, 9, 9,10, 9, 9,10, 8, 9, 8, 9, 9, 9, + 9,10, 9, +}; + +static const static_codebook _44p6_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p6_p6_1, + 0 +}; + +static const long _vq_quantlist__44p6_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p6_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p6_p7_0, + 0 +}; + +static const long _vq_quantlist__44p6_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p6_p7_1[] = { + 1, 4, 5, 5,10,10, 5,10,10, 5,10,10,10,10,10,10, + 10,10, 5,10,10,10,10,10,10,10,10, 7,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10, 6,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, + 11,11,11, +}; + +static const static_codebook _44p6_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p6_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p6_p7_1, + 0 +}; + +static const long _vq_quantlist__44p6_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p6_p7_2[] = { + 1, 2, 3, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p6_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p6_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p6_p7_2, + 0 +}; + +static const long _vq_quantlist__44p6_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p6_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p6_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p6_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p6_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p6_short[] = { + 2, 8,13,15,16,18,21,22, 5, 4, 6, 8,10,12,17,21, + 9, 5, 5, 6, 8,11,15,19,11, 6, 5, 5, 6, 7,12,14, + 14, 8, 7, 5, 4, 4, 9,11,16,11, 9, 7, 4, 3, 7,10, + 22,15,14,12, 8, 7, 9,11,21,16,15,12, 9, 5, 6, 8, +}; + +static const static_codebook _huff_book__44p6_short = { + 2, 64, + (long *)_huff_lengthlist__44p6_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p7_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p7_l0_0[] = { + 2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, + 7, 7, 9, 9,11, 9,12,11,12,12, 4, 5, 5, 7, 7, 9, + 9, 9,10,10,11,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, + 12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, + 12, 8, 9, 9, 9, 9,10,10,11, 7,11, 7,12, 9, 8, 9, + 8, 9, 9,10,10, 7,11, 7,11, 9,11,10,10,10,10,10, + 10,10,11,10,11, 8,11, 9,10,10,10,10,10,10,10,10, + 11, 8,10, 9,11,10,11,11,11,11,11,10,11,10,12,10, + 12,11,10,11,11,11,11,10,11,10,11,10,12,11,12,11, + 12,12,12,12,12,12,12,12,12,12,13,12,11,12,11,12, + 12,12,12,12,11,12,11,12,13, +}; + +static const static_codebook _44p7_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p7_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p7_l0_0, + 0 +}; + +static const long _vq_quantlist__44p7_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p7_l0_1[] = { + 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p7_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p7_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p7_l0_1, + 0 +}; + +static const long _vq_quantlist__44p7_l1_0[] = { + 54, + 29, + 79, + 0, + 108, +}; + +static const long _vq_lengthlist__44p7_l1_0[] = { + 1, 2, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44p7_l1_0 = { + 2, 25, + (long *)_vq_lengthlist__44p7_l1_0, + 1, -514516992, 1620639744, 7, 0, + (long *)_vq_quantlist__44p7_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p7_lfe[] = { + 2, 3, 1, 3, +}; + +static const static_codebook _huff_book__44p7_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p7_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p7_long[] = { + 2, 7,14,16,17,17,18,20, 6, 3, 5, 8,10,11,13,15, + 13, 5, 3, 5, 8, 9,11,12,15, 7, 4, 3, 5, 7, 9,11, + 16,10, 7, 5, 6, 7, 9,10,17,11, 8, 7, 7, 6, 8, 8, + 19,13,11, 9, 9, 8, 8, 9,20,14,13,11,10, 8, 9, 9, +}; + +static const static_codebook _huff_book__44p7_long = { + 2, 64, + (long *)_huff_lengthlist__44p7_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p7_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p1_0[] = { + 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, + 10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, + 10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, + 10,10,10,11,11,10,12,11, 8,10, 9,10,11,11,10,12, + 10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, + 9,11,11, 8,10,10,10,11,12,10,12,11, 7, 9, 9, 9, + 10,11, 9,11,11, 9, 9,11,10,11,12,11,11,12, 9,11, + 11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, + 9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, + 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, + 12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, + 10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, + 10,11,11,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, + 10, 9,11,11,11,12,12,11,12,12, 9,11, 9,11,12,11, + 10,12,11, +}; + +static const static_codebook _44p7_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p7_p1_0, + 0 +}; + +static const long _vq_quantlist__44p7_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p7_p2_0[] = { + 4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, + 10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 8, 8, + 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, + 13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, + 10,10,11,11,13,13,10,11,10,13,12, 9,10,10,12,12, + 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, + 13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, + 10,13,12,12,13,13,14,15,12,13,12,15,12, 6, 8, 8, + 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, + 14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,12,13, + 9,10,10,12,13,11,12,13,13,15,11,12,12,14,14, 8, + 9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, + 13,14,15,11,12,12,14,13,10,11,12,13,14,11,12,13, + 13,15,12,13,13,14,14,13,13,14,14,16,14,15,14,16, + 15,10,12,11,14,13,12,12,13,14,14,11,12,12,14,14, + 14,14,15,15,16,13,14,14,16,14, 6, 8, 8,11,10, 8, + 9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,12, + 11,14,13, 8, 9, 9,12,11, 9,10,10,12,13, 9,11,10, + 13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, + 11, 9,10,10,13,12, 9,11,10,13,12,11,12,12,14,14, + 11,13,12,15,13,10,11,12,13,14,11,12,13,13,14,12, + 13,12,14,14,13,13,14,14,16,14,15,14,16,16,10,12, + 11,14,13,12,13,13,14,14,11,13,12,15,13,14,14,15, + 16,16,13,14,13,16,14, 9,10,11,12,13,11,11,12,13, + 14,11,11,12,13,14,13,13,14,14,16,13,14,14,15,15, + 11,11,12,13,14,12,12,13,13,15,12,13,13,14,15,14, + 14,15,15,17,14,14,15,16,16,11,12,12,13,14,12,12, + 13,14,15,12,13,12,14,15,14,14,15,15,17,14,15,14, + 16,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16, + 16,15,16,17,16,18,16,17,16,17,17,13,14,14,16,15, + 14,15,15,16,16,14,15,14,16,15,16,16,17,17,18,16, + 16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, + 11,14,13,13,14,14,16,15,13,14,13,16,14,11,12,12, + 14,13,12,12,13,14,14,12,13,13,15,14,14,14,15,16, + 16,14,15,14,17,15,11,12,11,14,13,12,13,13,15,14, + 12,13,12,15,13,14,15,14,16,16,14,15,14,17,15,13, + 14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, + 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, + 17,16,14,15,14,17,15,16,17,17,17,17,16,16,16,18, + 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, + 10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, 9, + 10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, + 12,15,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, + 13,12,11,12,12,14,15,11,13,12,15,14,10,11,11,13, + 14,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, + 13,14,14,16,15,11,12,11,14,13,12,13,13,14,14,11, + 13,12,14,13,14,14,15,16,16,13,14,14,16,14, 8, 9, + 9,11,12, 9,10,10,12,13, 9,10,10,13,12,11,12,12, + 14,15,11,12,12,14,14, 9, 9,10,11,13,10,10,12,12, + 14,10,10,11,13,13,12,12,13,14,16,12,12,13,15,15, + 9,10,10,13,12,10,11,11,13,14,10,12,11,14,13,12, + 13,13,15,15,12,13,13,15,15,11,11,12,13,15,12,12, + 13,13,15,12,13,13,14,15,14,14,15,15,17,14,15,15, + 16,16,11,13,12,15,14,13,13,13,15,15,12,14,13,15, + 14,15,15,15,16,16,14,15,15,17,15, 7, 9, 9,12,11, + 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, + 13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, + 11,14,13,12,12,13,14,15,12,13,13,15,14, 9,10,10, + 12,12,10,11,11,13,13,10,11,10,14,12,12,13,13,15, + 15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, + 12,13,13,15,15,14,13,14,13,16,14,15,15,16,16,11, + 12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, + 15,16,16,14,15,14,17,14,10,11,12,13,14,11,12,13, + 14,15,11,12,12,14,15,13,14,15,15,17,14,14,14,16, + 16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, + 14,14,15,14,17,15,15,15,15,17,11,13,12,15,15,13, + 13,14,15,16,12,14,13,16,15,15,15,15,17,17,15,15, + 15,17,16,14,14,15,14,16,14,14,16,14,17,15,15,15, + 14,17,16,16,17,15,18,17,17,17,16,18,14,15,15,17, + 16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, + 16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, + 13,12,15,14,14,14,14,16,16,14,15,14,16,15,11,12, + 12,15,13,12,13,13,15,14,13,14,13,16,14,14,15,15, + 16,16,15,16,15,17,16,11,13,12,15,14,13,13,14,15, + 15,12,14,13,16,14,15,15,15,17,17,14,16,15,17,16, + 14,14,14,16,15,14,15,15,16,16,15,16,15,17,16,16, + 16,16,16,17,16,17,17,18,17,14,15,15,16,16,15,15, + 16,17,16,14,15,15,17,16,17,17,17,18,18,16,17,16, + 18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, + 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, + 9,10,11,12,13, 9,11,10,13,12,11,12,13,14,15,11, + 12,12,15,14, 8, 9, 9,12,11, 9,10,10,12,13, 9,10, + 10,13,12,11,12,12,14,15,11,12,12,14,13,11,11,12, + 13,14,11,12,13,13,15,12,13,13,14,14,13,14,14,14, + 16,14,15,14,16,16,10,11,11,14,13,11,12,12,14,14, + 11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 7, + 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, + 13,14,15,11,12,12,14,14, 9,10,10,12,12,10,10,11, + 12,13,10,11,11,13,13,12,12,13,13,15,12,13,13,15, + 15, 9,10,10,12,12,10,11,11,13,13,10,11,10,13,12, + 12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12, + 12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,15, + 15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, + 15,14,14,15,15,16,17,13,14,13,16,13, 8, 9, 9,12, + 11, 9,10,10,12,13, 9,10,10,13,12,11,12,12,14,15, + 11,12,12,15,14, 9,10,10,12,13,10,11,12,13,14,10, + 11,11,14,13,12,13,13,15,15,12,13,13,15,15, 9,10, + 9,13,11,10,11,10,13,13,10,12,10,14,12,12,13,12, + 15,15,12,13,12,15,14,11,12,13,14,15,12,13,14,14, + 15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16, + 11,12,11,15,13,12,13,13,15,14,12,13,12,16,13,14, + 15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, + 13,14,15,11,12,12,14,14,14,14,15,15,17,14,14,14, + 15,16,11,12,13,14,15,12,13,14,14,16,13,14,13,15, + 15,14,15,16,15,17,15,15,15,17,17,11,12,12,13,15, + 13,13,14,14,16,12,13,13,14,15,15,15,15,16,17,14, + 15,15,16,16,14,15,15,16,16,14,15,15,16,17,15,15, + 16,16,17,16,16,17,16,18,17,17,17,18,18,14,14,15, + 15,16,15,15,15,16,17,14,15,15,16,16,16,17,17,17, + 18,16,16,16,17,16,10,11,11,14,13,11,13,12,15,14, + 11,13,12,15,14,14,15,14,16,16,13,15,14,17,15,11, + 12,13,15,15,12,13,14,15,16,13,14,13,16,15,15,15, + 15,16,17,15,15,15,17,16,11,13,11,15,12,13,14,13, + 16,13,12,14,12,16,13,15,15,15,17,15,14,16,14,17, + 14,14,15,15,16,17,15,15,16,16,17,15,16,15,17,17, + 16,16,17,17,18,16,17,17,18,18,14,15,14,17,13,15, + 16,15,17,15,15,16,15,17,14,16,17,16,18,16,16,17, + 16,18,15, 9,11,11,13,13,10,12,12,14,14,11,12,12, + 14,14,13,14,14,15,16,13,14,14,16,16,10,11,12,14, + 14,11,12,13,14,15,11,13,13,15,15,13,14,14,15,16, + 14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12, + 13,12,15,14,14,15,15,16,16,14,15,14,17,16,12,13, + 13,15,16,13,13,14,15,16,13,14,14,16,16,14,15,16, + 16,17,15,16,16,17,17,13,14,14,16,15,14,15,15,17, + 16,14,15,14,17,15,16,16,17,17,17,16,16,16,18,16, + 10,11,12,14,14,11,12,13,14,15,11,13,12,15,15,13, + 14,15,16,16,14,15,15,17,16,11,11,13,14,15,12,12, + 14,14,16,12,13,14,15,15,14,14,15,16,17,15,15,15, + 17,17,12,13,12,15,15,13,14,14,16,15,13,14,13,16, + 15,15,16,15,17,17,15,16,15,17,16,13,12,15,14,16, + 14,13,15,14,17,14,13,15,15,17,15,14,17,15,18,16, + 15,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, + 15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, + 14,14,11,12,12,14,15,11,13,12,15,14,13,14,14,16, + 16,14,15,14,16,16,11,12,12,14,14,12,12,13,15,15, + 12,13,13,15,15,14,14,15,16,16,14,15,15,17,16,11, + 12,12,15,15,13,13,13,15,15,12,13,13,15,15,15,15, + 15,17,17,14,15,15,17,16,13,14,13,16,15,14,14,14, + 16,16,14,15,14,17,16,15,15,16,16,17,16,17,16,18, + 17,14,15,15,16,16,15,15,15,17,17,14,15,15,17,16, + 16,17,17,18,18,16,17,16,18,16,12,13,13,15,15,13, + 14,14,16,16,13,14,14,16,16,14,15,16,16,18,15,16, + 16,17,17,13,13,14,14,16,14,14,15,15,17,14,14,15, + 15,17,15,15,17,15,18,16,16,17,17,18,13,14,14,16, + 16,14,15,15,16,17,14,15,15,17,16,16,17,16,17,18, + 16,17,16,18,17,15,14,16,13,18,16,15,17,14,18,16, + 15,17,14,18,17,16,18,15,19,17,17,18,16,19,15,16, + 16,17,17,16,17,17,18,18,16,17,16,18,17,18,18,18, + 19,18,17,18,17,19,17,11,12,12,15,15,13,13,14,15, + 16,13,14,13,16,15,15,15,15,16,17,15,16,15,17,16, + 12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15, + 15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, + 15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, + 18,16,15,15,15,17,15,14,15,15,16,16,16,17,16,17, + 16,16,16,17,16,17,17,18,17,19,18,15,15,16,17,17, + 16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, + 17,16,18,16, 9,11,11,13,13,11,12,12,14,14,10,12, + 12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12, + 14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,16, + 17,14,15,15,16,16,10,12,11,14,14,11,13,13,15,15, + 11,13,12,15,14,14,14,15,16,16,13,14,14,16,15,13, + 14,14,15,16,14,14,15,15,17,14,15,15,16,17,16,16, + 16,16,18,16,16,17,17,17,12,13,13,16,15,13,14,14, + 16,16,12,14,13,16,15,15,16,16,17,17,14,16,15,17, + 16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,14, + 14,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12, + 13,14,15,15,13,13,13,15,15,14,15,15,16,17,15,15, + 15,16,17,11,12,12,14,14,12,13,13,15,15,12,13,12, + 15,15,14,15,15,16,17,14,15,14,16,16,14,14,15,16, + 16,14,15,15,16,17,15,16,15,17,17,16,16,17,16,18, + 16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,14, + 14,14,16,15,16,16,17,17,18,15,16,15,17,16,10,12, + 11,14,14,11,13,13,15,15,11,13,12,15,15,14,15,15, + 16,16,13,15,14,16,16,12,12,13,15,15,13,13,14,15, + 16,13,14,14,16,15,15,15,16,16,17,15,15,15,17,17, + 11,13,11,15,14,12,14,13,16,15,12,14,12,16,14,15, + 15,15,17,17,14,15,14,17,15,14,15,15,16,17,15,15, + 16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17, + 18,18,13,14,12,16,14,14,15,13,17,15,14,15,13,17, + 14,16,17,15,18,17,15,17,14,18,15,11,12,12,14,15, + 13,13,14,15,16,13,14,13,16,15,15,15,16,16,17,15, + 15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, + 14,16,16,15,15,16,16,18,16,16,16,18,17,12,13,13, + 15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, + 18,15,16,15,17,16,15,16,15,17,16,15,15,16,16,17, + 16,17,16,17,17,16,16,17,16,18,17,18,18,18,18,14, + 15,15,15,17,16,15,17,16,17,14,15,15,16,16,17,17, + 18,18,19,16,16,16,17,16,12,13,13,15,15,13,14,14, + 16,16,13,14,14,16,16,15,16,16,17,17,15,16,15,18, + 16,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16, + 16,16,17,17,18,16,17,16,18,18,13,14,13,16,14,14, + 15,14,17,15,14,15,14,17,14,16,17,16,18,17,15,17, + 15,18,15,15,16,16,17,18,16,16,17,17,18,16,17,17, + 17,18,17,17,18,18,19,17,18,18,19,18,15,16,14,17, + 13,16,17,15,18,14,16,17,15,18,14,18,18,17,19,16, + 17,18,16,19,15, +}; + +static const static_codebook _44p7_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p7_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p7_p2_0, + 0 +}; + +static const long _vq_quantlist__44p7_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p3_0[] = { + 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 8, 7, 8,10, 8, + 9, 9, 5, 7, 7, 8, 9, 9, 7,10, 8, 5, 7, 8, 8, 9, + 10, 8,10,10, 8, 9,10,10,10,12,10,12,12, 8,10,10, + 10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,10, 9, 8, + 10,10,10,11,12,10,12,12, 8,10, 9,10,12,12,10,12, + 10, 5, 8, 8, 7,10,10, 8,10,10, 7, 9,10, 9,10,12, + 10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, + 11,12,10,12,11, 9, 9,12,11,10,14,12,12,13,10,12, + 11,12,13,13,11,14,12, 7,10, 9,10,11,11,10,12,11, + 9,11,11,11,11,13,12,14,13,10,12,12,12,14,14,11, + 14,12, 5, 8, 8, 8,10,10, 7,10,10, 8,10,10,10,11, + 12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, + 10,11,12,10,11,11,10,12,12,11,12,14,12,14,14, 9, + 11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, + 11,10,11,12,11,12,14,12,13,13, 9,12, 9,12,13,12, + 11,14,10, +}; + +static const static_codebook _44p7_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p7_p3_0, + 0 +}; + +static const long _vq_quantlist__44p7_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p3_1[] = { + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, + 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, + 8, 8, 8, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, + 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, 8, + 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, + 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, + 9, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 8, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, + 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 9, + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, + 8, 9, 8, +}; + +static const static_codebook _44p7_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p7_p3_1, + 0 +}; + +static const long _vq_quantlist__44p7_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p4_0[] = { + 1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, + 10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 9,10, + 12, 9,11,11, 9,10,11,11,11,13,11,13,13, 9,11,11, + 11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, + 11,11,11,11,13,11,13,13, 9,11,10,11,13,13,11,13, + 11, 6, 9, 9, 8,10,11, 9,12,11, 8,10,11,10,11,13, + 11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, + 11,12,10,12,12,10,10,12,11,11,14,12,13,14,10,12, + 12,12,13,13,11,14,11, 8,11,10,11,12,13,11,14,12, + 10,12,11,11,12,14,13,15,14,10,12,12,13,14,15,12, + 14,12, 5, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, + 13,11,12,13, 8,11,10,11,13,13,10,13,11, 8,10,11, + 11,12,14,11,13,12,10,12,12,12,12,14,14,15,14,10, + 11,12,13,14,15,11,14,12, 8,10,10,10,12,12, 9,12, + 11,10,12,12,11,11,14,12,13,13,10,12,10,12,14,13, + 11,13,11, +}; + +static const static_codebook _44p7_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p7_p4_0, + 0 +}; + +static const long _vq_quantlist__44p7_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p7_p4_1[] = { + 7, 8, 8,10,10, 8, 9, 9,10,11, 8, 9, 9,10,10, 9, + 10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, + 10,11,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, + 11,11, 8, 9, 9,10,10, 9,10,10,11,11, 9,10, 9,11, + 11,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, + 10,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11, + 11,11,11,12,10,10,10,11,11,10,11,11,11,11,10,11, + 11,11,11,11,11,11,12,11,11,11,11,12,11, 8, 9,10, + 11,11, 9,10,11,11,11, 9,10,10,11,11,10,11,11,12, + 12,10,11,11,12,12,10,10,10,11,11,10,10,11,11,12, + 10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, + 10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12, + 12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11, 9, + 10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, + 11,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11, + 12,12,11,11,12,12,12,11,12,12,12,12,10,10,10,11, + 11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12, + 11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, + 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, + 12,13,12,13,12,12,12,13,13,11,12,11,12,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, + 13,13,12,12,12,12,12,12,12,12,12,13,12,12,13,13, + 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, + 12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12, + 13,13,13,13,10,11,11,12,11,11,11,11,12,12,11,12, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, + 13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, + 11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,12, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, + 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, + 13,13,12,13,12,13,12,12,13,13,13,13,13,13,13,13, + 13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11,11, + 10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, + 10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, + 12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10, + 12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12, + 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, + 10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,11, + 12,12,11,11,11,12,12,10,10,11,11,12,11,11,12,12, + 12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, + 10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11, + 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, + 12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12, 9,10,10,11,11, + 10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11, + 12,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12, + 11,12,12,11,12,12,12,12,12,12,12,12,12,10,11,11, + 12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,13, + 12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11, + 12,12,12,12,12,12,12,13,12,11,12,12,12,12,12,12, + 12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,11,11,12,12,12,12,12,12,12,13,12,12,12,12,12, + 12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, + 12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13, + 13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, + 12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13, + 13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, + 13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, + 12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13, + 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11, + 11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11, + 10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11, + 11,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, + 10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11, + 12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, + 10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11, + 12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, + 12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, + 12,13,12,11,12,12,12,12,12,12,12,12,12,11,12,12, + 12,12,12,12,12,13,12,12,12,12,13,12, 9,10,10,11, + 11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, + 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, + 11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11, + 10,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12, + 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, + 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, + 12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, + 13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12, + 12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, + 13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, + 12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12, + 13,13,13,12,13,13,13,13,11,12,11,12,12,12,12,12, + 13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, + 12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, + 13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13, + 13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, + 12,11,11,12,12,12,11,12,12,12,12,12,12,12,13,13, + 12,12,12,13,13,11,11,11,12,12,11,12,12,12,12,11, + 12,11,13,12,12,12,12,13,13,12,12,12,13,13,11,12, + 12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13, + 13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13, + 12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, + 10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,13,11,11,12,12,12,11,12, + 12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13, + 13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, + 13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13, + 12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,12, + 13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,12, + 12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, + 13,12,12,12,13,13,11,12,12,12,12,11,12,12,12,13, + 12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, + 12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, + 13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13, + 13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, + 13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, + 12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, + 12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, + 13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12, + 12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13, + 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, + 13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, + 12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, + 13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12, + 13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13, + 11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12, + 12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12, + 12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12, + 13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, + 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, + 12,12,11,11,12,12,13,11,12,12,12,12,12,12,12,13, + 13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,11, + 12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12, + 13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, + 13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, + 13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, + 12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, + 13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, + 13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12, + 13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,12,12,12,13,12,12,12,13,13,13,12, + 12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, + 13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, + 13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, + 11,12,11,12,12,12,12,12,13,13,11,12,12,13,12,12, + 13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, + 13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, + 13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13, + 13,13,13,13,13,13,12,13,12,13,13,10,11,11,12,12, + 11,12,12,12,12,11,12,12,13,12,12,12,12,13,13,12, + 12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, + 12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12, + 12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13, + 13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13, + 12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, + 12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13, + 13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13, + 13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13, + 12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, + 12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12, + 12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, + 13,13,13,13,12, +}; + +static const static_codebook _44p7_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p7_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p7_p4_1, + 0 +}; + +static const long _vq_quantlist__44p7_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p7_p5_0[] = { + 2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, + 10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, + 10,10,12, 8, 9, 9,12,11,10,10,12,11,14,10,11,12, + 14,13, 6, 8, 7,11,10, 8, 9, 9,11,12, 7,10, 8,12, + 10,10,12,12,13,14,10,12,10,14,11, 9,10,11,11,12, + 10,10,11,11,13,11,12,12,13,13,12,11,13,11,15,13, + 14,13,14,14, 9,11,10,12,11,11,12,12,13,13,10,11, + 10,13,11,13,13,14,14,14,12,13,11,14,11, 7, 8, 9, + 11,12, 9, 9,11,12,13, 9,10,10,13,12,11,12,13,13, + 15,11,12,12,14,14, 9,10,10,12,13,10,10,12,12,14, + 11,11,11,13,13,12,12,13,13,15,12,13,13,15,14, 9, + 10,10,12,13,10,11,11,13,14,10,12,11,14,13,12,13, + 13,14,15,12,13,13,15,14,12,12,13,13,14,12,13,13, + 13,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16, + 16,12,13,13,14,14,13,13,14,15,14,12,13,13,15,14, + 14,15,15,15,16,14,15,14,16,14, 7, 9, 8,12,11, 9, + 10,10,12,13, 9,11, 9,13,12,11,12,12,14,14,11,13, + 12,15,13, 9,10,10,13,12,10,11,12,13,14,10,12,11, + 14,13,12,13,13,14,15,13,13,13,15,14, 9,10,10,13, + 12,11,11,11,13,13,10,12,10,14,12,13,13,13,14,15, + 12,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13, + 14,13,15,15,14,14,15,14,16,14,15,15,16,15,12,13, + 12,14,13,13,13,13,15,14,12,13,13,15,13,14,15,15, + 16,15,14,15,14,16,14,11,12,12,13,14,12,13,14,14, + 15,12,13,13,14,15,14,14,15,15,16,14,15,15,16,16, + 12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,15, + 15,16,15,17,15,15,15,16,16,12,13,13,14,15,13,14, + 14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,15, + 17,16,14,15,15,16,16,15,15,16,15,16,15,16,16,16, + 17,16,16,17,16,18,16,16,17,18,17,14,15,15,16,16, + 15,16,16,16,17,15,16,15,17,16,16,17,17,17,18,16, + 16,16,17,16,11,12,12,14,13,12,13,13,15,14,12,14, + 13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13, + 15,14,13,14,14,15,15,13,14,14,16,15,15,15,15,16, + 16,15,16,15,17,16,12,13,13,15,14,13,14,14,15,15, + 13,14,13,16,14,15,15,15,16,16,15,15,15,17,15,14, + 15,15,16,16,15,15,15,16,16,15,16,16,17,17,16,16, + 17,17,17,16,17,17,18,17,14,15,15,16,15,15,15,16, + 16,16,15,15,15,17,15,17,17,17,18,17,16,17,16,18, + 16, 6, 9, 9,12,12, 8,10,10,12,13, 9,11,10,13,12, + 10,12,12,14,14,11,13,12,14,14, 8,10,10,12,12, 9, + 10,11,12,14,10,11,11,13,13,12,12,13,13,15,12,13, + 13,15,14, 9,10,10,13,13,10,11,11,13,13,10,12,10, + 14,13,12,13,13,14,15,12,13,13,15,14,11,12,12,13, + 14,12,12,13,13,15,12,13,13,14,14,13,13,14,13,16, + 14,15,15,16,15,11,12,12,14,14,13,13,13,15,14,12, + 13,13,15,14,14,15,15,16,15,14,14,14,16,14, 7, 9, + 10,12,12, 9,10,11,13,13, 9,11,10,13,13,11,12,13, + 14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, + 14,11,11,12,14,14,12,12,14,14,15,13,13,13,15,15, + 9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, + 14,13,15,15,12,14,13,15,14,12,12,13,13,15,12,12, + 14,13,15,13,14,14,15,15,14,14,15,14,17,14,15,15, + 16,16,12,13,13,15,14,13,14,14,15,15,12,14,13,15, + 14,14,15,15,16,16,14,15,14,16,14, 7,10,10,12,12, + 10,11,11,12,13,10,12,10,14,12,12,13,13,14,15,12, + 13,13,15,14, 9,11,10,13,12,10,10,12,12,14,11,13, + 12,14,13,13,13,14,13,15,13,14,14,15,14,10,11,11, + 13,13,12,12,12,13,14,10,12,10,14,12,13,14,14,15, + 15,13,14,13,15,13,12,13,13,14,14,12,12,13,14,15, + 13,14,14,15,15,13,13,14,13,15,14,15,15,16,16,12, + 13,13,14,14,13,14,14,15,15,12,13,13,15,13,15,15, + 15,16,16,13,14,13,16,13,11,12,13,14,14,12,13,14, + 14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, + 16,12,13,14,14,15,13,13,14,14,16,13,14,14,15,16, + 14,14,16,15,17,15,15,16,16,16,12,13,13,15,15,13, + 14,14,15,16,13,14,14,15,16,15,15,16,17,17,15,16, + 15,17,16,14,15,15,15,16,15,15,16,15,17,15,15,16, + 16,17,16,16,16,16,18,16,16,17,17,17,14,15,15,16, + 16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,17, + 16,17,16,18,17,11,12,12,14,14,13,13,14,14,15,13, + 14,13,15,14,14,15,15,15,16,14,15,15,17,15,12,13, + 13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,15, + 15,16,15,16,15,17,16,12,13,13,15,15,14,14,14,15, + 16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15, + 14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,15, + 15,16,15,17,16,17,17,18,17,14,15,15,16,16,15,16, + 16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,16, + 18,15, 6, 9, 9,12,12, 9,10,11,12,13, 8,10,10,13, + 12,11,12,13,14,14,10,12,12,14,13, 9,10,10,12,13, + 10,10,12,13,14,10,11,11,13,13,12,13,13,14,15,12, + 13,13,15,14, 8,10,10,12,12,10,11,11,13,13, 9,11, + 10,13,13,12,13,13,14,15,12,13,12,15,13,11,12,12, + 14,14,12,13,13,13,15,13,13,13,14,15,14,14,15,14, + 16,14,15,15,15,15,11,12,12,14,13,12,13,13,15,14, + 12,13,12,15,13,14,14,15,16,16,13,14,13,16,13, 7, + 10,10,12,12,10,10,12,12,14,10,11,11,13,12,12,13, + 13,13,15,12,13,13,15,14,10,11,11,13,13,10,10,12, + 12,14,12,12,12,14,13,13,13,14,13,15,13,14,14,15, + 14, 9,10,11,13,13,11,12,12,13,14,10,12,10,14,12, + 13,13,14,14,15,13,13,12,15,13,12,13,13,14,14,12, + 13,13,14,15,13,14,14,15,15,13,13,15,13,16,15,15, + 15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,12, + 15,14,15,15,15,16,16,13,14,13,15,13, 7,10, 9,12, + 12, 9,10,11,13,13, 9,11,10,13,13,11,13,13,14,15, + 11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, + 12,12,14,14,12,13,14,14,15,13,13,13,15,15, 9,11, + 10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, + 15,15,12,14,12,15,14,12,13,13,14,15,13,13,14,14, + 15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16, + 12,13,12,15,13,13,14,14,15,15,12,14,13,15,13,14, + 15,15,16,16,14,15,14,16,14,11,12,12,14,14,13,13, + 14,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15, + 16,15,12,13,13,15,15,13,13,14,15,16,14,14,14,16, + 15,15,15,16,15,17,15,16,15,17,16,12,13,13,14,15, + 14,14,15,15,16,13,14,13,15,15,15,15,16,16,17,15, + 15,15,16,15,14,15,15,16,16,14,15,15,16,17,15,16, + 16,17,17,16,15,16,15,17,16,17,17,17,17,14,15,15, + 15,16,15,15,16,16,17,14,15,15,16,16,16,16,17,17, + 18,15,16,15,17,15,11,13,12,14,14,12,13,13,15,15, + 12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12, + 13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15, + 16,16,17,15,16,15,17,16,12,13,13,15,14,13,14,14, + 16,15,13,14,13,16,14,15,16,15,17,16,15,15,14,18, + 15,14,15,15,16,16,15,15,16,16,17,15,16,15,17,16, + 16,16,17,17,18,16,17,17,18,17,14,15,15,16,15,15, + 16,15,17,16,15,15,15,17,15,16,17,17,18,17,16,17, + 16,18,15,10,12,12,14,14,12,13,13,14,14,12,13,13, + 14,14,13,14,14,15,15,13,14,14,16,15,11,12,13,14, + 14,12,13,13,15,15,12,13,13,15,15,13,14,15,15,16, + 14,15,15,16,16,12,13,13,14,14,13,13,14,15,15,13, + 14,13,15,15,14,15,15,16,16,14,15,14,16,15,13,14, + 14,15,15,13,14,14,15,16,14,14,15,16,16,14,15,15, + 15,17,15,16,16,17,17,13,14,14,15,15,14,15,15,16, + 16,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16, + 11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,13, + 14,14,15,16,13,14,14,16,15,12,13,13,14,15,13,13, + 14,15,15,13,14,14,15,15,14,14,15,15,17,14,15,15, + 16,16,12,13,13,15,15,13,14,14,15,15,13,14,13,15, + 15,14,15,15,16,17,14,15,15,16,16,13,13,14,15,16, + 14,14,15,15,16,14,15,15,16,16,15,15,16,15,18,15, + 16,16,17,17,14,15,15,16,16,15,15,15,16,16,14,15, + 15,17,16,16,16,16,17,17,15,16,16,17,16,10,12,12, + 14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15, + 16,14,15,14,16,15,12,13,13,15,14,13,13,14,15,15, + 13,14,14,15,15,14,14,15,15,16,14,15,15,16,16,12, + 13,13,15,15,13,14,14,15,16,13,14,13,15,14,15,15, + 15,16,16,14,15,15,16,15,13,14,14,16,15,14,14,14, + 15,16,14,15,15,16,16,15,15,16,15,17,16,17,16,17, + 17,14,14,15,15,16,15,15,16,16,16,14,15,14,16,15, + 16,16,16,17,17,15,16,15,17,15,11,13,13,14,15,13, + 13,14,15,15,13,14,13,15,15,14,15,15,15,16,14,15, + 15,17,15,13,13,14,15,15,13,14,15,15,16,14,14,14, + 16,16,15,14,16,15,17,15,16,16,17,16,13,14,14,15, + 15,14,14,14,16,16,13,15,14,16,15,15,15,16,17,17, + 15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15, + 16,16,16,17,16,16,17,15,18,16,17,17,17,17,14,15, + 15,16,16,15,16,16,17,17,15,16,15,17,16,16,17,17, + 18,18,16,17,15,18,16,10,12,12,14,14,13,13,14,14, + 15,13,14,13,15,14,14,15,15,15,16,15,15,15,16,15, + 12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15, + 14,15,14,17,15,16,16,17,16,12,13,13,14,15,14,14, + 15,15,16,13,14,12,16,14,15,16,16,16,17,15,16,14, + 17,15,14,15,14,16,15,14,14,15,15,15,15,16,15,17, + 16,15,14,16,14,16,16,17,17,18,17,14,14,15,15,16, + 15,16,16,16,17,14,15,14,16,15,16,16,17,17,17,15, + 16,14,17,14,10,12,12,14,13,12,13,13,14,14,11,13, + 12,14,14,13,14,14,15,16,13,14,14,16,15,12,13,13, + 14,14,13,13,14,15,15,13,14,13,15,15,14,14,15,15, + 16,14,15,15,16,16,11,13,12,14,14,12,13,13,15,15, + 12,13,13,15,15,14,15,15,16,16,13,14,14,16,15,13, + 14,14,15,15,14,15,15,15,16,14,15,15,16,16,15,16, + 16,16,17,16,16,16,17,17,13,14,14,15,15,14,15,15, + 16,16,13,14,14,16,15,15,16,16,17,17,15,15,15,17, + 15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14, + 14,14,15,15,16,14,14,14,16,15,12,13,13,15,14,13, + 13,14,15,15,13,14,14,16,15,14,15,15,15,16,15,15, + 15,16,16,12,13,13,14,15,13,13,14,15,15,13,14,13, + 15,15,15,15,15,16,16,14,15,14,16,15,14,14,15,16, + 16,14,15,15,15,16,15,16,15,16,16,15,15,16,15,17, + 16,16,16,17,17,13,14,14,15,16,14,15,15,16,16,14, + 14,14,16,16,16,16,16,17,17,15,15,15,17,15,11,12, + 12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,14, + 15,16,13,14,14,16,15,12,13,13,15,15,13,13,14,15, + 16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16, + 12,13,13,15,14,13,14,14,15,15,13,14,13,15,15,14, + 15,15,16,16,14,15,14,17,15,14,15,15,16,16,14,15, + 15,16,17,15,15,15,17,17,15,16,16,16,17,16,17,16, + 17,17,13,15,14,16,15,14,15,15,16,16,14,15,14,16, + 15,16,16,16,17,17,15,16,15,17,15,10,12,12,14,14, + 13,13,14,14,15,13,14,13,15,14,14,15,15,15,17,14, + 15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15, + 14,16,15,15,14,16,15,17,15,16,16,17,16,12,13,13, + 14,15,14,14,15,15,16,12,14,12,15,14,15,16,16,16, + 17,15,16,14,17,14,14,15,14,16,16,14,14,15,15,16, + 15,16,16,17,16,15,14,16,14,17,16,17,17,18,17,14, + 14,15,15,16,15,15,16,16,17,14,15,14,16,15,16,17, + 17,17,18,15,16,14,17,14,11,13,13,15,14,13,13,14, + 15,15,12,14,13,15,15,14,15,15,15,17,14,15,14,16, + 15,13,14,14,15,15,13,14,15,15,16,14,15,14,16,16, + 15,15,16,16,17,15,16,16,17,17,13,14,13,15,15,14, + 14,14,16,16,13,15,14,16,15,15,16,16,17,17,15,16, + 14,17,15,15,15,15,16,17,15,15,16,16,17,15,16,16, + 17,17,16,15,17,16,17,17,17,17,18,18,14,15,15,17, + 15,15,16,16,17,16,15,16,15,17,15,16,17,17,17,17, + 16,17,15,18,15, +}; + +static const static_codebook _44p7_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p7_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p7_p5_0, + 0 +}; + +static const long _vq_quantlist__44p7_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p7_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p7_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p7_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p7_p5_1, + 0 +}; + +static const long _vq_quantlist__44p7_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p6_0[] = { + 2, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 8, + 9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, + 10, 8, 9, 9, 8, 9,10, 9, 9,11,10,10,11, 8,10, 9, + 10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, + 9,10, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, + 9, 6, 8, 8, 7, 9, 9, 8, 9, 9, 7, 9, 9, 9, 9,10, + 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, + 10,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, + 10,10,11,11,10,11,10, 6, 9, 8, 9,10,10, 9,10, 9, + 8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, + 11, 9, 6, 8, 8, 8, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, + 10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 6, 8, 9, + 9, 9,10, 9,10,10, 9,10,10, 9, 9,11,10,11,11, 8, + 10,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, + 10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, + 10,11, 9, +}; + +static const static_codebook _44p7_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p7_p6_0, + 0 +}; + +static const long _vq_quantlist__44p7_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p6_1[] = { + 4, 7, 7, 6, 7, 8, 6, 8, 7, 7, 7, 8, 7, 7, 8, 8, + 8, 8, 7, 7, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, + 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, + 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, + 8, 9, 8, 9, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, + 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, + 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, + 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 9, 9, 9, + 8, 9, 8, +}; + +static const static_codebook _44p7_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p7_p6_1, + 0 +}; + +static const long _vq_quantlist__44p7_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p7_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p7_0, + 1, -513979392, 1633504256, 2, 0, + (long *)_vq_quantlist__44p7_p7_0, + 0 +}; + +static const long _vq_quantlist__44p7_p7_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p7_p7_1[] = { + 1, 5, 5, 4,10,10, 5,10,10, 5,10,10,10,10,10,10, + 10,10, 5,10,10,10,10,10, 9,10,10, 6,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10, 7,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,11,11, +}; + +static const static_codebook _44p7_p7_1 = { + 5, 243, + (long *)_vq_lengthlist__44p7_p7_1, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44p7_p7_1, + 0 +}; + +static const long _vq_quantlist__44p7_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p7_p7_2[] = { + 1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p7_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p7_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p7_p7_2, + 0 +}; + +static const long _vq_quantlist__44p7_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p7_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p7_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p7_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p7_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p7_short[] = { + 3, 9,14,16,17,19,22,22, 5, 4, 6, 9,11,13,17,20, + 9, 5, 5, 6, 9,11,15,19,11, 7, 5, 5, 7, 9,13,17, + 14, 9, 7, 6, 6, 7,11,14,16,11, 9, 7, 6, 4, 4, 8, + 19,15,13,11, 9, 4, 3, 4,21,16,16,15,12, 6, 4, 4, +}; + +static const static_codebook _huff_book__44p7_short = { + 2, 64, + (long *)_huff_lengthlist__44p7_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p8_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p8_l0_0[] = { + 2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, + 7, 7, 9, 9,10, 9,12,10,12,12, 4, 5, 5, 7, 7, 9, + 9, 9,10,10,12,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, + 12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, + 12, 8, 9, 9, 9, 9, 9, 9,11, 7,11, 7,11, 9, 8, 9, + 9, 9, 9, 9, 9, 7,10, 7,11, 9,11,10,10,10,10,10, + 10,10,11,10,11, 8,12, 9,10,10,10,10,10,10,10,10, + 11, 8,11, 9,12,10,11,11,11,11,11,11,11,11,12,10, + 12,11,10,11,11,11,11,11,11,11,11,10,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12, + 12,12,12,12,12,12,11,12,12, +}; + +static const static_codebook _44p8_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p8_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p8_l0_0, + 0 +}; + +static const long _vq_quantlist__44p8_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p8_l0_1[] = { + 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p8_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p8_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p8_l0_1, + 0 +}; + +static const long _vq_quantlist__44p8_l1_0[] = { + 54, + 29, + 79, + 0, + 108, +}; + +static const long _vq_lengthlist__44p8_l1_0[] = { + 1, 2, 3, 6, 7, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44p8_l1_0 = { + 2, 25, + (long *)_vq_lengthlist__44p8_l1_0, + 1, -514516992, 1620639744, 7, 0, + (long *)_vq_quantlist__44p8_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p8_lfe[] = { + 2, 3, 1, 3, +}; + +static const static_codebook _huff_book__44p8_lfe = { + 2, 4, + (long *)_huff_lengthlist__44p8_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p8_long[] = { + 2, 7,14,16,17,18,20,21, 7, 4, 6, 8,11,12,14,16, + 13, 5, 4, 4, 8, 9,11,13,15, 8, 4, 3, 5, 7, 9,10, + 17,11, 8, 4, 4, 6, 9, 9,17,11, 9, 7, 6, 5, 7, 8, + 19,13,11, 9, 9, 7, 8, 8,21,15,13,11,10, 8, 8, 7, +}; + +static const static_codebook _huff_book__44p8_long = { + 2, 64, + (long *)_huff_lengthlist__44p8_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p8_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p1_0[] = { + 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, + 10, 8, 9,10, 8, 9,10,10,10,12,10,11,12, 8,10,10, + 10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, + 10,10,10,11,11,10,12,11, 8,10, 9,10,12,11,10,12, + 10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, + 9,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, + 10,11, 9,11,11, 9, 9,11,10,11,12,10,11,12, 9,11, + 11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, + 9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, + 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, + 12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, + 10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, + 10,11,12,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, + 10, 9,11,11,11,12,12,11,12,12, 9,11, 9,10,12,11, + 10,12,11, +}; + +static const static_codebook _44p8_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p8_p1_0, + 0 +}; + +static const long _vq_quantlist__44p8_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p8_p2_0[] = { + 4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, + 9,10,12,12, 8,10, 9,12,12, 6, 8, 8,10,10, 8, 8, + 9,10,11, 8, 9, 9,11,11, 9,10,11,12,13,10,11,11, + 13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, + 10,10,11,11,13,13, 9,11,10,13,12, 9,10,10,12,12, + 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,12, + 13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, + 10,13,12,12,13,13,14,15,12,13,12,15,12, 7, 8, 8, + 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,11,13, + 14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,11,13, + 9,10,10,12,12,11,11,12,13,15,11,12,12,14,14, 8, + 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, + 12,14,15,11,12,12,14,14,10,11,12,13,13,11,12,12, + 13,14,12,12,12,14,14,13,13,14,14,16,14,14,14,16, + 15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13, + 14,14,14,15,16,13,14,13,16,14, 7, 8, 8,11,10, 8, + 9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,11, + 11,14,13, 8, 9, 9,12,11, 9,10,10,12,12, 9,11,10, + 13,12,11,12,12,13,14,11,12,12,15,14, 8, 9, 9,12, + 11, 9,10,10,12,12, 9,11,10,13,11,11,12,12,14,14, + 11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,12, + 13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11, + 11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14, + 15,15,13,14,13,16,14, 9,10,11,12,13,11,11,12,12, + 14,11,11,12,13,14,13,13,14,14,16,13,13,14,15,15, + 11,11,12,12,14,12,12,13,13,15,12,12,13,13,15,14, + 14,15,15,16,14,14,14,15,16,11,12,12,13,14,12,12, + 13,14,15,12,13,12,14,14,14,14,15,15,16,14,14,14, + 16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16, + 16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, + 14,14,15,16,16,14,15,14,16,16,16,16,16,17,18,15, + 16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, + 11,14,12,13,14,13,15,14,13,14,13,16,14,11,12,12, + 14,13,12,12,13,14,14,12,13,12,15,14,14,14,14,16, + 16,14,15,14,17,15,11,12,11,14,12,12,13,12,15,13, + 12,13,12,15,13,14,14,14,16,15,14,15,14,16,15,13, + 14,14,15,15,14,14,15,16,16,14,15,14,16,16,15,15, + 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, + 16,16,14,15,14,17,15,16,16,16,17,17,15,16,15,18, + 16, 7, 8, 8,10,11, 8, 9, 9,11,12, 8, 9, 9,12,11, + 10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,11, 9, + 10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11,12, + 12,14,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, + 13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, + 13,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, + 13,14,14,16,15,10,12,11,13,13,12,12,12,14,14,11, + 12,12,14,13,14,14,14,15,16,13,14,14,16,14, 8, 9, + 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,11,12, + 13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, + 13,10,10,11,12,13,12,12,13,14,15,12,12,13,14,15, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, + 13,13,15,15,12,13,13,15,14,11,11,12,13,14,12,12, + 13,13,15,12,12,13,14,15,14,14,15,14,16,14,14,15, + 15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15, + 14,14,15,15,16,16,14,15,14,17,15, 8, 9, 9,11,11, + 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, + 13,12,15,13, 9,10,10,12,12,10,10,11,12,13,10,12, + 11,13,13,12,12,13,13,15,12,13,13,15,14, 9,10,10, + 12,12,11,11,12,13,13,10,12,10,13,12,12,13,13,15, + 15,12,13,13,15,13,11,12,12,14,14,12,12,13,14,14, + 12,13,13,15,14,13,13,14,13,16,14,15,14,16,16,11, + 12,12,14,14,13,13,13,15,15,12,13,12,15,14,14,15, + 15,16,17,14,15,13,16,13,10,11,11,13,14,11,12,12, + 13,15,11,12,12,14,14,13,14,14,15,16,13,14,14,16, + 16,11,11,12,12,14,12,12,13,13,15,12,13,13,13,15, + 14,14,15,14,17,14,14,15,15,16,11,12,12,14,14,12, + 13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15, + 15,16,16,13,14,14,14,16,14,14,15,14,17,14,15,15, + 14,17,16,16,17,15,18,16,16,17,16,18,13,14,14,16, + 16,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18, + 16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, + 13,12,15,14,14,14,14,16,15,14,15,14,16,15,11,12, + 12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, + 16,16,14,15,15,17,15,11,12,12,14,14,13,13,13,15, + 15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15, + 13,14,14,16,15,14,15,15,16,16,15,15,15,17,16,16, + 16,16,16,17,16,17,16,18,17,14,14,14,16,16,15,15, + 15,16,16,14,15,14,17,16,16,17,17,17,18,16,17,16, + 18,16, 7, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, + 11,10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, + 9,10,11,12,13, 9,11,10,13,12,11,12,12,13,14,11, + 12,12,14,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,12, + 13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14, + 16,13,14,14,16,15,10,11,11,13,13,11,12,12,14,14, + 11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 8, + 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, + 13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, + 12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, + 15, 9,10,10,12,12,10,11,12,13,14,10,11,10,13,12, + 12,13,13,14,15,12,13,12,15,13,12,12,12,14,14,12, + 12,13,14,15,13,13,13,15,15,14,14,15,13,16,14,15, + 15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, + 14,14,14,14,15,16,16,13,14,13,16,14, 8, 9, 9,11, + 11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, + 11,12,11,14,14, 9,10,10,12,12,10,11,11,13,13,10, + 11,11,13,13,12,13,13,14,15,12,13,13,15,14, 9,10, + 9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, + 15,14,12,13,12,15,14,11,12,12,14,14,12,13,13,14, + 15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16, + 11,12,11,14,13,12,13,12,15,14,12,13,12,15,13,14, + 15,14,16,15,13,15,14,17,14,10,11,11,13,14,11,12, + 13,13,15,11,12,12,14,14,14,14,15,15,17,13,14,14, + 15,16,11,12,12,14,14,12,12,13,14,15,13,13,13,15, + 15,14,15,15,15,17,15,15,15,16,16,11,12,12,13,14, + 13,13,14,14,15,12,13,13,14,15,14,15,15,16,17,14, + 15,15,16,16,14,14,14,16,16,14,14,15,15,17,15,15, + 15,17,16,16,16,17,16,18,16,17,17,18,17,13,14,14, + 15,16,14,15,15,16,17,14,15,15,16,16,16,17,17,17, + 18,16,16,16,17,16,10,11,11,14,13,11,12,12,14,14, + 11,12,12,15,13,13,14,14,16,15,13,14,14,16,15,11, + 12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15, + 15,16,17,14,15,15,17,16,11,12,11,14,12,12,13,13, + 15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,17, + 14,13,14,14,16,16,14,15,15,16,17,14,15,15,16,17, + 16,16,17,17,18,16,17,17,18,18,13,14,14,16,13,14, + 15,15,17,14,14,15,14,17,14,16,17,16,17,16,16,17, + 16,18,15, 8,11,11,13,13,10,12,12,14,14,11,12,12, + 14,14,13,13,14,15,16,13,14,14,16,15,10,11,11,14, + 14,11,12,12,14,15,11,12,12,15,14,13,14,14,15,16, + 13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, + 13,12,15,14,14,14,15,16,16,14,15,14,16,16,12,13, + 13,15,15,12,13,14,15,16,13,14,14,16,16,14,15,15, + 16,17,15,15,16,17,17,13,14,14,16,15,14,15,15,16, + 16,14,15,14,16,16,16,16,16,17,17,15,16,16,18,16, + 10,11,11,13,14,11,12,12,14,15,11,12,12,15,14,13, + 14,14,16,16,13,14,14,16,16,11,11,12,14,14,12,12, + 13,14,15,12,13,13,15,15,14,14,15,15,17,14,14,15, + 16,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15, + 15,14,15,15,17,17,14,15,15,17,16,13,12,14,14,16, + 13,13,15,14,17,14,13,15,15,17,15,14,16,15,18,16, + 15,16,16,18,13,14,14,16,16,14,15,15,17,17,14,15, + 15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, + 14,13,11,12,12,14,14,11,13,12,15,14,13,14,14,15, + 16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15, + 12,13,13,15,15,14,14,15,15,16,14,15,15,17,16,11, + 12,12,14,14,13,13,13,15,15,12,13,13,15,14,14,15, + 15,16,17,14,15,14,17,15,13,14,13,16,15,14,14,14, + 15,16,14,15,14,16,16,15,15,16,16,17,16,16,16,18, + 17,14,14,14,16,16,15,15,15,17,16,14,15,14,17,16, + 16,16,17,17,18,16,17,16,18,16,11,13,13,15,15,12, + 13,14,15,16,12,14,14,15,15,14,15,15,16,17,14,15, + 15,17,17,12,13,14,14,16,13,14,14,14,16,14,14,14, + 15,16,15,15,16,15,18,15,16,16,17,17,13,14,14,16, + 16,14,14,15,16,16,14,15,14,16,16,15,16,16,17,18, + 15,16,16,18,17,14,14,16,13,17,15,15,16,14,18,15, + 15,16,14,18,16,16,18,15,19,17,17,18,16,18,15,16, + 15,17,17,15,16,17,18,18,16,16,16,18,17,17,18,18, + 19,19,17,18,17,19,18,11,12,12,15,14,13,13,14,15, + 16,13,14,13,16,14,15,15,15,16,17,15,16,15,17,16, + 12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, + 15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, + 15,16,16,13,14,13,16,15,16,16,16,17,18,15,16,15, + 17,16,14,15,14,17,15,14,15,15,16,16,15,16,15,17, + 16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,17, + 16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, + 17,16,18,15, 8,11,11,13,13,11,12,12,14,14,10,12, + 12,14,14,13,14,14,15,16,13,14,13,16,15,11,12,12, + 14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15, + 16,14,14,14,16,16,10,11,11,14,14,11,12,12,14,15, + 11,12,12,15,14,13,14,14,16,16,13,14,14,16,15,13, + 14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, + 16,16,18,16,16,16,17,17,12,13,13,15,15,13,14,14, + 16,16,12,14,13,16,15,15,16,15,17,17,14,16,15,17, + 16,10,11,11,13,14,11,12,13,14,15,11,13,12,14,14, + 14,14,15,16,16,13,14,14,16,16,11,12,12,14,14,12, + 13,13,14,15,13,14,13,15,15,14,15,15,16,17,14,15, + 15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,12, + 15,14,14,15,15,16,17,14,15,15,16,16,14,14,14,16, + 16,14,14,15,16,16,15,15,15,16,16,16,16,17,16,18, + 16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,13, + 14,14,16,16,16,16,17,17,18,15,16,15,17,16,10,11, + 11,14,13,11,12,12,14,14,11,12,12,15,14,13,14,14, + 16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15, + 15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16, + 11,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14, + 15,14,16,16,14,15,14,17,16,14,14,14,16,16,14,15, + 15,16,17,14,15,15,17,17,16,16,17,17,18,16,17,17, + 18,18,13,14,12,16,14,14,15,13,17,15,13,15,13,17, + 14,16,16,15,18,16,15,17,14,18,15,11,12,12,14,15, + 13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, + 16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15, + 14,16,16,15,15,16,15,18,16,16,16,18,17,12,13,13, + 15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,16, + 18,15,16,15,17,16,15,15,15,17,16,15,15,16,16,17, + 16,16,16,18,17,16,16,17,15,18,17,18,17,19,18,14, + 14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, + 18,17,19,16,17,15,17,15,11,13,12,15,15,12,14,14, + 15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17, + 16,12,14,14,16,16,14,14,15,16,16,14,14,14,16,16, + 15,16,17,17,18,15,16,16,18,17,12,14,13,16,14,13, + 14,14,16,15,13,15,14,16,14,15,16,16,17,17,15,16, + 15,18,15,15,15,16,17,17,15,16,16,17,18,16,16,16, + 18,18,17,17,18,18,19,17,17,18,19,19,14,15,14,17, + 13,15,16,15,18,14,15,16,15,18,14,17,18,17,18,16, + 16,18,16,19,15, +}; + +static const static_codebook _44p8_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p8_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p8_p2_0, + 0 +}; + +static const long _vq_quantlist__44p8_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p3_0[] = { + 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 7, 9, + 10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8,10, 9, + 10,11,12, 9,11,10, 5, 8, 7, 8,10, 9, 7,10, 9, 8, + 9,10, 9,10,11,10,12,11, 8,10, 9,10,11,11, 9,12, + 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, + 9,11,11, 8,10, 9,10,11,11,10,12,10, 7, 9,10, 9, + 10,12, 9,11,11, 9, 9,12,11,10,13,11,11,13,10,12, + 11,11,13,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,11, + 9,11,10,10,11,12,11,13,12, 9,11,11,12,13,13,11, + 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,10, + 12,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, + 9,11,12, 9,11,11, 9,11,11,11,11,13,12,13,13, 9, + 10,11,11,12,13,10,12,11, 7,10, 9, 9,11,11, 9,12, + 10,10,11,12,11,12,13,12,13,13, 9,12, 9,11,13,11, + 10,13,10, +}; + +static const static_codebook _44p8_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p8_p3_0, + 0 +}; + +static const long _vq_quantlist__44p8_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p3_1[] = { + 6, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, + 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, + 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, + 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, + 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, + 8, 9, 8, +}; + +static const static_codebook _44p8_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p8_p3_1, + 0 +}; + +static const long _vq_quantlist__44p8_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p4_0[] = { + 2, 5, 5, 4, 7, 8, 4, 8, 7, 5, 7, 8, 7, 7,10, 8, + 9, 9, 5, 7, 7, 8, 9, 9, 7,10, 7, 5, 7, 8, 8, 9, + 11, 8,10,10, 8, 9,10,10,10,12,11,12,12, 8,10,10, + 10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,11, 9, 8, + 10,10,10,11,12,10,12,12, 8,10, 9,11,12,12,10,12, + 10, 5, 8, 8, 7,10,10, 8,11,10, 7, 9,10, 9,10,12, + 10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, + 11,12,10,12,11, 9, 9,12,10,10,13,12,12,13,10,12, + 11,12,13,13,11,13,11, 7,10, 9,10,11,12,10,13,11, + 9,11,11,11,11,13,12,14,13,10,11,11,12,14,14,11, + 14,11, 5, 8, 8, 8,10,11, 7,10,10, 8,10,10,10,11, + 12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, + 10,11,13,10,12,11,10,11,11,11,11,14,12,14,14, 9, + 11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, + 10,10,11,12,11,11,13,12,13,13, 9,12, 9,12,13,12, + 10,13,10, +}; + +static const static_codebook _44p8_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p8_p4_0, + 0 +}; + +static const long _vq_quantlist__44p8_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p8_p4_1[] = { + 7, 9, 9,10,10, 9,10,10,10,11, 9,10,10,11,10, 9, + 10,10,11,11, 9,10,10,11,11, 9,10,10,11,11,10,10, + 10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, + 11,11, 9,10,10,11,11,10,10,10,11,11, 9,10,10,11, + 11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, + 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,12,10,11,11,11,11,11,11,11,11,11,10,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11, 9,10,10, + 11,11,10,10,11,11,11,10,10,11,11,11,10,11,11,11, + 12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12, + 11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, + 11,11,11,11,11,11,11,12,12,10,11,11,12,12,11,12, + 11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11,10, + 11,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, + 11,12,11,10,11,11,11,11,10,11,11,11,12,11,11,11, + 12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, + 11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12, + 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, + 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,10,11,11,11,11,11,11,11,12,12,11,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13, + 12, 9,10,10,11,11,10,10,11,11,11,10,11,10,11,11, + 10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10, + 11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, + 11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, + 12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,11, + 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, + 11,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,10, + 11,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11, + 12,12,11,11,12,12,12,10,11,11,11,12,11,11,12,12, + 12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12, + 11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11, + 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11, + 10,11,11,11,12,10,11,11,12,11,11,12,11,12,12,11, + 12,11,12,12,10,11,11,12,11,11,11,11,12,12,11,12, + 11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11, + 12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12, + 12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12, + 12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12, + 12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, + 12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13, + 12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, + 13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12, + 12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13, + 13,13, 9,10,10,11,11,10,10,11,11,11,10,11,10,11, + 11,10,11,11,12,12,10,11,11,12,12,10,11,11,11,11, + 10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, + 11,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11, + 11,12,11,11,12,11,12,12,11,11,11,12,12,11,11,11, + 11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12, 9, + 10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,11, + 12,12,12,11,11,12,12,12,10,11,11,12,12,11,11,12, + 12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12, + 11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,11,11,12,12,12,12,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11, + 11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, + 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, + 11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, + 11,12,11,11,12,11,12,12,11,12,11,12,12,11,12,12, + 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,11, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12, + 12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12, + 12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, + 12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13, + 13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, + 12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,13, + 12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, + 12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13, + 13,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, + 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, + 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, + 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12, + 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, + 12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12, + 12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12, + 12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11, + 12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12, + 12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,13,12,12,12,12,12,13,12,13,12,13, + 13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12, + 12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11, + 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13, + 12,12,12,13,12,12,12,12,12,12,12,12,13,12,13,12, + 12,12,12,13,12,12,13,12,13,12,13,13,12,13,12,12, + 12,12,12,12,13,13,13,12,12,12,12,13,12,12,13,13, + 13,13,12,13,13,13,12,11,11,11,12,12,11,12,12,12, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,13,12,12,13,13,13,11,12,12,12,12,12,12, + 12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12, + 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,13,12,13,12,13,13,13,12,12,12,12,12,12, + 12,13,12,13,12,12,12,12,13,12,12,13,13,13,12,12, + 13,12,13,12,10,11,11,12,12,11,11,11,12,12,11,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, + 12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, + 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, + 12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12, + 12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12, + 12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13, + 12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12, + 12,12,12,12,12,12,13,13,13,12,12,12,13,12,11,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, + 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, + 12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12, + 12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13, + 13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13, + 12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12, + 11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12, + 12,13,13,12,12,13,12,13,12,12,13,13,13,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13, + 12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12, + 12,12,12,12,12,12,13,12,13,12,12,12,12,12,12,13, + 13,12,12,12,13,12,12,12,11,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13, + 12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13, + 12,13,12,12,12,12,12,12,12,12,12,12,13,12,13,12, + 13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12, + 12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12, + 12,13,12,13,12, +}; + +static const static_codebook _44p8_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p8_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p8_p4_1, + 0 +}; + +static const long _vq_quantlist__44p8_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p8_p5_0[] = { + 2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, + 10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, + 10,10,12, 8, 9, 9,12,12,10,10,12,12,14,10,12,12, + 14,13, 6, 8, 7,11,10, 8, 9, 9,12,12, 7,10, 8,12, + 11,10,12,12,13,14,10,12,10,14,12, 9,10,11,11,13, + 10,10,11,11,13,11,12,12,13,14,12,12,13,11,15,13, + 14,14,15,14, 9,11,10,13,11,11,12,12,13,13,10,11, + 10,13,11,13,14,14,15,15,12,13,12,15,11, 6, 8, 9, + 11,12, 8, 9,11,12,13, 8,10,10,13,13,11,12,13,14, + 15,11,12,13,14,14, 9, 9,10,12,13,10,10,12,12,14, + 10,11,11,13,14,12,12,14,14,15,13,13,14,15,15, 9, + 10,10,13,13,10,11,11,13,14,10,11,10,14,13,13,13, + 14,15,15,12,14,13,15,14,12,12,13,13,14,12,13,14, + 13,15,13,14,14,15,15,14,14,15,14,16,15,15,15,16, + 16,12,13,13,14,14,13,14,14,15,15,12,14,13,15,14, + 14,15,15,16,16,14,15,14,16,14, 6, 9, 8,12,11, 8, + 10,10,13,13, 8,11, 9,13,12,11,12,12,14,14,11,13, + 12,15,14, 9,10,10,13,13,10,10,11,13,14,10,12,11, + 14,13,12,13,14,14,15,13,13,13,15,14, 9,10, 9,13, + 12,10,11,11,14,13,10,12,10,14,12,13,14,13,15,15, + 12,14,12,15,14,12,13,13,14,14,13,13,13,14,15,13, + 14,14,15,15,14,14,15,14,16,14,15,15,16,16,12,13, + 12,14,13,13,14,14,15,15,12,14,13,15,13,15,15,15, + 16,16,14,15,14,16,14,11,12,12,13,14,12,13,14,14, + 16,12,13,13,15,15,14,14,16,15,17,14,15,15,16,16, + 12,13,14,14,15,13,13,15,15,16,14,14,14,15,16,15, + 15,16,16,17,15,15,16,16,17,13,13,13,15,15,14,14, + 15,15,16,13,14,14,15,16,15,15,16,16,17,15,16,15, + 17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17, + 17,16,16,17,16,18,16,17,17,17,17,15,15,15,16,16, + 15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16, + 17,16,17,16,11,12,12,15,13,13,13,13,15,15,12,14, + 13,16,14,14,15,15,16,16,14,15,14,17,15,13,13,13, + 15,14,13,14,14,16,15,14,14,14,16,15,15,15,16,16, + 17,15,16,15,17,16,12,14,13,15,14,14,14,14,16,15, + 13,14,13,16,15,15,16,16,17,16,15,16,15,17,16,15, + 15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16, + 17,17,17,17,17,17,18,17,14,15,15,16,16,15,16,16, + 17,16,15,16,15,17,16,17,17,17,18,17,16,17,16,18, + 16, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13,12, + 10,12,12,14,15,11,13,12,15,14, 8, 9,10,12,13, 9, + 10,11,13,14,10,11,11,14,13,12,12,13,14,15,12,13, + 13,15,15, 8,10,10,13,13,10,11,11,13,14,10,12,10, + 14,13,12,13,13,15,15,12,14,13,15,14,11,12,12,13, + 14,12,12,13,13,15,12,13,13,15,15,14,13,15,14,16, + 14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12, + 14,13,15,14,14,15,15,16,15,14,15,14,16,14, 7, 9, + 10,12,12, 9,10,11,13,14, 9,11,10,13,13,11,12,13, + 14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, + 14,11,11,12,14,14,12,12,14,14,15,13,13,14,15,15, + 9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, + 14,14,15,15,13,14,13,16,14,12,12,13,14,15,13,13, + 14,14,16,13,14,14,15,15,14,14,15,14,17,14,15,15, + 16,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16, + 14,15,15,15,16,16,14,15,14,16,14, 7,10, 9,13,12, + 10,11,12,12,14,10,12,11,14,12,12,13,13,14,15,12, + 14,13,15,14, 9,11,10,13,13,10,11,12,13,14,12,13, + 12,15,13,13,13,14,13,15,13,14,14,16,15,10,11,11, + 13,13,12,12,13,14,14,11,12,11,14,13,14,14,14,15, + 16,13,14,13,16,13,12,13,13,14,14,12,13,13,14,15, + 14,14,14,15,15,14,13,15,13,16,15,15,15,17,16,13, + 13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,16, + 16,16,16,14,15,14,16,13,11,12,13,14,15,12,13,14, + 15,16,13,14,14,15,15,14,14,15,15,17,14,15,15,16, + 16,13,13,14,14,15,13,13,15,14,16,14,14,15,15,16, + 15,14,16,15,17,15,16,16,16,17,13,14,14,15,15,14, + 14,15,16,16,13,15,14,16,16,15,16,16,17,17,15,16, + 15,17,16,14,15,15,15,17,15,15,16,15,17,15,16,16, + 16,17,16,16,17,16,18,17,17,17,17,18,15,15,15,17, + 16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18, + 16,17,16,18,17,11,13,12,15,14,13,13,14,15,15,13, + 14,13,16,14,15,15,15,16,16,15,16,15,17,16,13,14, + 13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16, + 16,16,15,16,15,18,16,13,14,14,15,15,14,15,15,15, + 16,13,15,13,16,15,15,16,16,17,17,15,16,15,17,16, + 15,15,15,16,16,15,15,15,16,17,16,16,16,17,16,16, + 16,17,16,17,17,17,17,18,17,15,15,15,16,16,16,16, + 16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16, + 17,15, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13, + 12,11,12,13,14,15,10,12,12,14,14, 9,10,10,13,13, + 10,10,12,13,14,10,11,11,14,13,12,13,14,14,15,12, + 13,13,15,15, 8,10, 9,13,12,10,11,11,13,14, 9,11, + 10,14,13,12,13,13,15,15,12,13,12,15,14,12,13,13, + 14,14,12,13,13,14,15,13,14,14,14,15,14,14,15,14, + 16,14,15,15,16,16,11,12,12,14,13,13,13,13,15,15, + 12,13,12,15,13,14,15,15,16,16,14,15,14,16,14, 7, + 9,10,12,13,10,10,12,12,14,10,12,11,14,13,12,13, + 14,14,15,12,13,13,15,14,10,11,11,13,13,11,11,12, + 13,14,12,13,12,14,14,13,13,14,13,16,14,14,14,15, + 15, 9,10,11,13,14,12,12,13,13,15,10,12,10,14,13, + 13,14,14,15,16,13,14,13,15,13,13,14,13,14,15,12, + 13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,16, + 16,16,16,12,13,13,14,14,14,14,14,15,15,12,13,13, + 15,14,15,15,16,16,16,14,15,13,16,13, 7,10, 9,12, + 12, 9,10,11,13,13, 9,11,10,14,13,12,13,13,14,15, + 11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, + 12,12,14,14,13,13,14,14,16,13,14,14,16,15, 9,11, + 10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, + 15,15,12,14,12,16,14,12,13,13,14,15,13,13,14,14, + 16,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16, + 12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,14, + 15,15,16,16,14,15,14,17,14,11,12,13,14,15,13,13, + 14,14,16,13,14,13,15,15,15,15,16,16,17,15,15,15, + 16,16,13,14,13,15,15,13,13,15,15,16,14,15,15,16, + 16,15,15,16,15,17,16,16,16,17,17,13,13,14,14,15, + 14,14,15,15,16,13,14,13,15,15,15,16,16,16,17,15, + 16,15,16,16,15,15,15,16,16,15,15,16,16,17,16,16, + 16,17,17,16,16,17,16,18,17,17,17,18,18,15,15,15, + 16,16,16,16,16,17,17,15,15,15,16,16,17,17,17,17, + 18,16,16,16,17,15,11,13,12,15,14,13,13,14,15,15, + 12,14,13,16,14,14,15,15,16,16,14,15,14,16,15,13, + 14,14,15,15,13,14,14,16,16,14,15,14,16,16,15,15, + 16,17,17,15,16,16,17,17,13,14,13,15,14,14,14,14, + 16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17, + 15,14,16,15,16,17,15,16,16,16,17,15,16,16,17,17, + 16,16,17,17,18,16,17,17,18,17,14,15,15,17,15,15, + 16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17, + 16,18,15,10,12,12,14,14,12,13,13,15,15,12,13,13, + 15,15,13,14,14,15,16,14,15,14,16,16,12,13,13,15, + 15,12,13,14,15,15,13,14,14,15,15,14,14,15,16,17, + 14,15,15,17,16,12,13,13,15,15,13,14,14,15,16,13, + 14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14, + 14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16, + 16,17,15,16,16,17,17,14,15,15,16,16,15,15,15,16, + 16,15,15,15,16,16,16,17,16,17,17,16,16,16,18,16, + 11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,13, + 14,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13, + 14,15,16,13,14,14,15,16,14,14,15,16,17,15,15,15, + 16,17,12,13,13,15,15,13,14,14,15,16,13,14,14,16, + 15,15,15,15,16,17,15,16,15,17,16,14,14,15,15,16, + 14,14,15,15,17,15,15,16,16,17,15,15,16,15,18,16, + 16,16,17,17,14,15,15,16,16,15,16,16,17,17,15,15, + 15,17,16,16,17,16,17,17,16,16,16,18,16,11,12,12, + 14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16, + 16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,15, + 14,14,14,16,15,15,15,15,15,16,15,16,15,17,16,12, + 13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15, + 16,16,17,15,16,15,17,15,14,15,14,16,16,14,15,15, + 16,16,15,16,15,17,16,15,15,16,15,17,16,17,16,17, + 17,14,15,15,16,16,15,16,16,16,17,14,15,15,16,16, + 16,17,17,17,18,16,16,16,17,16,12,13,13,15,15,13, + 13,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15, + 15,17,16,13,14,14,15,16,14,14,15,15,17,14,15,15, + 16,16,15,14,16,15,17,15,16,16,17,17,13,14,14,16, + 16,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17, + 15,16,15,17,16,15,15,16,15,17,15,15,16,15,17,15, + 16,16,16,17,16,15,17,15,18,17,17,17,17,17,15,15, + 15,17,17,16,16,16,17,17,15,16,15,17,17,16,17,17, + 18,18,16,17,15,18,15,11,12,12,15,15,13,13,15,14, + 16,13,14,13,16,14,15,15,16,16,17,15,16,15,17,15, + 12,14,13,16,14,13,13,14,14,16,14,15,14,16,15,15, + 15,16,15,17,16,16,16,17,16,12,13,14,15,16,15,15, + 15,15,16,13,15,13,16,14,16,16,16,17,17,15,16,15, + 17,15,15,16,15,16,15,14,14,15,16,16,16,16,16,17, + 16,15,15,16,15,17,17,17,17,18,17,15,15,15,16,16, + 16,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15, + 16,15,18,14,10,12,12,14,14,12,13,13,15,15,12,13, + 13,15,15,14,14,15,15,16,13,15,14,16,16,12,13,13, + 15,15,13,14,14,15,16,13,14,14,15,15,14,15,15,16, + 17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,15, + 12,14,13,15,15,14,15,15,16,17,14,15,14,17,15,14, + 15,15,16,16,14,15,15,16,17,15,15,15,17,16,16,16, + 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, + 16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17, + 16,11,12,12,14,15,13,13,14,14,15,13,14,13,15,15, + 14,15,15,16,16,14,15,15,16,16,12,14,13,15,15,13, + 13,14,15,16,14,15,14,16,15,15,15,16,15,17,15,16, + 16,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13, + 16,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16, + 16,14,15,15,16,16,15,16,16,17,17,16,16,16,16,17, + 16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14, + 15,15,16,16,16,16,16,17,17,15,16,15,17,15,11,12, + 12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15, + 16,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15, + 16,13,14,14,16,16,15,15,15,16,17,15,15,15,17,16, + 12,13,13,15,15,13,14,14,16,15,13,14,13,16,15,15, + 16,15,17,17,14,15,14,17,16,14,15,15,16,16,15,15, + 16,16,17,15,16,16,17,17,16,16,16,16,18,16,17,16, + 18,17,14,15,14,16,15,15,15,15,17,16,14,15,14,17, + 15,16,17,16,17,17,15,16,15,17,15,11,12,12,15,15, + 13,13,15,14,16,13,15,13,16,14,15,15,16,15,17,15, + 16,15,17,16,12,14,13,15,15,13,13,15,15,16,15,15, + 15,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14, + 15,16,14,14,15,15,16,13,14,13,16,14,16,16,16,16, + 17,15,16,15,17,15,15,16,15,16,16,14,15,15,16,16, + 16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15, + 15,15,15,16,16,16,16,16,17,14,15,14,16,15,17,17, + 17,17,18,15,16,15,17,15,12,13,13,15,15,13,14,14, + 15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17, + 16,13,14,14,16,15,13,14,15,16,16,14,15,15,16,16, + 15,15,16,16,17,15,16,16,17,17,13,14,13,16,15,14, + 15,15,16,16,13,15,14,16,15,15,16,16,17,17,15,16, + 14,17,15,15,15,16,17,17,15,15,16,16,17,16,16,16, + 17,17,16,15,17,16,18,17,17,17,18,18,15,15,15,17, + 14,16,16,16,17,16,15,16,15,17,15,16,17,17,18,17, + 16,17,15,18,15, +}; + +static const static_codebook _44p8_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p8_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p8_p5_0, + 0 +}; + +static const long _vq_quantlist__44p8_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p8_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p8_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p8_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p8_p5_1, + 0 +}; + +static const long _vq_quantlist__44p8_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p6_0[] = { + 2, 6, 6, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 7, 9, 7, + 9, 9, 6, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, + 10, 8, 9, 9, 8, 9,10, 9, 9,10,10,10,10, 8, 9, 9, + 10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, + 9, 9, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, + 9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 7, 9, 9, 8, 9,10, + 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, + 9,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, + 10,10,11,11,10,11,10, 6, 9, 8, 9, 9,10, 9,10, 9, + 8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, + 11, 9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, + 10, 9,10,10, 7, 9, 9, 9,10,10, 8,10, 9, 6, 8, 9, + 9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, + 9,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, + 9, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, + 10,11, 9, +}; + +static const static_codebook _44p8_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p8_p6_0, + 0 +}; + +static const long _vq_quantlist__44p8_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p6_1[] = { + 4, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, + 8, 8, 7, 8, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, + 8, 9, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, + 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 8, 8, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, + 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, + 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, + 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, + 8, 9, 8, +}; + +static const static_codebook _44p8_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p8_p6_1, + 0 +}; + +static const long _vq_quantlist__44p8_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p8_p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p8_p7_0 = { + 5, 243, + (long *)_vq_lengthlist__44p8_p7_0, + 1, -512202240, 1635281408, 2, 0, + (long *)_vq_quantlist__44p8_p7_0, + 0 +}; + +static const long _vq_quantlist__44p8_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p8_p7_1[] = { + 1, 7, 7,12,12, 5,11,12,12,12, 5,12,11,12,12,12, + 12,12,12,12,12,13,13,13,13, 7,11,11,13,13,13,12, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13, 7,13,10,13,13,13,13,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13, 7,13,12, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13, 8,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13, 8,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13, 8,13,12,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13, +}; + +static const static_codebook _44p8_p7_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p8_p7_1, + 1, -514619392, 1630767104, 3, 0, + (long *)_vq_quantlist__44p8_p7_1, + 0 +}; + +static const long _vq_quantlist__44p8_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p8_p7_2[] = { + 1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44p8_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p8_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p8_p7_2, + 0 +}; + +static const long _vq_quantlist__44p8_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p8_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p8_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p8_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p8_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p8_short[] = { + 3, 9,15,17,20,21,22,23, 5, 5, 7, 9,11,13,17,20, + 9, 5, 5, 6, 8,10,15,18,11, 7, 5, 4, 6, 9,13,17, + 14, 9, 7, 5, 6, 7,10,14,17,10, 8, 6, 6, 4, 5, 8, + 20,14,13,10, 8, 4, 3, 4,23,17,16,14,12, 6, 4, 4, +}; + +static const static_codebook _huff_book__44p8_short = { + 2, 64, + (long *)_huff_lengthlist__44p8_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p9_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44p9_l0_0[] = { + 2, 5, 5, 7, 6, 8, 8, 9, 9,10,10,11,11, 4, 5, 5, + 6, 7, 8, 8, 9, 9,10,10,11,10, 4, 5, 5, 7, 6, 8, + 8, 9, 9,10,10,10,10, 6, 6, 7, 6, 7, 8, 8, 9, 9, + 10, 9,11, 9, 6, 6, 6, 7, 6, 8, 8, 9, 9, 9,10, 9, + 11, 7, 7, 8, 8, 8, 8, 9, 9, 9,10, 9,11, 9, 7, 8, + 8, 8, 8, 9, 8, 9, 9, 9,10, 9,11, 8, 9, 9, 9, 9, + 9, 9,10,10,11,10,12,10, 8, 9, 9, 9, 9, 9, 9,10, + 9,10,11,11,12, 9,10,10,10,10,10,10,10,11,11,11, + 11,12, 9,10,10,10,10,11,10,11,10,11,11,12,11,11, + 11,11,11,11,11,11,11,12,11,12,11,12,11,11,11,11, + 11,11,11,12,11,12,11,12,11, +}; + +static const static_codebook _44p9_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44p9_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44p9_l0_0, + 0 +}; + +static const long _vq_quantlist__44p9_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_l0_1[] = { + 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p9_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44p9_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p9_l0_1, + 0 +}; + +static const long _vq_quantlist__44p9_l1_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_l1_0[] = { + 1, 2, 3, 5, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44p9_l1_0 = { + 2, 25, + (long *)_vq_lengthlist__44p9_l1_0, + 1, -514619392, 1630767104, 3, 0, + (long *)_vq_quantlist__44p9_l1_0, + 0 +}; + +static const long _huff_lengthlist__44p9_lfe[] = { + 1, 1, +}; + +static const static_codebook _huff_book__44p9_lfe = { + 1, 2, + (long *)_huff_lengthlist__44p9_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44p9_long[] = { + 3, 3, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _huff_book__44p9_long = { + 1, 8, + (long *)_huff_lengthlist__44p9_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44p9_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p1_0[] = { + 1, 5, 5, 4, 8, 8, 4, 8, 8, 5, 7, 8, 8, 9,10, 8, + 10,10, 5, 8, 7, 8,10,10, 8,10, 9, 7, 9, 9, 9,11, + 11, 9,11,11, 9,11,11,11,12,13,11,13,13, 9,11,11, + 11,13,13,11,13,13, 7, 9, 9, 9,11,11, 9,11,11, 9, + 11,11,11,13,13,11,13,13, 9,11,11,11,13,13,11,13, + 12, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,12,13, + 11,13,13, 9,11,11,11,13,13,11,13,13, 9,11,12,11, + 13,13,12,13,13,11,12,13,13,14,15,13,14,14,12,13, + 13,13,15,15,13,15,14, 8,10,10,11,13,13,12,14,13, + 11,12,12,13,14,15,13,15,15,11,12,12,13,15,15,13, + 15,14, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,13, + 13,11,13,13, 9,11,10,11,13,13,11,13,12, 8,10,10, + 11,13,13,12,13,13,11,12,12,13,14,15,14,15,15,10, + 12,12,13,14,15,13,15,14, 9,12,11,12,13,13,11,13, + 13,12,13,13,13,15,15,13,14,15,11,13,12,13,15,14, + 13,15,14, +}; + +static const static_codebook _44p9_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p9_p1_0, + 0 +}; + +static const long _vq_quantlist__44p9_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_p2_0[] = { + 4, 6, 6, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 6, + 8, 8,11,11, 6, 8, 8,11,11, 6, 7, 7, 9, 9, 7, 8, + 9,10,11, 7, 9, 9,11,10, 8, 9,10,12,12, 8,10,10, + 12,12, 6, 7, 7, 9, 9, 7, 9, 9,10,10, 7, 9, 8,11, + 10, 8,10,10,12,12, 8,10, 9,12,12, 8, 9, 9,11,11, + 9,10,10,12,12, 9,11,11,12,13,11,12,12,13,14,11, + 12,12,14,14, 8, 9, 9,11,11, 9,11,10,13,12, 9,10, + 10,13,12,11,12,12,14,14,11,12,12,14,13, 7, 8, 9, + 10,10, 8,10,10,11,11, 8,10,10,11,11,10,11,11,13, + 13,10,11,11,13,13, 8, 9,10,10,11,10,11,11,12,13, + 10,11,11,12,12,11,11,12,13,14,11,12,12,14,14, 8, + 10,10,11,11,10,11,11,12,13,10,11,11,12,12,11,12, + 12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12, + 13,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15, + 16,10,11,11,13,13,12,12,12,14,14,11,12,12,14,14, + 13,14,14,15,16,13,14,14,16,15, 7, 8, 8,10,10, 8, + 10,10,11,11, 8,10,10,12,11,10,11,11,13,13,10,11, + 11,13,13, 8,10,10,11,11,10,11,11,12,12,10,11,11, + 12,12,11,12,12,14,14,11,12,12,14,14, 8,10, 9,11, + 10,10,11,11,13,12,10,11,10,13,12,11,12,12,14,14, + 11,12,11,14,13,10,11,11,13,13,11,12,12,14,14,12, + 12,12,14,14,13,14,14,15,16,13,14,14,15,15,10,11, + 11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, + 16,15,13,14,13,16,14,10,11,11,13,13,12,12,13,14, + 15,12,13,13,14,15,13,14,15,15,16,13,14,14,16,16, + 11,12,13,14,14,13,13,14,15,16,13,14,14,15,16,14, + 15,15,16,17,14,15,16,17,17,11,12,12,14,14,13,14, + 14,15,16,13,14,14,15,15,14,15,15,16,18,14,15,15, + 17,16,13,14,15,15,16,15,15,16,16,18,15,15,15,17, + 17,16,16,17,17,18,16,16,16,18,18,14,14,14,16,16, + 15,15,15,16,17,15,15,15,16,17,16,17,17,18,18,16, + 16,17,18,17,10,11,11,14,13,12,13,13,15,14,11,13, + 13,15,14,13,15,15,16,16,13,14,14,16,16,11,12,12, + 14,14,13,13,13,15,15,13,14,13,15,15,15,15,15,17, + 16,14,15,15,17,16,11,13,12,14,14,13,14,13,15,15, + 13,14,13,15,15,14,15,15,17,17,14,15,15,17,16,14, + 14,14,16,16,14,15,15,17,17,15,15,16,17,16,17,16, + 17,18,18,16,17,17,18,18,13,14,14,16,15,15,15,15, + 17,17,14,16,15,16,16,17,17,17,18,18,16,17,16,20, + 19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12,11, + 10,11,11,13,13,10,11,11,13,13, 8, 9,10,11,11,10, + 11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12, + 12,14,14, 9,10,10,11,11,10,11,11,12,12,10,11,11, + 13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12, + 13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16, + 13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,12, + 13,12,14,14,13,14,14,16,16,13,14,14,15,15, 9,10, + 10,11,12,10,11,11,12,13,10,11,11,13,12,11,12,12, + 14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,13, + 14,11,12,12,13,14,12,13,14,14,15,12,13,13,15,15, + 10,11,11,13,13,11,12,12,13,14,11,12,12,14,13,12, + 13,13,15,15,12,13,13,15,15,12,11,13,12,14,13,13, + 14,14,15,13,13,14,14,15,14,15,15,16,17,14,15,15, + 16,17,12,13,12,14,14,13,14,14,15,15,13,14,14,15, + 15,14,15,15,16,17,14,15,15,16,17, 8, 9, 9,11,11, + 10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,11, + 13,12,15,14, 9,11,10,12,12,11,12,12,13,14,11,12, + 12,14,13,13,13,14,15,15,13,14,13,15,15, 9,11,11, + 12,12,11,12,12,14,14,11,12,12,14,13,13,14,14,15, + 16,13,14,13,15,14,11,12,12,14,13,12,13,13,14,15, + 13,14,14,16,15,15,15,15,15,16,15,16,15,17,17,11, + 12,12,14,14,13,14,14,15,15,12,13,13,15,14,15,15, + 15,17,17,14,15,15,17,15,11,12,12,14,14,12,13,13, + 15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16, + 16,12,13,13,14,15,13,14,14,16,16,14,14,14,15,16, + 15,16,16,17,17,15,16,16,17,17,12,13,13,15,15,14, + 14,14,16,16,14,14,15,16,16,15,16,16,17,17,15,16, + 16,17,17,14,15,15,15,16,15,15,16,16,18,15,16,16, + 17,17,17,17,17,18,18,16,17,17,19,18,14,15,15,16, + 17,15,16,16,17,17,15,16,16,18,17,16,17,17,19,18, + 17,17,17,19,18,10,12,12,14,14,13,13,14,15,15,12, + 14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,13, + 13,15,14,13,14,14,16,16,14,14,15,17,16,15,16,16, + 17,17,15,16,16,18,17,12,13,13,15,14,14,15,15,16, + 16,13,15,14,16,15,16,17,16,19,17,15,16,16,17,17, + 14,15,15,17,15,15,16,15,17,17,16,17,16,18,17,17, + 17,18,18,18,17,17,18,19,18,14,15,15,16,16,15,16, + 16,17,18,15,16,16,18,16,17,18,18,19,19,17,18,17, + 18,19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12, + 11,10,11,11,13,13, 9,11,11,13,13, 9,10,10,11,11, + 10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11, + 12,12,14,14, 8,10, 9,11,11,10,11,11,12,12,10,11, + 11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11, + 13,13,11,12,13,14,14,12,12,12,14,14,13,14,14,15, + 16,13,14,14,16,16,10,11,10,13,12,11,12,12,14,14, + 11,12,12,14,14,13,14,14,15,16,13,14,14,16,15, 8, + 9, 9,11,11,10,11,11,12,13,10,11,11,13,12,12,13, + 13,14,15,12,13,13,15,14,10,11,11,12,12,11,11,12, + 13,14,11,12,12,14,14,13,13,14,15,16,13,14,14,15, + 15, 9,10,11,12,12,11,12,12,13,14,11,12,12,14,13, + 13,14,14,15,16,12,14,13,15,15,11,12,12,14,14,12, + 13,13,14,15,13,14,14,16,15,14,15,15,15,17,15,15, + 16,16,17,11,12,12,13,14,13,14,14,15,15,12,13,13, + 15,14,15,16,15,16,17,14,16,15,17,15, 9,10,10,12, + 11,10,11,11,13,13,10,11,11,13,12,11,12,12,14,14, + 11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,11, + 12,12,14,14,12,13,13,15,15,12,13,13,15,15,10,11, + 10,13,12,11,12,12,13,13,11,12,12,14,13,12,13,13, + 15,15,12,13,13,15,14,12,13,12,14,14,13,14,14,15, + 15,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16, + 11,13,11,14,12,13,13,13,15,14,12,14,13,15,14,15, + 15,15,17,16,14,15,14,17,15,10,12,12,14,14,13,13, + 14,15,16,12,14,13,15,15,14,15,16,17,17,14,15,16, + 17,17,12,13,13,14,15,13,14,14,16,16,14,14,15,16, + 16,16,16,16,17,17,16,16,16,18,18,12,13,13,14,15, + 14,14,15,16,16,13,14,14,16,15,16,16,16,17,18,15, + 16,16,17,17,14,15,15,16,16,15,15,16,17,17,15,16, + 16,17,18,17,18,18,18,19,17,18,18,19,19,14,15,15, + 16,16,15,16,16,17,17,15,16,16,17,17,17,17,18,20, + 18,17,18,17,18,18,11,12,12,14,14,12,13,14,15,15, + 12,13,13,15,15,14,15,15,16,17,14,15,15,16,17,12, + 13,13,15,15,14,14,14,16,16,14,14,14,16,16,15,16, + 16,17,17,15,16,16,17,17,12,13,13,15,14,13,14,14, + 16,15,14,15,14,16,15,15,16,16,17,17,15,16,16,17, + 16,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, + 17,17,17,19,18,17,17,17,18,19,14,15,14,17,15,15, + 16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17, + 17,18,17, 6,11,11,13,13,11,12,12,14,14,11,12,12, + 14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14, + 14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17, + 14,15,15,17,18,11,12,12,14,14,12,13,13,15,15,12, + 13,13,15,15,14,15,15,17,17,14,15,15,16,16,13,14, + 14,15,16,14,15,15,16,17,14,15,15,17,16,15,16,17, + 18,17,16,16,16,18,17,14,14,15,16,16,14,15,15,18, + 16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, + 11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14, + 15,15,17,17,14,15,15,16,16,12,13,13,15,15,13,14, + 14,15,16,13,14,14,16,16,15,16,16,17,17,15,15,16, + 17,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16, + 16,15,16,16,17,17,15,16,16,17,17,14,14,15,15,16, + 15,15,16,16,17,15,15,16,16,17,16,17,17,17,18,16, + 17,17,18,18,14,15,15,16,16,15,16,16,17,17,15,16, + 16,17,17,17,17,17,18,19,17,17,17,18,18,10,12,12, + 14,14,12,13,14,15,16,13,14,13,15,15,14,15,15,17, + 17,14,15,16,17,17,12,13,13,15,15,13,14,14,15,15, + 14,15,14,16,16,15,16,16,17,18,15,17,16,18,17,12, + 13,13,15,15,14,14,14,16,16,13,14,14,16,15,15,16, + 16,17,18,15,16,16,17,17,14,14,14,16,16,15,15,16, + 17,17,15,16,16,17,17,17,17,17,18,20,17,17,17,19, + 19,14,15,15,16,16,15,17,16,18,18,15,16,15,17,16, + 17,18,19,19,19,17,17,17,18,17,13,14,14,16,16,14, + 15,15,17,17,14,15,15,16,17,15,17,17,18,18,16,16, + 17,18,17,14,15,15,16,17,15,16,16,17,17,15,16,16, + 17,17,16,17,17,18,18,17,17,17,18,19,14,15,15,16, + 17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18, + 17,17,17,19,19,16,16,16,16,18,16,17,17,17,18,17, + 17,17,17,19,18,18,18,19,19,18,18,18,19,20,16,16, + 17,18,18,16,18,17,18,18,17,17,17,20,19,18,18,19, + 21,20,18,20,18,18,19,10,12,12,14,14,14,14,15,15, + 17,14,15,14,17,15,16,16,17,18,18,16,18,17,19,18, + 12,14,13,16,15,14,14,15,15,17,15,16,16,18,17,16, + 17,18,17,19,17,19,18,20,19,12,13,13,15,15,15,16, + 17,17,18,14,16,14,17,16,17,18,18,19,19,17,17,17, + 18,18,15,15,15,17,16,15,16,16,17,17,17,19,17,18, + 18,18,18,18,18,21,19,20,19,20,19,15,15,16,16,17, + 17,17,18,20,20,15,16,16,18,17,18,19,19,19,20,18, + 19,18,19,17, 6,11,11,13,13,11,12,12,14,14,11,12, + 12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, + 14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17, + 17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15, + 12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13, + 14,14,16,16,15,15,15,16,16,14,15,15,17,16,16,17, + 17,19,18,16,17,17,18,18,13,14,14,15,15,14,15,15, + 17,16,14,15,15,17,16,16,17,16,17,18,15,16,16,18, + 18,10,12,12,14,14,12,13,14,15,15,12,13,13,15,15, + 14,15,15,17,17,14,15,15,17,16,12,13,13,15,15,14, + 14,14,15,16,14,15,15,16,16,15,16,16,17,18,16,16, + 16,18,18,12,13,13,14,14,14,14,15,16,16,13,14,14, + 16,16,15,16,16,18,18,15,16,16,19,17,14,15,15,16, + 17,15,15,16,17,17,16,17,16,17,18,17,17,18,17,19, + 17,17,18,18,19,14,14,14,16,16,15,16,16,17,17,15, + 16,15,17,17,17,17,17,19,20,16,17,17,18,18,11,12, + 12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15, + 16,16,14,15,14,16,16,12,13,13,15,15,14,14,14,16, + 16,13,14,14,16,16,15,16,16,18,17,15,16,16,17,17, + 12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15, + 16,15,18,18,15,16,15,17,16,14,15,15,16,16,15,16, + 16,17,17,15,16,16,18,17,16,17,17,18,18,16,17,17, + 18,18,14,15,14,16,15,15,16,15,17,17,15,16,15,17, + 16,16,17,17,18,18,17,17,16,19,17,10,12,12,14,15, + 14,14,15,15,17,14,15,14,17,15,16,17,17,17,18,16, + 17,17,18,18,12,14,13,16,15,14,14,16,15,17,15,17, + 16,18,17,17,17,18,17,19,18,18,18,19,18,12,13,14, + 15,15,15,16,16,16,17,14,15,14,18,16,18,17,18,19, + 19,17,18,17,20,18,15,15,15,17,17,15,16,16,17,18, + 18,18,18,19,18,18,18,19,18,20,18,19,19,21,21,15, + 15,16,16,17,17,18,18,18,18,15,16,16,17,17,17,19, + 20,19,20,17,18,18,19,17,13,14,14,16,16,14,15,15, + 16,17,14,15,15,17,17,16,16,17,17,18,15,17,16,17, + 17,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, + 17,17,18,17,18,17,17,17,18,20,14,15,15,17,16,15, + 16,16,17,17,15,16,16,17,17,17,17,17,18,18,16,17, + 17,19,18,16,16,17,17,17,17,18,17,19,18,17,17,17, + 18,19,17,20,18,19,21,17,19,18,19,20,15,17,15,17, + 16,16,17,17,18,18,17,17,17,18,17,18,19,18,19,21, + 18,18,17,19,19, +}; + +static const static_codebook _44p9_p2_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p9_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p9_p2_0, + 0 +}; + +static const long _vq_quantlist__44p9_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p3_0[] = { + 2, 5, 4, 4, 7, 7, 4, 7, 6, 5, 6, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 6, 7, 9, 9, 7, 9, 8, 6, 8, 8, 8,10, + 10, 8,10,10, 8, 9,10,10,11,12,10,12,12, 8,10,10, + 10,12,12,10,12,11, 6, 8, 8, 8,10,10, 8,10,10, 8, + 10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, + 11, 5, 8, 8, 8,10,10, 8,10,10, 8, 9,10,10,11,11, + 10,11,11, 8,10,10,10,11,12,10,12,11, 8,10,10,10, + 11,11,10,11,11,10,11,11,11,12,13,11,12,13,10,11, + 11,11,13,13,11,13,13, 7, 9, 9,10,11,12,10,12,11, + 9,11,11,11,12,13,12,14,13, 9,11,11,12,13,14,11, + 13,12, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, + 12,10,12,12, 8,10, 9,10,12,11, 9,11,11, 7, 9, 9, + 10,11,12,10,12,11, 9,11,11,11,12,13,12,14,13, 9, + 11,11,12,13,14,11,13,12, 8,10,10,10,11,11,10,11, + 11,10,11,11,11,13,13,11,13,13,10,11,10,11,13,12, + 11,13,12, +}; + +static const static_codebook _44p9_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p3_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44p9_p3_0, + 0 +}; + +static const long _vq_quantlist__44p9_p3_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p3_1[] = { + 4, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, + 7, 8, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, + 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, + 9, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, + 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, + 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 9, + 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, + 8, 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, + 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44p9_p3_1 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p3_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44p9_p3_1, + 0 +}; + +static const long _vq_quantlist__44p9_p4_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p4_0[] = { + 2, 5, 5, 4, 7, 7, 4, 7, 6, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, + 10, 8,10,10, 8, 9,10,10,11,12,10,11,12, 8,10,10, + 10,11,12,10,12,11, 6, 8, 7, 8,10,10, 8,10, 9, 8, + 10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, + 11, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, + 10,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, + 11,11, 9,11,11, 9,10,11,11,11,12,11,12,12, 9,11, + 11,11,12,12,11,12,12, 7, 9, 9,10,11,12,10,12,11, + 9,11,10,11,11,12,12,13,13, 9,11,11,12,13,13,11, + 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, + 12,10,12,12, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, + 10,11,12,10,12,11, 9,11,11,11,11,13,12,13,13, 9, + 10,11,12,13,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, + 11, 9,11,11,11,12,12,11,12,12, 9,11,10,11,12,12, + 10,12,11, +}; + +static const static_codebook _44p9_p4_0 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p4_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44p9_p4_0, + 0 +}; + +static const long _vq_quantlist__44p9_p4_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_p4_1[] = { + 6, 8, 8,10, 9, 8, 9, 9,10,10, 8, 9, 9,10,10, 8, + 10,10,10,10, 8,10,10,10,10, 9, 9, 9,10,10, 9,10, + 10,10,11, 9,10,10,11,11,10,10,10,11,11,10,10,10, + 11,11, 9, 9, 9,10,10, 9,10,10,11,11, 9,10,10,11, + 10,10,10,10,11,11,10,10,10,11,11,10,10,10,10,11, + 10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,10,10,10,11,10,10,11,11,11,11,10,11, + 10,11,11,11,11,11,11,11,10,11,11,11,11, 9,10,10, + 10,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11, + 11,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11, + 11,11,11,11,12,11,11,12,12,12,11,11,11,12,12,10, + 11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11, + 11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, + 11,12,12,12,12,12,12,12,12,12, 9,10,10,11,10,10, + 11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11, + 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, + 12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, + 11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11, + 12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11, + 11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12, + 12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, + 13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, + 12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12, + 13,13,13,13,11,11,11,11,11,11,12,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, + 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, + 13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13, + 13, 7,10,10,11,11,10,10,11,11,11,10,11,11,11,11, + 10,11,11,11,11,10,11,11,11,11,10,10,10,11,11,10, + 11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11, + 11,12,12,10,11,11,11,11,11,11,11,12,11,11,11,11, + 12,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11, + 11,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, + 11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11, + 11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, + 11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11, + 12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12, + 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, + 11,11,11,11,11,11,12,11,12,12,11,11,11,12,12,11, + 12,12,12,12,11,12,12,12,12,11,11,11,11,12,11,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11, + 11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11, + 12,12,12,12,10,11,11,12,11,11,11,12,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11, + 12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12, + 12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, + 12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,13, + 12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12, + 13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12, + 12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13, + 12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12, + 13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, + 13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, + 12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13, + 13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13, + 13,13, 7,10,10,11,11,10,11,11,11,11,10,11,11,11, + 11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, + 11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,11, + 11,11,12,12,10,10,10,11,11,11,11,11,12,11,10,11, + 11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11, + 11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12, + 12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12, + 11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10, + 10,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12, + 12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,12, + 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, + 12,13,12,11,11,11,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, + 11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11, + 12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11, + 11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12, + 12,12,11,12,12,12,12,11,11,11,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, + 13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12, + 12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, + 13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13, + 12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, + 12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, + 12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, + 13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, + 13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, + 13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13, + 13,13,13, 8,11,11,12,12,11,12,12,12,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12, + 12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, + 12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, + 12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13, + 13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13, + 12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, + 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, + 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, + 12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12, + 13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12, + 12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11, + 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, + 12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, + 12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,11, + 12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13, + 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, + 13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13, + 13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13, + 12,13,13,13,13,13,13,13,13,13,11,11,11,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13, + 12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12, + 12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12, + 12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13, + 13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12, + 11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, + 12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, + 12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13, + 13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, + 13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, + 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13, 8,11,11,11,11,11,12,12,12,12,11,12, + 12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13, + 13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, + 12,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, + 13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12, + 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, + 12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13, + 13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, + 12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12, + 12,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13, + 12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12, + 12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11, + 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, + 11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, + 12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, + 12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13, + 13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, + 12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, + 12,12,12,12,13,13,13,13,12,13,13,13,13,11,12,12, + 12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13, + 13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13, + 12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,12, + 12,12,12,12,12,13,13,13,13,12,12,12,13,12,13,13, + 13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12, + 12,12,12,13,13,12,13,13,13,13,11,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13, + 12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12, + 13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, + 12,12,12,12,12,13,12,12,12,13,13,13,13,13,13,13, + 12,13,13,13,13, +}; + +static const static_codebook _44p9_p4_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p9_p4_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44p9_p4_1, + 0 +}; + +static const long _vq_quantlist__44p9_p5_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_p5_0[] = { + 4, 6, 6, 9, 9, 6, 7, 8,10,11, 6, 8, 7,10,10, 8, + 10,10,12,12, 8,10,10,12,12, 6, 7, 8,10,10, 7, 8, + 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, + 13,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, + 10,10,11,11,13,13,10,11,10,13,12, 9,10,10,11,12, + 10,10,11,12,13,10,11,11,12,13,12,12,13,12,14,12, + 13,13,14,14, 9,10,10,12,11,10,11,11,13,12,10,11, + 10,13,12,12,13,13,14,14,12,13,12,14,12, 7, 8, 8, + 10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, + 14,10,11,11,13,13, 8, 9,10,11,12, 9,10,11,12,13, + 10,10,11,12,12,11,12,12,13,14,11,12,12,14,14, 8, + 9, 9,11,12,10,10,11,12,13, 9,10,10,12,12,11,12, + 12,14,14,11,12,12,14,13,11,11,12,12,13,11,12,12, + 13,14,12,12,13,14,14,13,13,14,14,16,13,14,14,15, + 15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13, + 13,14,14,15,15,13,14,13,15,14, 7, 8, 8,11,10, 8, + 10, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, + 11,14,13, 8, 9, 9,12,11, 9,10,10,12,12,10,11,10, + 13,12,11,12,12,13,14,11,12,12,14,14, 8,10, 9,12, + 11,10,11,10,12,12, 9,11,10,13,11,11,12,12,14,14, + 11,12,12,14,13,11,11,12,13,13,11,12,12,13,14,12, + 12,12,14,14,13,13,14,14,15,13,14,14,15,15,11,12, + 11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, + 15,15,13,14,13,15,14,10,11,11,12,13,11,12,12,13, + 14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,15, + 11,12,12,12,14,12,12,13,13,15,12,13,13,13,15,14, + 14,15,15,16,14,14,15,15,16,11,12,12,13,14,12,13, + 13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14, + 15,15,13,14,14,14,15,14,14,15,15,16,14,15,15,15, + 16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, + 14,14,15,16,16,14,14,14,16,15,16,16,16,17,17,15, + 16,16,17,16,10,11,11,13,12,11,12,12,14,13,11,12, + 12,14,13,13,14,14,15,15,13,14,13,16,14,11,12,12, + 14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,15, + 15,14,15,14,16,15,11,12,12,14,12,12,13,13,15,14, + 12,13,12,15,13,14,15,14,16,15,14,15,14,16,15,13, + 14,14,15,15,14,14,14,15,16,14,15,14,16,16,15,16, + 16,16,17,16,16,16,17,17,13,14,14,15,14,14,15,15, + 16,15,14,15,14,16,15,16,16,16,17,17,15,16,15,18, + 16, 6, 8, 8,11,11, 8, 9,10,11,12, 8,10, 9,12,12, + 10,11,11,13,13,10,12,11,14,13, 8, 9, 9,11,12, 9, + 10,10,12,12, 9,10,10,12,12,11,11,12,13,14,11,12, + 12,14,14, 8,10, 9,12,11,10,11,11,12,12, 9,11,10, + 13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, + 13,11,12,12,13,14,11,12,12,14,14,13,13,14,13,15, + 13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11, + 12,12,14,13,13,14,14,15,15,13,14,13,15,14, 8, 9, + 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,12,12, + 13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, + 13,10,10,11,12,13,12,12,13,13,15,12,12,13,14,14, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, + 13,13,14,15,12,13,12,14,14,11,11,12,12,14,12,12, + 13,13,14,12,12,13,13,14,13,13,14,14,16,14,14,14, + 15,15,11,12,12,14,13,12,13,13,14,14,12,13,13,15, + 14,14,14,14,16,16,13,14,14,16,14, 7, 9, 9,12,11, + 9,10,10,12,12, 9,11,10,13,12,11,12,12,13,14,11, + 13,12,14,13, 9,10,10,12,12,10,10,11,12,13,10,12, + 11,13,13,12,12,13,13,14,12,13,13,15,14, 9,10,10, + 12,12,11,11,11,13,13,10,12,10,13,12,12,13,13,14, + 15,12,13,12,15,13,11,12,12,14,13,12,12,13,13,14, + 12,13,13,15,14,13,13,14,13,16,14,15,14,16,15,12, + 12,12,14,14,13,13,13,14,14,12,13,12,14,13,14,15, + 15,16,16,13,14,13,16,13,10,11,12,13,14,11,12,13, + 13,15,12,12,13,14,14,13,14,14,15,16,13,14,14,16, + 15,12,12,13,12,14,12,12,13,13,15,13,13,13,13,15, + 14,14,15,14,16,14,15,15,15,16,12,13,12,14,14,13, + 13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, + 15,16,16,13,14,14,13,16,14,14,15,14,16,14,14,15, + 14,16,15,15,16,15,18,16,16,16,16,17,14,14,14,16, + 15,14,15,15,16,16,14,15,15,16,16,16,16,16,17,17, + 15,16,16,17,16,10,12,11,14,13,12,13,13,14,14,12, + 13,12,15,14,14,14,14,15,15,14,15,14,16,15,12,13, + 12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, + 16,16,14,15,15,17,15,12,13,12,14,14,13,14,14,15, + 15,13,14,13,15,14,15,15,15,16,16,14,15,15,17,15, + 14,14,14,16,15,14,15,15,16,16,14,15,15,16,15,16, + 16,16,16,17,16,17,16,18,17,14,14,14,16,15,15,15, + 15,16,16,14,15,14,16,15,16,16,17,17,17,15,16,15, + 17,16, 6, 8, 8,11,11, 8, 9,10,12,12, 8,10, 9,12, + 11,10,11,12,13,13,10,11,11,13,13, 8, 9,10,11,12, + 9,10,11,12,13,10,11,11,12,12,11,12,12,13,14,11, + 12,12,14,14, 8, 9, 9,12,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,12,14,14,11,12,11,14,13,11,11,12, + 13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14, + 15,13,14,14,15,15,10,11,11,13,13,11,12,12,14,14, + 11,12,12,14,13,13,14,14,15,15,13,14,13,15,13, 7, + 9, 9,11,12, 9,10,11,12,13, 9,10,10,12,12,11,12, + 13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, + 12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, + 14, 9,10,10,12,12,10,11,12,13,13,10,11,10,13,12, + 12,13,13,14,15,12,13,12,14,13,12,12,12,14,14,12, + 12,13,13,14,13,13,13,15,14,14,13,14,13,16,14,15, + 15,16,16,11,12,12,13,14,12,13,13,14,15,12,13,12, + 14,13,14,14,15,15,16,13,14,13,15,13, 8, 9, 9,11, + 11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, + 11,12,11,14,13, 9,10,10,12,12,10,11,11,13,13,10, + 11,11,13,13,12,12,13,14,15,12,13,13,15,14, 9,10, + 9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, + 14,14,12,13,12,15,13,11,12,12,13,14,12,13,13,14, + 14,12,13,13,14,14,14,14,14,14,16,14,14,14,16,15, + 11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14, + 14,14,16,15,13,14,13,16,14,10,11,12,13,14,12,12, + 13,13,15,12,13,13,14,14,14,14,15,15,16,14,14,14, + 15,16,12,12,13,14,14,12,13,14,14,15,13,14,14,15, + 15,14,15,15,15,17,15,15,15,16,16,12,12,13,13,14, + 13,13,14,14,15,12,13,13,14,15,15,15,15,15,17,14, + 15,15,15,15,14,14,14,16,16,14,15,15,15,16,15,15, + 15,16,16,16,15,16,16,18,16,16,17,17,17,14,14,14, + 15,16,15,15,15,16,17,14,15,14,16,16,16,16,17,17, + 18,16,16,15,17,16,10,12,11,14,13,12,12,12,14,14, + 11,13,12,14,13,13,14,14,15,15,13,14,13,16,15,12, + 12,13,14,14,12,13,13,15,15,13,13,13,15,15,14,15, + 15,16,16,14,15,15,17,16,12,13,12,14,12,13,13,13, + 15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,16, + 14,14,14,14,16,16,14,15,15,16,16,14,15,15,16,16, + 15,16,16,16,17,16,17,16,18,17,13,14,14,16,13,14, + 15,15,16,14,14,15,14,16,14,16,16,16,17,16,15,16, + 15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12,12, + 14,14,13,14,14,15,15,13,14,14,15,15,11,12,12,14, + 14,11,12,13,14,15,12,13,13,15,14,13,14,14,15,16, + 13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, + 13,13,15,14,14,14,14,16,16,14,15,14,16,15,12,13, + 13,14,15,12,13,14,15,16,13,14,14,16,16,14,14,15, + 16,17,15,15,15,17,17,13,14,14,15,15,14,15,14,16, + 16,14,15,14,16,15,15,16,16,17,17,15,16,15,17,16, + 10,12,12,13,14,11,12,13,14,14,12,13,12,14,14,13, + 14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12, + 13,14,15,12,13,13,15,15,13,13,15,15,17,14,14,15, + 16,16,12,13,12,14,14,12,13,13,15,15,12,13,13,15, + 14,14,15,15,16,16,14,15,14,16,16,13,12,14,13,16, + 13,13,15,14,16,14,13,15,15,16,14,14,16,15,17,15, + 15,16,16,17,13,14,14,16,15,14,15,15,16,16,14,15, + 14,16,15,16,16,16,17,17,15,16,16,18,16,10,12,12, + 14,14,12,12,13,14,14,12,13,12,15,14,13,14,14,15, + 16,14,15,14,16,15,11,12,12,14,14,12,13,13,14,15, + 13,14,13,15,15,14,14,15,15,16,14,15,15,17,16,12, + 13,13,14,14,13,13,14,15,15,12,14,13,15,15,14,15, + 15,16,16,14,15,15,17,15,13,14,13,15,15,13,14,14, + 15,16,14,15,14,17,16,15,15,15,15,17,16,16,16,18, + 17,14,14,14,16,16,15,15,15,16,16,14,15,14,16,16, + 16,16,17,17,17,16,16,16,17,16,11,12,13,14,14,12, + 13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, + 15,17,16,12,13,13,14,15,13,13,14,14,16,13,14,14, + 15,16,15,14,16,15,17,15,15,16,16,17,12,13,13,15, + 15,13,14,14,16,16,13,14,14,16,15,15,15,16,17,17, + 15,16,15,17,16,14,14,15,13,16,15,14,16,14,17,15, + 15,16,14,17,16,15,17,15,18,16,16,17,16,18,14,15, + 15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17, + 18,18,16,17,15,18,16,11,12,12,14,14,13,13,14,14, + 15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16, + 12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, + 15,16,15,16,16,16,16,18,16,12,13,13,15,15,14,14, + 15,15,16,13,14,13,16,15,16,16,16,17,17,15,16,15, + 17,15,14,15,14,16,15,14,15,15,16,16,15,16,15,17, + 16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,16, + 16,16,16,17,17,14,15,15,17,16,17,17,18,18,18,16, + 17,15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12, + 12,14,14,13,14,14,15,16,13,14,14,15,15,11,12,12, + 14,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15, + 16,14,14,14,16,16,11,12,12,14,14,12,13,13,14,15, + 11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,13, + 14,14,15,15,14,14,15,15,16,14,15,14,16,16,15,15, + 16,16,17,15,16,16,17,17,12,13,13,15,15,13,14,14, + 16,15,12,14,13,16,15,15,16,15,17,17,14,15,15,17, + 15,10,12,12,14,14,12,12,13,14,15,12,13,12,14,14, + 14,14,15,15,16,13,14,14,16,16,12,13,13,14,14,13, + 13,14,14,15,13,14,13,15,15,14,15,15,15,17,14,15, + 15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,13, + 15,14,14,15,15,16,17,14,15,14,16,15,14,14,14,16, + 16,14,15,15,16,16,15,15,15,16,16,15,16,16,16,18, + 16,17,16,18,17,13,13,14,15,15,14,14,15,16,16,13, + 14,14,16,15,16,16,17,17,17,15,15,15,17,15,10,12, + 12,14,13,12,12,13,14,14,11,13,12,14,14,13,14,14, + 16,16,13,14,14,16,15,12,12,13,14,14,12,13,13,14, + 15,13,13,13,15,15,14,14,15,16,16,14,15,15,16,16, + 11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14, + 15,14,16,16,13,15,13,16,15,13,14,14,15,16,14,15, + 15,15,17,14,15,15,16,16,16,15,16,16,17,16,16,16, + 17,17,13,14,12,16,13,14,15,13,16,15,13,15,13,16, + 14,15,16,15,17,16,15,16,14,17,15,11,12,12,14,15, + 13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, + 15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, + 14,16,15,15,15,16,15,17,16,16,16,17,17,12,13,13, + 14,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, + 17,15,16,15,16,15,15,15,15,16,16,14,15,15,16,17, + 16,16,16,17,17,16,15,17,15,18,17,18,17,18,18,14, + 14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, + 17,17,18,16,16,15,17,15,11,12,12,14,14,12,13,13, + 15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,17, + 16,13,13,13,15,15,13,14,14,15,16,13,14,14,16,16, + 15,15,16,16,17,15,16,16,17,17,12,13,13,15,14,13, + 14,14,16,15,13,14,13,16,14,15,16,16,17,16,15,16, + 14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16, + 17,17,16,15,17,16,18,16,17,17,18,18,14,15,14,16, + 13,15,16,15,17,14,15,16,14,17,14,16,17,16,18,16, + 16,17,15,18,15, +}; + +static const static_codebook _44p9_p5_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p9_p5_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44p9_p5_0, + 0 +}; + +static const long _vq_quantlist__44p9_p5_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44p9_p5_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44p9_p5_1 = { + 1, 7, + (long *)_vq_lengthlist__44p9_p5_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44p9_p5_1, + 0 +}; + +static const long _vq_quantlist__44p9_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p6_0[] = { + 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, + 10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, + 10,11,12,10,11,10, 5, 8, 7, 8,10,10, 8,10, 9, 8, + 10,10,10,10,11,10,12,11, 8,10, 9,10,11,11,10,12, + 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, + 9,11,11, 8,10, 9,10,11,11, 9,11,10, 7, 9, 9, 9, + 10,11, 9,11,11, 9, 9,11,10,10,13,11,12,12, 9,11, + 11,11,12,13,11,13,11, 7, 9, 9, 9,10,11, 9,11,10, + 9,11,10,10,10,12,11,13,12, 9,11,11,11,12,12,10, + 12,10, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10, 9,10, + 11,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, + 9,10,11, 9,11,10, 9,11,11,10,10,12,11,12,12, 9, + 10,11,11,12,13,10,12,10, 7, 9, 9, 9,11,11, 9,11, + 10, 9,11,11,11,11,13,11,13,12, 9,11, 9,11,12,12, + 10,13,10, +}; + +static const static_codebook _44p9_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p6_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44p9_p6_0, + 0 +}; + +static const long _vq_quantlist__44p9_p6_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44p9_p6_1[] = { + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, + 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, + 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, + 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, + 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, + 8, 9, 8, +}; + +static const static_codebook _44p9_p6_1 = { + 5, 243, + (long *)_vq_lengthlist__44p9_p6_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44p9_p6_1, + 0 +}; + +static const long _vq_quantlist__44p9_p7_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_p7_0[] = { + 1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13, +}; + +static const static_codebook _44p9_p7_0 = { + 5, 3125, + (long *)_vq_lengthlist__44p9_p7_0, + 1, -510105088, 1635281408, 3, 0, + (long *)_vq_quantlist__44p9_p7_0, + 0 +}; + +static const long _vq_quantlist__44p9_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44p9_p7_1[] = { + 1, 4, 4,16,16, 4, 9,11,15,16, 4,12, 8,16,16,12, + 16,16,16,16,13,16,16,16,16, 5, 8,10,16,16, 9, 9, + 14,15,16,12,14,14,16,16,16,16,16,16,16,16,16,16, + 16,16, 5,11, 8,16,15,12,14,16,16,16, 9,15, 9,16, + 16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16, 6,11,11, + 16,16,12,13,16,16,16,12,16,14,16,16,16,16,16,16, + 16,16,16,16,16,16,11,15,15,16,16,14,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12, + 15,16,16,16,16,16,16,16,16,14,16,15,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16, 5,11,11,16,16,12, + 15,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16, + 16,16,16,12,15,15,16,16,14,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16, + 16,16,16,16,16,16,15,16,14,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16, 6,11,12,16,16,11,15,16,16,16,13,16,14,16,16, + 16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,12,14,14,16,16,16,16,16,16,16,15,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16, 8,13, + 15,16,16,15,15,16,16,16,14,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,14,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16, 7,12,12,16,16, + 13,12,16,16,16,14,16,14,16,16,16,16,16,16,16,16, + 16,16,16,16,13,16,16,16,16,14,14,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16, + 16,16,16,16,16,16,16,14,16,14,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16, 6,11,11,16,16,13,15,16,16,16,11,15,14,16, + 16,16,16,16,16,16,14,16,16,16,16,11,16,16,16,16, + 16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,11,16,14,16,16,14,16,16,16,16,13,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 7, + 11,11,16,16,13,13,16,16,16,13,16,13,16,16,16,16, + 16,16,16,16,16,16,16,16,12,16,15,16,16,14,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,12,14,16,16,16,16,16,16,16,16,14,16,13,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16, 8,13,14,16, + 16,15,16,16,16,16,14,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16, + 15,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16, +}; + +static const static_codebook _44p9_p7_1 = { + 5, 3125, + (long *)_vq_lengthlist__44p9_p7_1, + 1, -514619392, 1630767104, 3, 0, + (long *)_vq_quantlist__44p9_p7_1, + 0 +}; + +static const long _vq_quantlist__44p9_p7_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p9_p7_2[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9,10,10,10,11,11,11, + 12,12,12,13,13,13,13,13,13, +}; + +static const static_codebook _44p9_p7_2 = { + 1, 25, + (long *)_vq_lengthlist__44p9_p7_2, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44p9_p7_2, + 0 +}; + +static const long _vq_quantlist__44p9_p7_3[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44p9_p7_3[] = { + 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44p9_p7_3 = { + 1, 25, + (long *)_vq_lengthlist__44p9_p7_3, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44p9_p7_3, + 0 +}; + +static const long _huff_lengthlist__44p9_short[] = { + 3, 3, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _huff_book__44p9_short = { + 1, 8, + (long *)_huff_lengthlist__44p9_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44pn1_l0_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44pn1_l0_0[] = { + 1, 3, 3, 8, 8,10,10,10,10,10,10,10,10, 5, 7, 5, + 9, 8,10,10,10,10,11,10,11,10, 5, 5, 7, 8, 9,10, + 10,11,10,10,11,10,11,10,10,10,11,11,11,11,11,11, + 11,10,11,11,10,10,10,10,11,11,11,11,11,10,11,11, + 11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11, + 11,11,11,11,11,10,10,11,11,12,11,11,11,11,11,11, + 12,11,11,11,10,11,11,11,11,11,11,11,11,10,11,11, + 10,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11, + 12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11, + 10,11,11,11,11,11,11,11,12,11,13,11,11,11,11,11, + 11,11,11,11,11,11,12,11,13, +}; + +static const static_codebook _44pn1_l0_0 = { + 2, 169, + (long *)_vq_lengthlist__44pn1_l0_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44pn1_l0_0, + 0 +}; + +static const long _vq_quantlist__44pn1_l0_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44pn1_l0_1[] = { + 1, 4, 4, 7, 7, 4, 5, 6, 7, 7, 4, 6, 5, 7, 7, 7, + 6, 7, 6, 7, 7, 7, 6, 7, 6, +}; + +static const static_codebook _44pn1_l0_1 = { + 2, 25, + (long *)_vq_lengthlist__44pn1_l0_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44pn1_l0_1, + 0 +}; + +static const long _vq_quantlist__44pn1_l1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_l1_0[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, +}; + +static const static_codebook _44pn1_l1_0 = { + 2, 9, + (long *)_vq_lengthlist__44pn1_l1_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44pn1_l1_0, + 0 +}; + +static const long _huff_lengthlist__44pn1_lfe[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book__44pn1_lfe = { + 2, 4, + (long *)_huff_lengthlist__44pn1_lfe, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44pn1_long[] = { + 2, 3, 6, 7, 9,13,17, 3, 2, 5, 7, 9,13,17, 6, 5, + 5, 6, 9,12,16, 7, 7, 6, 6, 7,10,13,10,10, 9, 7, + 6,10,13,13,13,12,10,10,11,15,17,17,17,14,14,15, + 17, +}; + +static const static_codebook _huff_book__44pn1_long = { + 2, 49, + (long *)_huff_lengthlist__44pn1_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44pn1_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p1_0[] = { + 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44pn1_p1_0 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44pn1_p1_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p2_0[] = { + 1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, + 8, 8, 0, 9, 9, 0,13,13, 0, 8, 8, 0, 6, 6, 0,11, + 11, 0,12,12, 0,12,12, 0,14,14, 0,11,12, 0,12,12, + 0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, + 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,11,11, 0, 6, + 6, 0, 7, 7, 0,11,11, 0,12,11, 0,11,11, 0,14,14, + 0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, + 12,12, 0,12,12, 0,12,12, 0,14,14, 0,11,11, 0,12, + 12, 0,16,16, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, + 15, 0,12,12, 0,11,11, 0,16,16, 0,11,11, 0, 6, 6, + 0,12,12, 0,12,12, 0,13,13, 0,15,15, 0,12,12, 0, + 13,13, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44pn1_p2_0 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p2_0, + 1, -533200896, 1614282752, 2, 0, + (long *)_vq_quantlist__44pn1_p2_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p2_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p2_1[] = { + 1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, + 10,10, 0,10,10, 0,10,10, 0,10,10, 0, 7, 7, 0, 7, + 7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, + 0, 7, 7, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 9, 0, + 10,10, 0, 9, 9, 0,10,10, 0,10,11, 0, 9, 9, 0,10, + 10, 0, 9, 9, 0,11,11, 0,12,12, 0,12,12, 0,11,11, + 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, 8, 8, 0, + 12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,13, 0,13, + 13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, + 12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 9, 9, + 0,12,12, 0,13,13, 0,14,14, 0,13,13, 0,14,14, 0, + 14,14, 0,13,13, 0,14,14, 0, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, +}; + +static const static_codebook _44pn1_p2_1 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p2_1, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44pn1_p2_1, + 0 +}; + +static const long _vq_quantlist__44pn1_p3_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p3_0[] = { + 1, 6, 6, 6, 8, 8, 6, 8, 8, 7, 9, 9,10,11,11, 8, + 8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, + 11,10,11,11,10,11,11,13,13,13,12,12,12,10,12,11, + 14,14,14,12,12,12, 6, 5, 5, 9, 6, 6, 9, 6, 6, 9, + 7, 7,12,10,10,11, 7, 6, 9, 7, 7,13,11,11,12, 7, + 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, + 13, 9, 9,12,11,11,15,14,14,15,11,11, 8, 7, 7,12, + 11,11,12,11,11,11,11,11,14,13,14,14,12,12,12,11, + 11,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, + 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, + 11,11, 7, 8, 8,13,11,11,12,10,10,12,11,11,15,13, + 13,14,11,11,12,10,10,16,14,14,15,10,10, 9, 7, 7, + 13,11,12,13,12,11,12,11,11,15,14,14,14,12,12,13, + 12,12,16,15,15,15,12,12, 0,11,11, 0,12,12, 0,12, + 13, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,16,15, + 0,12,12, +}; + +static const static_codebook _44pn1_p3_0 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p3_0, + 1, -531365888, 1616117760, 2, 0, + (long *)_vq_quantlist__44pn1_p3_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p3_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44pn1_p3_1[] = { + 2, 3, 4, 9, 9,10,12,12,12,11,10,12,12,13,12,11, + 13,12,11,11,11,12,12,12,11,11,13,13,13,13,11,12, + 12,14,14,12,13,13,13,13,11,13,13,13,13,11,13,13, + 13,13,11,13,13,13,13,11,12,12,14,14,12,13,13,12, + 12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13, + 12,12,13,14,14,12,13,13,12,12,11,13,13,13,13,11, + 13,13,12,12,11,13,13,13,13,12,13,13,14,14,12,13, + 13,12,12,11,13,13,13,13,11,13,13,12,12,11,10,10, + 10,10,12,10,10,11,11,12, 9, 9,11,11,13,11,11,10, + 10,13,10,10,10,10,13,11,11,12,12,13,10,10,12,12, + 14,12,11,12,12,13,11,11,11,12,13,12,12,12,12,13, + 11,11,12,12,13,10,10,12,12,14,11,11,12,12,13,11, + 11,12,12,13,11,11,12,12,14,12,12,12,12,14,10,10, + 11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11, + 11,14,12,12,12,11,14,10,10,11,11,14,12,11,11,11, + 13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,12, + 10,11, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,13, + 13,10,10,13,13,13,12,12,13,13,13,14,14,13,12,12, + 11,11,14,13,13,12,12,14,13,13,11,11,13,13,13,12, + 11,13,13,13,14,14,13,12,12,10,10,14,13,13,11,11, + 13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14, + 12,12,10,10,13,13,13,11,11,13,13,13,10,10,13,13, + 13,11,11,14,13,13,14,14,14,13,13,10,10,13,13,13, + 11,11,13,13,13,10,10,14,12,12, 8, 8,14,12,12, 9, + 9,14,11,11, 9, 9,14,12,12, 8, 8,14,12,12, 7, 7, + 15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, + 12,13, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, + 12,10,10,15,13,13,10,10,15,13,13, 9, 9,15,13,13, + 10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, + 9,14,13,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, + 15,12,12,10,10,15,13,13, 9, 9,15,13,13, 9, 9,14, + 13,13, 9, 9,14,12,12, 8, 8,13,13,13, 8, 8,14,14, + 13, 9, 9,14,14,13, 7, 7,14,14,14, 8, 8,14,14,14, + 10,10,15,14,14,12,12,14,14,14, 9, 9,15,14,14,10, + 10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,12,12, + 14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, + 14,15, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, + 14, 9, 9,14,14,14, 8, 8,14,15,14,10,10,15,14,14, + 11,11,14,14,14, 8, 8,15,14,14, 9, 9,14,14,14, 8, + 8,12,12,12,13,13,16,16,15,12,12,17,16,16,13,13, + 17,16,16,11,11,17,16,16,12,12,17,16,17,13,13,17, + 16,16,14,14,17,17,16,12,12,18,16,16,13,13,17,16, + 17,12,12,17,17,17,13,13,18,16,16,14,14,18,17,17, + 12,12,17,17,17,13,13,18,17,17,13,13,17,17,17,13, + 13,17,16,16,14,14,17,17,17,12,12,16,16,17,13,13, + 17,17,16,12,12,18,17,17,13,13,18,16,16,14,14,18, + 17,17,12,12,19,16,17,13,13,17,16,17,12,12,13,14, + 14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, + 13,13,16,14,14,13,13,17,16,15,14,14,16,16,16,15, + 15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14, + 17,16,15,14,14,16,16,16,15,15,18,15,15,13,13,16, + 16,15,14,14,17,15,15,14,13,17,15,15,14,14,16,16, + 16,15,15,18,15,14,13,13,17,15,15,14,14,18,14,15, + 13,13,18,15,15,14,14,16,16,16,15,15,17,15,15,13, + 13,17,15,15,14,14,17,15,15,13,13,13,11,11,10,10, + 16,14,14,13,13,17,14,15,14,14,17,15,15,12,12,17, + 14,14,12,12,16,15,15,14,14,16,14,14,14,14,16,15, + 15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15, + 14,14,16,15,14,15,15,17,15,15,14,14,17,15,15,14, + 14,17,15,15,14,14,17,15,16,14,14,16,14,14,14,14, + 17,15,15,13,13,17,15,15,13,13,16,15,15,13,13,17, + 16,16,14,14,17,15,14,15,14,17,15,15,13,13,17,15, + 15,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, + 18,19,14,15,15,19,18,14,14,14,19,19,15,14,14,19, + 19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19, + 15,16,16,19,20,15,15,15,19,19,15,15,15,19,19,15, + 16,16,20,20,15,15,15,18,19,15,15,16,19,20,15,15, + 15,19,18,15,15,15,18,18,15,16,16,21,20,15,15,15, + 19,19,15,15,15,19,19,15,15,14,19,20,15,15,15,20, + 19,15,16,16,19,20,15,15,15,19,19,15,15,15,20,21, + 15,14,15,19,19,14,12,12, 9, 9,14,14,15,21,19,14, + 14,14,18,19,14,15,15,19,20,14,14,14,19,19,15,15, + 15,19,20,15,15,14,21,19,15,15,15,20,19,15,14,15, + 20,21,15,15,15,18,18,15,15,15,20,21,16,14,14,18, + 19,15,15,15,20,19,15,15,15,18,21,15,15,15,19,19, + 15,15,15,19,20,16,15,14,20,19,15,16,15,19,19,15, + 15,15,19, 0,14,15,15,19,19,15,15,15,19,19,15,15, + 14,20,19,15,15,15,20,19,15,15,15,19,19,15,15,15, + 20,19,12,12,12,13,13,16,15,16,11,11,16,16,16,12, + 12,17,16,16,11,11,17,16,16,12,11,17,17,17,13,13, + 18,16,16,14,14,18,18,17,13,13,17,16,16,13,13,17, + 17,17,13,13,17,16,17,12,12,17,15,16,13,13,17,16, + 17,12,12,17,16,16,13,12,17,16,16,12,12,18,17,17, + 13,13,18,16,16,13,14,18,17,17,12,12,17,16,16,12, + 12,17,17,17,12,12,18,17,17,13,13,17,16,16,14,14, + 17,17,17,12,12,17,16,16,12,12,18,17,17,12,12,13, + 14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,16,14, + 14,13,13,16,14,14,13,13,17,16,15,15,15,16,15,16, + 16,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, + 14,17,15,15,14,14,16,15,16,16,16,17,15,15,14,14, + 16,15,15,14,15,16,15,15,14,14,17,15,15,15,15,16, + 16,16,15,16,18,15,14,13,14,17,15,15,14,14,17,14, + 14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,14, + 14,14,17,15,15,14,14,17,14,14,13,13,13,11,11,11, + 11,16,14,14,12,12,16,14,14,13,13,16,14,14,12,12, + 16,14,14,12,12,16,15,15,13,13,17,14,14,14,14,17, + 15,15,13,13,16,15,15,14,13,16,15,15,13,13,16,15, + 15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,15, + 13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14, + 14,17,15,15,12,12,17,14,15,13,13,17,15,15,12,12, + 16,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17, + 15,15,13,13,16,15,15,12,12,14,15,15, 8, 8,14,14, + 14,19,18,14,15,15,19,20,14,14,14,19,19,14,14,15, + 19,20,15,16,15,19,21,15,16,16,21,19,15,15,15,20, + 19,15,16,16,19,20,15,15,15,19,18,15,16,15,20,19, + 15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,14, + 15,15,19,19,15,15,15,21,19,15,17,16,19,20,15,14, + 15, 0,21,15,15,15,19,20,14,14,14,19,19,15,15,15, + 20,19,15,16,16,19,19,15,15,15,19,18,15,15,15,20, + 19,14,14,15,18,18,14,12,12, 9, 9,14,14,14,18,18, + 14,14,14,18,18,14,15,14,19,18,14,14,14,19,18,15, + 15,15,19,20,15,14,14,18,18,15,15,15,20,19,15,15, + 15,18,20,15,15,15,19,18,15,15,15,19,19,15,14,14, + 19,21,15,15,15,20,20,15,15,15,18,19,14,15,15,19, + 20,15,15,15,20,19,15,14,14,19,21,15,15,15,18,19, + 15,14,15,20,19,14,15,15,21,21,14,15,15,19,20,15, + 14,14,19,20,15,15,15,19,20,15,15,14,20,20,14,15, + 15,20,19,13,12,12,13,13,17,16,16,11,11,17,16,16, + 12,12,18,17,16,11,11,18,16,16,11,11,17,17,17,13, + 13,18,16,16,13,13,18,17,17,12,12,18,16,16,13,13, + 18,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, + 16,17,12,12,18,17,17,13,13,17,17,17,12,12,17,17, + 17,12,12,17,16,15,13,13,18,16,16,11,11,17,16,16, + 12,12,17,16,17,11,11,18,17,17,13,12,17,16,16,13, + 13,17,17,17,12,12,17,16,17,12,12,18,17,17,11,11, + 14,14,14, 9, 9,16,14,14,13,13,17,15,15,14,14,17, + 14,14,13,13,16,14,14,13,13,17,15,15,14,14,16,16, + 16,16,15,18,15,15,14,14,17,16,15,15,15,17,15,15, + 14,14,17,15,15,14,15,16,16,16,15,16,18,15,15,14, + 14,17,15,15,14,15,17,15,15,14,14,17,15,15,14,14, + 16,16,16,15,16,17,14,14,13,13,17,15,15,14,14,18, + 15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,14, + 14,13,13,17,15,15,14,14,17,14,14,13,13,13,11,11, + 11,11,16,14,14,12,12,16,14,14,12,13,17,15,14,11, + 11,17,14,14,11,11,17,15,15,13,14,17,14,14,14,14, + 17,15,15,13,13,17,14,14,13,13,17,15,15,13,13,17, + 15,15,13,13,17,14,14,14,14,17,15,15,13,13,18,14, + 15,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14, + 13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, + 12,17,16,15,13,13,17,14,14,13,13,17,15,15,12,12, + 16,15,15,12,12,16,15,15,12,12,13,15,15, 8, 8,14, + 14,14,18,19,14,15,15,19,20,14,14,14,18,18,14,15, + 15,18,18,15,16,16,19,19,15,16,17,20,20,15,15,15, + 19,19,15,16,16,18,20,15,15,15,19,19,15,15,16,18, + 18,15,17,16,19,19,15,15,15,18,21,15,16,16,21,20, + 15,15,15,19,21,15,16,15,20,19,15,16,17,20,20,15, + 15,15,19,19,15,16,16,21,20,15,15,15,19,20,15,15, + 15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15, + 20,21,15,15,15,21,19,14,12,12, 8, 8,14,14,14,20, + 18,14,13,13,19,19,14,14,14,19,18,15,14,14,19,20, + 14,15,15,20,20,15,14,14,21,20,15,15,15,20,20,15, + 15,14,21,19,15,15,15,19,19,15,15,15,19,20,15,14, + 14,20,20,15,15,15,19,20,15,14,14,19,20,15,15,15, + 20,20,15,15,15,20,19,15,14,14,20,21,15,15,15,20, + 21,15,14,14,20, 0,15,16,15,20,21,15,15,15,19,20, + 15,14,14,19,19,15,15,15,19,20,15,15,15,19,19,15, + 15,15,18,20,13,12,12,13,13,18,16,17,12,12,17,16, + 16,12,12,17,17,16,11,11,18,16,16,11,11,17,17,18, + 13,13,18,16,16,14,14,18,17,17,13,13,18,16,16,13, + 13,18,17,17,12,12,17,17,16,13,13,17,16,16,13,14, + 18,17,17,12,12,18,16,16,12,13,17,16,17,12,12,17, + 18,17,13,13,18,16,16,13,13,18,17,17,12,12,17,16, + 16,12,12,17,17,17,11,11,17,16,17,12,12,17,16,16, + 13,13,17,16,16,11,11,17,16,16,12,12,18,16,17,11, + 11,14,14,14, 9, 9,16,14,15,13,13,17,15,15,14,14, + 17,14,14,12,12,16,14,14,13,13,18,15,15,15,15,17, + 15,16,15,16,18,15,15,14,14,17,15,16,15,15,17,15, + 15,14,14,18,15,15,14,14,16,16,16,16,15,17,15,15, + 14,14,16,15,15,14,14,17,15,15,14,14,17,15,15,14, + 14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14, + 17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,18, + 15,14,14,14,17,15,15,14,14,18,15,15,13,13,13,12, + 12,11,11,16,14,14,12,12,16,14,14,13,13,17,15,15, + 12,12,17,14,14,12,12,17,15,15,14,14,17,14,14,14, + 14,17,15,15,13,13,17,15,14,13,13,17,15,15,13,13, + 17,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, + 14,14,13,13,16,15,15,13,13,17,15,16,13,13,17,14, + 14,14,13,17,15,15,12,12,16,15,14,12,12,17,15,15, + 12,12,16,15,16,13,13,16,14,14,14,13,17,15,15,12, + 12,16,14,14,12,12,17,15,15,12,12,14,15,15, 8, 8, + 14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, + 15,15,19,20,15,16,15,21,18,15,16,16,18, 0,15,15, + 15,19,20,15,16,16,20, 0,15,16,15,19,18,15,15,15, + 19,19,15,16,16,21,19,15,15,15,19,19,15,16,16,20, + 20,15,15,15,19,19,15,15,15,19,18,15,16,16,20,20, + 15,14,15,20,19,15,15,15,19,20,15,15,15,19,19,15, + 16,15,19,20,15,16,16,19,20,15,15,15,19,19,15,16, + 15,20,20,15,15,15,20,18,13,12,12, 8, 8,14,14,14, + 19,20,14,14,14,19,19,14,15,15,20,20,14,14,14,18, + 19,15,15,15,20, 0,15,14,14,18,20,15,15,15,19,19, + 15,15,15,21,19,15,15,15,19,20,15,15,15,20,21,15, + 14,14,20,19,15,15,15,20,19,15,15,14,21,19,15,15, + 15,19,18,15,15,15,20,19,15,14,14,19,19,15,15,16, + 20,19,15,15,15,20, 0,15,15,15,19,21,15,15,15,22, + 20,15,14,14,22,19,15,15,15,19,20,15,14,14,20,19, + 14,15,15,19,21, +}; + +static const static_codebook _44pn1_p3_1 = { + 5, 3125, + (long *)_vq_lengthlist__44pn1_p3_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44pn1_p3_1, + 0 +}; + +static const long _vq_quantlist__44pn1_p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44pn1_p4_0[] = { + 1, 7, 7,14,14, 6, 8, 8,15,16, 7, 8, 8,16,15, 0, + 14,14,17,17, 0,14,14,16,16, 7, 9, 9,16,16,10,11, + 11,17,18, 9, 8, 8,16,16, 0,14,14,19,19, 0,14,14, + 17,16, 8, 9, 9,16,16,12,12,12,17,17,10, 9, 9,16, + 16, 0,15,14,18,20, 0,14,14,17,17, 0,15,15,18,17, + 0,21, 0, 0,21, 0,13,13,17,17, 0,17,17, 0, 0, 0, + 15,15,17,17, 0,15,15,17,18, 0, 0, 0, 0,21, 0,13, + 13,17,17, 0,18,18, 0,21, 0,16,15,17,18, 6, 7, 7, + 14,14, 9,10,10,16,16,11,10,10,15,15, 0,21, 0,20, + 21, 0, 0, 0,18,20,10,10,10,15,16,12,13,13,18,18, + 12,11,11,15,15, 0, 0, 0,20,20, 0, 0,21,19,19,12, + 11,11,15,15,15,14,14,18,18,13,11,11,15,16, 0, 0, + 0,20,19, 0, 0, 0,20,21, 0, 0,20,19,19, 0, 0, 0, + 0, 0, 0,20, 0,17,18, 0, 0,21, 0, 0, 0, 0, 0,21, + 0, 0,21, 0,20,19, 0, 0, 0, 0, 0, 0,21, 0,18,18, + 0, 0, 0,21, 0, 0, 0, 0, 0,20, 7, 6, 6,13,13, 9, + 6, 6,12,12, 9, 7, 7,14,14, 0,10,10,12,12, 0,11, + 11,15,15, 9, 7, 7,14,14,12, 9, 9,14,14,10, 7, 7, + 14,13, 0,11,11,16,15, 0,11,11,14,14, 9, 7, 7,14, + 14,13,10,10,14,14,11, 7, 7,14,13, 0,11,11,16,16, + 0,11,11,14,14, 0,12,12,16,16, 0,19, 0,17,18, 0, + 10,10,14,14, 0,15,14, 0, 0, 0,12,12,14,14, 0,12, + 12,15,15, 0,20, 0,18,19, 0,10,10,14,14, 0,16,15, + 0,20, 0,13,13,14,14, 0,11,11,13,13, 0,12,13,16, + 16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, + 0,12,12,16,16, 0,15,15,18, 0, 0,12,12,16,16, 0, + 17,16,21,21, 0,16,17, 0, 0, 0,13,13,17,16, 0,16, + 16,20,21, 0,12,12,17,16, 0,17,17, 0,21, 0,17,17, + 21,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, + 0, 0,18,21, 0, 0, 0,18,19, 0, 0, 0,18,17,21,21, + 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, + 19,19, 0, 0, 0,11,11,12,12, 0,11,11,10,10, 0,12, + 12,13,13, 0,12,12, 9, 9, 0,14,14,13,13, 0,12,12, + 13,13, 0,14,14,12,13, 0,11,11,12,12, 0,13,13,13, + 13, 0,13,13,13,13, 0,12,12,13,13, 0,14,14,12,12, + 0,11,11,12,12, 0,14,13,14,14, 0,13,13,13,13, 0, + 15,15,14,15, 0, 0, 0,16,16, 0,12,12,13,13, 0,16, + 17,20,21, 0,14,13,12,12, 0,14,14,14,14, 0,21, 0, + 16,16, 0,12,12,13,13, 0,18,17,21, 0, 0,14,14,13, + 13, 7, 8, 8,17,17,11,10,10,18,18,12,10,10,17,17, + 0,15,15,20,18, 0,15,15,17,17,11, 9, 9,17,17,14, + 12,12,19,19,13, 9, 9,16,16, 0,15,14, 0,19, 0,14, + 14,16,16,12,10,10,20,18,16,13,13,21,20,14,10,10, + 17,17, 0,15,15,21,20, 0,15,14,17,17, 0,15,15,21, + 21, 0, 0,21, 0, 0, 0,13,13,18,18, 0,19,16, 0, 0, + 0,15,15,17,16, 0,16,16, 0,21, 0, 0, 0, 0,21, 0, + 13,14,18,17, 0,20,19, 0, 0, 0,15,15,18,18, 8, 7, + 7,15,15,12,11,11,17,16,13,11,11,16,16, 0, 0, 0, + 21,20, 0, 0, 0, 0,20,11,10,10,17,17,14,13,13,19, + 18,14,11,11,16,16, 0,20, 0,21,19, 0, 0,21, 0,20, + 12,11,11,17,17,16,15,15, 0,19,14,11,11,17,16, 0, + 21, 0, 0,19, 0, 0, 0,21,20, 0, 0,21,20, 0, 0, 0, + 0, 0, 0, 0, 0, 0,19,21, 0, 0, 0, 0, 0, 0, 0, 0, + 19,20, 0, 0, 0,20,21, 0, 0, 0, 0, 0, 0,20, 0,19, + 21, 0, 0, 0, 0, 0, 0, 0, 0,21,20,11,10, 9,15,15, + 14,11,11,15,15,14,11,11,16,16, 0,14,14,14,14, 0, + 16,15,17,16,13,11,11,16,16,16,13,13,16,16,15,10, + 10,15,15, 0,14,15,17,17, 0,14,14,16,15,13,11,11, + 16,16,17,15,14,16,16,15,10,10,15,15, 0,15,15,17, + 18, 0,15,15,16,16, 0,16,16,17,17, 0,21, 0,21,20, + 0,13,13,15,15, 0,18,18, 0,21, 0,15,15,15,15, 0, + 16,16,17,17, 0, 0, 0, 0,18, 0,13,13,15,15, 0,19, + 18, 0, 0, 0,15,15,16,16, 0,12,12,15,15, 0,13,13, + 17,17, 0,13,13,17,18, 0,16,17,21, 0, 0,20,18, 0, + 0, 0,13,13,17,17, 0,15,15, 0,18, 0,12,12,17,18, + 0,16,16, 0, 0, 0,17,17,21, 0, 0,13,13,18,18, 0, + 16,16,21,21, 0,12,12,17,18, 0,16,17,21, 0, 0,17, + 17, 0,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,16,15, + 0,21, 0,21,19, 0, 0, 0,18,18, 0, 0, 0,18,19, 0, + 0, 0, 0, 0, 0, 0, 0,16,16,21,21, 0,20,19, 0, 0, + 0,19,21, 0,21, 0,12,12,15,15, 0,12,12,15,16, 0, + 13,13,16,16, 0,14,14,15,15, 0,16,15,17,17, 0,13, + 13,17,17, 0,15,15,16,18, 0,12,12,16,16, 0,14,14, + 17,17, 0,15,14,16,16, 0,13,13,16,16, 0,16,15,17, + 17, 0,12,12,16,16, 0,15,15,18,18, 0,14,14,17,16, + 0,16,16,17,18, 0, 0, 0,20,21, 0,13,13,16,17, 0, + 17,17, 0, 0, 0,15,15,16,16, 0,15,16,17,17, 0, 0, + 0,19, 0, 0,13,13,15,16, 0,19,18, 0, 0, 0,16,15, + 16,17, 8, 8, 8,17,17,13,11,10,17,18,13,10,10,17, + 17, 0,15,15,20,19, 0,15,15,17,17,12,10,10,19,18, + 15,12,12,20,18,14,10,10,17,16, 0,15,15,20,20, 0, + 14,15,16,16,13,10,10,17,17,17,14,14, 0,18,15,10, + 10,17,17, 0,16,15,20,20, 0,14,14,17,17, 0,15,16, + 20,20, 0, 0,21, 0, 0, 0,13,13,17,17, 0,18,17, 0, + 0, 0,15,16,17,18, 0,15,15,18,21, 0, 0, 0,21, 0, + 0,13,13,18,18, 0,19,19, 0, 0, 0,16,16,18,17, 9, + 8, 8,15,15,12,11,11,16,16,13,11,11,16,15, 0, 0, + 0, 0,21, 0,21, 0,19,19,12,11,11,17,18,15,13,13, + 18,19,14,11,11,16,16, 0, 0,21,21,19, 0, 0, 0,21, + 20,13,11,11,18,17,17,14,15,20,21,15,11,12,16,16, + 0, 0, 0,20, 0, 0, 0,21, 0,19, 0, 0, 0, 0,19, 0, + 0, 0, 0, 0, 0,21,21,19,19, 0, 0, 0,21, 0, 0, 0, + 0,19,21, 0, 0, 0,19,20, 0, 0, 0,21, 0, 0, 0,21, + 19,19, 0, 0, 0, 0, 0, 0, 0, 0,21,20, 0,11,11,15, + 15, 0,12,12,15,16, 0,12,12,16,16, 0,15,15,16,15, + 0,16,16,17,17, 0,12,12,17,17, 0,14,14,17,17, 0, + 11,11,16,16, 0,15,15,19,18, 0,15,15,16,16, 0,12, + 12,17,16, 0,14,15,16,16, 0,11,11,15,15, 0,16,16, + 18,19, 0,15,15,15,16, 0,17,17,18,20, 0,21, 0,21, + 19, 0,14,14,16,16, 0,18,18, 0, 0, 0,16,16,15,15, + 0,16,16,18,17, 0, 0, 0,19,20, 0,14,14,16,16, 0, + 19,19, 0, 0, 0,16,17,15,15, 0,12,12,14,15, 0,13, + 13,16,17, 0,12,12,17,17, 0,17,16, 0, 0, 0,18,17, + 21, 0, 0,13,13,19,17, 0,15,15,20,21, 0,12,12,17, + 17, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,13,13,17,18, + 0,16,16,21, 0, 0,12,12,17,17, 0,17,17, 0, 0, 0, + 17,17, 0, 0, 0,18,21, 0, 0, 0, 0, 0, 0, 0, 0,15, + 15,21, 0, 0,20,21, 0, 0, 0,18,19, 0, 0, 0,18,17, + 0, 0, 0, 0, 0, 0, 0, 0,16,16,21, 0, 0,21,21, 0, + 0, 0,18,19, 0, 0, 0,12,12,16,16, 0,13,13,16,17, + 0,13,13,17,16, 0,14,14,16,16, 0,16,15,19,18, 0, + 13,13,17,17, 0,15,15,18,18, 0,12,12,16,16, 0,15, + 15,18,19, 0,15,15,17,16, 0,13,13,17,17, 0,16,16, + 18,17, 0,12,12,17,16, 0,15,15,18,18, 0,15,15,17, + 17, 0,16,16, 0,19, 0, 0, 0, 0, 0, 0,14,14,16,17, + 0,18,18, 0, 0, 0,15,15,17,17, 0,16,16,21,19, 0, + 21, 0,21,21, 0,13,14,16,16, 0,19,19, 0, 0, 0,15, + 16,16,16, 0,11,11,17,16, 0,15,14,19,18, 0,14,14, + 19,19, 0,18,17,18,20, 0,17,17,18,19, 0,13,13,17, + 17, 0,16,17,21,18, 0,13,13,17,16, 0,18,17,19, 0, + 0,16,17,18,18, 0,12,12,19,18, 0,18,18,20,20, 0, + 13,13,17,17, 0,17,17,21, 0, 0,16,17,17,18, 0,18, + 17,19,18, 0, 0, 0, 0, 0, 0,14,14,17,17, 0,19,19, + 21, 0, 0,16,16,16,17, 0,17,17,19,20, 0, 0, 0, 0, + 21, 0,15,15,17,18, 0,21,21, 0, 0, 0,17,17,17,18, + 0,10,10,15,15, 0,15,14,17,18, 0,14,14,16,16, 0, + 0, 0,18, 0, 0,21, 0,19, 0, 0,13,13,17,16, 0,17, + 17,18, 0, 0,14,14,16,15, 0, 0, 0,21, 0, 0,21, 0, + 19,18, 0,13,13,17,17, 0,18,18,20,20, 0,15,15,16, + 16, 0, 0, 0,21,21, 0, 0, 0,20,20, 0, 0, 0,19, 0, + 0, 0, 0, 0, 0, 0,21,20,18,18, 0, 0, 0, 0, 0, 0, + 0, 0, 0,20, 0, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, + 0,19,18, 0, 0, 0, 0,21, 0, 0, 0,18,20, 0,18,19, + 16,17, 0,21,19,17,17, 0, 0,21,18,18, 0, 0,21,20, + 19, 0, 0, 0,20,20, 0, 0,21,17,17, 0, 0, 0,19,19, + 0,20,20,17,17, 0, 0, 0, 0,20, 0, 0,20,18,18, 0, + 21,20,17,17, 0, 0, 0,20,21, 0,19, 0,17,17, 0, 0, + 21, 0, 0, 0,20, 0,18,19, 0, 0, 0,21,21, 0, 0, 0, + 0,21, 0,20,20,17,17, 0, 0, 0, 0, 0, 0,21, 0,18, + 17, 0, 0, 0,20,19, 0, 0, 0, 0,21, 0,20,20,17,17, + 0, 0, 0, 0, 0, 0,21,21,18,18, 0,12,12,15,14, 0, + 14,14,17,17, 0,14,14,17,16, 0,18,18,21, 0, 0,19, + 20, 0, 0, 0,13,13,18,17, 0,16,16,19,18, 0,13,13, + 17,17, 0,17,17, 0, 0, 0,17,17,21, 0, 0,13,13,17, + 17, 0,17,17,21,20, 0,13,13,18,17, 0,18,19,21,21, + 0,19,18, 0, 0, 0,18,17, 0, 0, 0, 0, 0, 0, 0, 0, + 15,16, 0, 0, 0,21,21, 0, 0, 0,20,18,21, 0, 0,17, + 18, 0, 0, 0, 0, 0, 0, 0, 0,15,16, 0, 0, 0, 0,20, + 0, 0, 0, 0,19, 0, 0, 0,15,15,18,19, 0,18,17,21, + 0, 0,16,18, 0,20, 0,17,18,21, 0, 0,18,20, 0, 0, + 0,16,16,21,21, 0,19,20,21, 0, 0,16,15, 0,21, 0, + 18,20, 0, 0, 0,18,19, 0, 0, 0,16,15,21,21, 0,21, + 0, 0, 0, 0,16,15,21, 0, 0,20,19, 0, 0, 0,18,21, + 21, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0, + 20, 0,21, 0, 0, 0, 0,17,18,20,21, 0,18,18,21,21, + 0, 0, 0, 0, 0, 0,16,16,20, 0, 0, 0,21, 0, 0, 0, + 21,18, 0, 0, 0,12,12,20,17, 0,15,15,19,18, 0,14, + 14,19,18, 0,18,17,21,19, 0,17,17,21,17, 0,13,13, + 21,19, 0,16,17,20,19, 0,13,13,16,16, 0,17,17,20, + 21, 0,16,16,19,17, 0,13,13,18,18, 0,17,19,19,19, + 0,13,13,17,17, 0,18,18, 0,19, 0,16,17,18,18, 0, + 16,17,19,21, 0, 0, 0, 0, 0, 0,15,15,16,17, 0,20, + 19,21, 0, 0,17,17,17,17, 0,17,17,21,19, 0, 0, 0, + 0, 0, 0,15,15,17,17, 0,21, 0, 0, 0, 0,18,18,17, + 17, 0,10,10,15,15, 0,15,15,17,17, 0,15,14,16,16, + 0, 0, 0,21,19, 0,21,21,19,21, 0,13,13,17,16, 0, + 17,17,18,19, 0,14,15,16,15, 0, 0, 0,21,19, 0,21, + 21,18,19, 0,14,14,16,17, 0,18,18,18,19, 0,15,15, + 15,16, 0, 0,21, 0,21, 0, 0, 0,19,20, 0, 0, 0,21, + 19, 0, 0, 0, 0, 0, 0,21,21,19,17, 0, 0, 0, 0, 0, + 0, 0, 0,21,21, 0,21, 0, 0,21, 0, 0, 0, 0, 0, 0, + 21,21,19,18, 0, 0, 0, 0, 0, 0, 0, 0, 0,19, 0,21, + 18,18,17, 0,21, 0,20,20, 0, 0, 0,18,20, 0, 0,21, + 18,21, 0, 0, 0,21,18, 0, 0, 0, 0,19, 0, 0, 0,21, + 21, 0,20,21,17,19, 0,21, 0,21, 0, 0,21, 0,18,18, + 0,20,21,17,18, 0, 0, 0,21,19, 0,20,21,17,18, 0, + 0, 0,21,21, 0, 0, 0,20,19, 0, 0, 0,21,21, 0, 0, + 0, 0, 0, 0,21,21,19,18, 0, 0, 0, 0, 0, 0, 0,21, + 19,18, 0,21,21,19, 0, 0, 0, 0,21, 0, 0,21,21,18, + 17, 0, 0, 0, 0, 0, 0,21, 0,21,18, 0,12,12,14,14, + 0,15,14,17,17, 0,14,14,17,16, 0,19,17, 0, 0, 0, + 19,19, 0, 0, 0,13,13,17,17, 0,17,17,20,20, 0,13, + 13,18,18, 0,18,17, 0, 0, 0,18,21, 0, 0, 0,13,13, + 17,17, 0,18,18,21,20, 0,14,14,18,19, 0,19,18,21, + 0, 0,19,19, 0, 0, 0,20,18,20, 0, 0, 0, 0, 0, 0, + 0,15,16, 0, 0, 0,21,21, 0, 0, 0,19,19, 0, 0, 0, + 18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0, 0, + 0, 0, 0, 0,19,20, 0, 0, 0,15,15,20,21, 0,17,17, + 21,21, 0,17,17, 0, 0, 0,19,18, 0, 0, 0,18,19, 0, + 0, 0,17,16, 0,21, 0, 0,20, 0, 0, 0,16,16, 0,20, + 0,19,19, 0,21, 0,19,18, 0,21, 0,16,16, 0, 0, 0, + 21,21, 0, 0, 0,16,16, 0, 0, 0,21,21, 0, 0, 0,19, + 19, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17, + 0,21, 0, 0,20, 0, 0, 0,20,18,21,21, 0,19,18, 0, + 20, 0, 0, 0, 0, 0, 0,16,17,21, 0, 0, 0,21, 0, 0, + 0,19,20,21,20, +}; + +static const static_codebook _44pn1_p4_0 = { + 5, 3125, + (long *)_vq_lengthlist__44pn1_p4_0, + 1, -528744448, 1616642048, 3, 0, + (long *)_vq_quantlist__44pn1_p4_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p4_1[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44pn1_p4_1[] = { + 2, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _44pn1_p4_1 = { + 1, 7, + (long *)_vq_lengthlist__44pn1_p4_1, + 1, -533200896, 1611661312, 3, 0, + (long *)_vq_quantlist__44pn1_p4_1, + 0 +}; + +static const long _vq_quantlist__44pn1_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p5_0[] = { + 1, 7, 7, 6, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, + 8, 8, 7, 9, 9,11,12,11, 9, 9, 9, 6, 7, 7,10,11, + 11,10,10,10,10,11,11,15,14,14,12,12,12,11,11,11, + 14,14,14,12,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, + 8, 8,12,10,10,10, 7, 7, 8, 7, 7,12,10,10,10, 7, + 7, 6, 7, 7,12,11,11,12,10,10,11,10,10,14,14,13, + 13,10,10,11,10,10,16,14,14,14,11,10, 7, 7, 7,13, + 12,12,12,12,11,11,11,11,15,14,17,13,12,12,12,11, + 11,15,15,15,14,13,13,10, 9, 9,14,12,11,13,11,11, + 12,11,11,16,15,14,14,11,11,12,11,11,17,14,14,15, + 11,11, 7, 8, 8,12,11,11,13,10,10,11,10,10,17,14, + 13,14,10,10,12,10,10,18,15,15,14,10,10, 8, 7, 7, + 13,12,12,13,11,11,12,11,11,16,14,15,14,12,12,12, + 11,11,18,16,16,14,12,12,11,10,10,13,12,11,13,11, + 11,13,12,12, 0,15,14,14,11,11,13,11,11,16,15,15, + 15,11,11, +}; + +static const static_codebook _44pn1_p5_0 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p5_0, + 1, -527106048, 1620377600, 2, 0, + (long *)_vq_quantlist__44pn1_p5_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p5_1[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p5_1[] = { + 2, 6, 7, 6, 8, 8, 7, 7, 8, 7, 8, 8, 9, 9, 9, 8, + 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 6, 6, 9, 7, + 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, + 10, 9, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, + 7, 7,10, 8, 8,10, 6, 6, 9, 7, 7,10, 8, 8,10, 6, + 6, 7, 7, 7,11, 9, 9,11, 9, 9,10, 9, 9,12,10,10, + 12, 8, 8,11, 9, 9,13, 9,10,12, 8, 8, 8, 7, 7,11, + 9,10,11,10,10,10, 9, 9,11,11,11,11, 9, 9,11,10, + 9,12,11,11,11, 9,10,10, 8, 8,11, 9,10,11, 9, 9, + 11, 9, 9,12,10,10,11, 9, 9,11, 9, 9,12,10,11,11, + 9, 9, 8, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,13, 9, + 9,13, 8, 8,12, 9, 9,13,10,10,12, 8, 8, 9, 7, 7, + 11,10,10,11,10,10,11,10,10,12,11,11,11,10, 9,11, + 10,10,11,11,11,11, 9, 9,11, 9, 9,12,10,10,11,10, + 10,12,10,10,11,11,11,11, 9, 9,11,10,10,12,11,11, + 11, 9, 9, +}; + +static const static_codebook _44pn1_p5_1 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p5_1, + 1, -530841600, 1616642048, 2, 0, + (long *)_vq_quantlist__44pn1_p5_1, + 0 +}; + +static const long _vq_quantlist__44pn1_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44pn1_p6_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, +}; + +static const static_codebook _44pn1_p6_0 = { + 5, 243, + (long *)_vq_lengthlist__44pn1_p6_0, + 1, -516716544, 1630767104, 2, 0, + (long *)_vq_quantlist__44pn1_p6_0, + 0 +}; + +static const long _vq_quantlist__44pn1_p6_1[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44pn1_p6_1[] = { + 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _44pn1_p6_1 = { + 1, 25, + (long *)_vq_lengthlist__44pn1_p6_1, + 1, -518864896, 1620639744, 5, 0, + (long *)_vq_quantlist__44pn1_p6_1, + 0 +}; + +static const long _vq_quantlist__44pn1_p6_2[] = { + 12, + 11, + 13, + 10, + 14, + 9, + 15, + 8, + 16, + 7, + 17, + 6, + 18, + 5, + 19, + 4, + 20, + 3, + 21, + 2, + 22, + 1, + 23, + 0, + 24, +}; + +static const long _vq_lengthlist__44pn1_p6_2[] = { + 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 4, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44pn1_p6_2 = { + 1, 25, + (long *)_vq_lengthlist__44pn1_p6_2, + 1, -529006592, 1611661312, 5, 0, + (long *)_vq_quantlist__44pn1_p6_2, + 0 +}; + +static const long _huff_lengthlist__44pn1_short[] = { + 4, 3, 7, 9,12,16,16, 3, 2, 5, 7,11,14,15, 7, 4, + 5, 6, 9,12,15, 8, 5, 5, 5, 8,10,14, 9, 7, 6, 6, + 8,10,12,12,10,10, 7, 6, 8,10,15,12,10, 6, 4, 7, + 9, +}; + +static const static_codebook _huff_book__44pn1_short = { + 2, 49, + (long *)_huff_lengthlist__44pn1_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + diff --git a/Dependencies/libvorbis/lib/books/coupled/res_books_stereo.h b/Dependencies/libvorbis/lib/books/coupled/res_books_stereo.h new file mode 100644 index 0000000..5f26215 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/coupled/res_books_stereo.h @@ -0,0 +1,15783 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: static codebooks autogenerated by huff/huffbuld + last modified: $Id: res_books_stereo.h 17025 2010-03-25 04:56:56Z xiphmont $ + + ********************************************************************/ + +#include "codebook.h" + +static const long _vq_quantlist__16c0_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c0_s_p1_0[] = { + 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, + 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, + 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, + 0, 0, 0, 9, 9,12, 0, 0, 0, 0, 0, 0,10,12,11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, + 0, 0, 0, 0, 9,12,10, 0, 0, 0, 0, 0, 0,10,11,12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, + 0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,12,11, 0, + 0, 0, 0, 0, 0, 9,10,12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,12, + 0, 0, 0, 0, 0, 0, 9,12, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c0_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__16c0_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16c0_s_p1_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c0_s_p3_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 7, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c0_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__16c0_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c0_s_p3_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16c0_s_p4_0[] = { + 1, 3, 2, 7, 8, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c0_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__16c0_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16c0_s_p4_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16c0_s_p5_0[] = { + 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, + 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 8, 0, 0, 0, 7, 7, + 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0, 0, + 8, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _16c0_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__16c0_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16c0_s_p5_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16c0_s_p6_0[] = { + 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, + 11,11, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, + 11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, + 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, + 10,11,11,12,12,12,13, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10,10,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, 0, 0, + 10,10,10,11,11,11,12,12,13,13,13,14, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,12,13,13,14,15,14, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,14,14,15, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,13,14, + 14, +}; + +static const static_codebook _16c0_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__16c0_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__16c0_s_p6_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c0_s_p7_0[] = { + 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,11,10,10,11, + 11,10, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, + 11,11,11,10, 6, 9, 9,11,12,12,11, 9, 9, 6, 9,10, + 11,12,12,11, 9,10, 7,11,11,11,11,11,12,13,12, 6, + 9,10,11,10,10,12,13,13, 6,10, 9,11,10,10,11,12, + 13, +}; + +static const static_codebook _16c0_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__16c0_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__16c0_s_p7_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16c0_s_p7_1[] = { + 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, + 8, 8, 8, 9, 9, 9,10,10,10, 6, 7, 8, 8, 8, 8, 9, + 8,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, 7, + 7, 8, 8, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9, 9, + 9, 9,11,11,11, 8, 8, 9, 9, 9, 9, 9,10,10,11,11, + 9, 9, 9, 9, 9, 9, 9,10,11,11,11,10,11, 9, 9, 9, + 9,10, 9,11,11,11,10,11,10,10, 9, 9,10,10,11,11, + 11,11,11, 9, 9, 9, 9,10,10, +}; + +static const static_codebook _16c0_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__16c0_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16c0_s_p7_1, + 0 +}; + +static const long _vq_quantlist__16c0_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16c0_s_p8_0[] = { + 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8,10,10, 6, 5, 6, + 8, 8, 8, 8, 8, 8, 8, 9,10,10, 7, 6, 6, 8, 8, 8, + 8, 8, 8, 8, 8,10,10, 0, 8, 8, 8, 8, 9, 8, 9, 9, + 9,10,10,10, 0, 9, 8, 8, 8, 9, 9, 8, 8, 9, 9,10, + 10, 0,12,11, 8, 8, 9, 9, 9, 9,10,10,11,10, 0,12, + 13, 8, 8, 9,10, 9, 9,11,11,11,12, 0, 0, 0, 8, 8, + 8, 8,10, 9,12,13,12,14, 0, 0, 0, 8, 8, 8, 9,10, + 10,12,12,13,14, 0, 0, 0,13,13, 9, 9,11,11, 0, 0, + 14, 0, 0, 0, 0,14,14,10,10,12,11,12,14,14,14, 0, + 0, 0, 0, 0,11,11,13,13,14,13,14,14, 0, 0, 0, 0, + 0,12,13,13,12,13,14,14,14, +}; + +static const static_codebook _16c0_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__16c0_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__16c0_s_p8_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c0_s_p8_1[] = { + 1, 4, 3, 5, 5, 7, 7, 7, 6, 6, 7, 7, 7, 5, 5, 7, + 7, 7, 6, 6, 7, 7, 7, 6, 6, +}; + +static const static_codebook _16c0_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__16c0_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c0_s_p8_1, + 0 +}; + +static const long _vq_quantlist__16c0_s_p9_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c0_s_p9_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _16c0_s_p9_0 = { + 4, 81, + (long *)_vq_lengthlist__16c0_s_p9_0, + 1, -518803456, 1628680192, 2, 0, + (long *)_vq_quantlist__16c0_s_p9_0, + 0 +}; + +static const long _vq_quantlist__16c0_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16c0_s_p9_1[] = { + 1, 5, 5, 5, 5, 9,11,11,10,10,10,10,10,10,10, 7, + 6, 6, 6, 6,10,10,10,10,10,10,10,10,10,10, 7, 6, + 6, 6, 6,10, 9,10,10,10,10,10,10,10,10,10, 7, 7, + 8, 9,10,10,10,10,10,10,10,10,10,10,10, 8, 7,10, + 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _16c0_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__16c0_s_p9_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__16c0_s_p9_1, + 0 +}; + +static const long _vq_quantlist__16c0_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__16c0_s_p9_2[] = { + 1, 5, 5, 7, 8, 8, 7, 9, 9, 9,12,12,11,12,12,10, + 10,11,12,12,12,11,12,12, 8, 9, 8, 7, 9,10,10,11, + 11,10,11,12,10,12,10,12,12,12,11,12,11, 9, 8, 8, + 9,10, 9, 8, 9,10,12,12,11,11,12,11,10,11,12,11, + 12,12, 8, 9, 9, 9,10,11,12,11,12,11,11,11,11,12, + 12,11,11,12,12,11,11, 9, 9, 8, 9, 9,11, 9, 9,10, + 9,11,11,11,11,12,11,11,10,12,12,12, 9,12,11,10, + 11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10, + 10, 9,10, 9,10,10, 9, 9, 9,10,10,12,10,11,11, 9, + 11,11,10,11,11,11,10,10,10, 9, 9,10,10, 9, 9,10, + 11,11,10,11,10,11,10,11,11,10,11,11,11,10, 9,10, + 10, 9,10, 9, 9,11, 9, 9,11,10,10,11,11,10,10,11, + 10,11, 8, 9,11,11,10, 9,10,11,11,10,11,11,10,10, + 10,11,10, 9,10,10,11, 9,10,10, 9,11,10,10,10,10, + 11,10,11,11, 9,11,10,11,10,10,11,11,10,10,10, 9, + 10,10,11,11,11, 9,10,10,10,10,10,11,10,10,10, 9, + 10,10,11,10,10,10,10,10, 9,10,11,10,10,10,10,11, + 11,11,10,10,10,10,10,11,10,11,10,11,10,10,10, 9, + 11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11, + 11, 9,10,10,10,11,10,11,10,10,10,11, 9,10,11,10, + 11,10,10, 9,10,10,10,11,10,11,10,10,10,10,10,11, + 11,10,11,11,10,10,11,11,10, 9, 9,10,10,10,10,10, + 9,11, 9,10,10,10,11,11,10,10,10,10,11,11,11,10, + 9, 9,10,10,11,10,10,10,10,10,11,11,11,10,10,10, + 11,11,11, 9,10,10,10,10, 9,10, 9,10,11,10,11,10, + 10,11,11,10,11,11,11,11,11,10,11,10,10,10, 9,11, + 11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10, + 10,11,10,10,11, 9,10,10,10, +}; + +static const static_codebook _16c0_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__16c0_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__16c0_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__16c0_s_single[] = { + 3, 4,19, 7, 9, 7, 8,11, 9,12, 4, 1,19, 6, 7, 7, + 8,10,11,13,18,18,18,18,18,18,18,18,18,18, 8, 6, + 18, 8, 9, 9,11,12,14,18, 9, 6,18, 9, 7, 8, 9,11, + 12,18, 7, 6,18, 8, 7, 7, 7, 9,11,17, 8, 8,18, 9, + 7, 6, 6, 8,11,17,10,10,18,12, 9, 8, 7, 9,12,18, + 13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18, + 16,16,18,18, +}; + +static const static_codebook _huff_book__16c0_s_single = { + 2, 100, + (long *)_huff_lengthlist__16c0_s_single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__16c1_s_long[] = { + 2, 5,20, 7,10, 7, 8,10,11,11, 4, 2,20, 5, 8, 6, + 7, 9,10,10,20,20,20,20,19,19,19,19,19,19, 7, 5, + 19, 6,10, 7, 9,11,13,17,11, 8,19,10, 7, 7, 8,10, + 11,15, 7, 5,19, 7, 7, 5, 6, 9,11,16, 7, 6,19, 8, + 7, 6, 6, 7, 9,13, 9, 9,19,11, 9, 8, 6, 7, 8,13, + 12,14,19,16,13,10, 9, 8, 9,13,14,17,19,18,18,17, + 12,11,11,13, +}; + +static const static_codebook _huff_book__16c1_s_long = { + 2, 100, + (long *)_huff_lengthlist__16c1_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__16c1_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c1_s_p1_0[] = { + 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, + 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, + 0, 0, 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,11, + 0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c1_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__16c1_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16c1_s_p1_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c1_s_p3_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c1_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__16c1_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c1_s_p3_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16c1_s_p4_0[] = { + 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c1_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__16c1_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16c1_s_p4_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16c1_s_p5_0[] = { + 1, 3, 3, 5, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, + 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 8, 8, + 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, + 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _16c1_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__16c1_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16c1_s_p5_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16c1_s_p6_0[] = { + 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,12, + 12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, + 12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, + 11,12,12, 0, 0, 0, 8, 8, 8, 9,10, 9,10,10,10,10, + 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,11, + 11,11,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, + 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, + 10,11,11,12,12,13,13, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, + 14, +}; + +static const static_codebook _16c1_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__16c1_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__16c1_s_p6_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c1_s_p7_0[] = { + 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9,10,10, + 10, 9, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, + 11,11,10,10, 6,10, 9,11,11,11,11,10,10, 6,10,10, + 11,11,11,11,10,10, 7,11,11,11,11,11,12,12,11, 6, + 10,10,11,10,10,11,11,11, 6,10,10,10,11,10,11,11, + 11, +}; + +static const static_codebook _16c1_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__16c1_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__16c1_s_p7_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16c1_s_p7_1[] = { + 2, 3, 3, 5, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, + 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, + 8, 9, 9,10,10,10,10,10, 9, 9, 8, 8, 9, 9,10,10, + 10,10,10, 8, 8, 8, 8, 9, 9, +}; + +static const static_codebook _16c1_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__16c1_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16c1_s_p7_1, + 0 +}; + +static const long _vq_quantlist__16c1_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16c1_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, + 7, 8, 8, 9, 8, 8, 9, 9,10,11, 6, 5, 5, 8, 8, 9, + 9, 8, 8, 9,10,10,11, 0, 8, 8, 8, 9, 9, 9, 9, 9, + 10,10,11,11, 0, 9, 9, 9, 8, 9, 9, 9, 9,10,10,11, + 11, 0,13,13, 9, 9,10,10,10,10,11,11,12,12, 0,14, + 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, + 9, 9,11,11,12,12,13,12, 0, 0, 0,10,10, 9, 9,10, + 10,12,12,13,13, 0, 0, 0,13,14,11,10,11,11,12,12, + 13,14, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,12,12,12,12,13,13,14,15, 0, 0, 0, 0, + 0,12,12,12,12,13,13,14,15, +}; + +static const static_codebook _16c1_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__16c1_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__16c1_s_p8_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c1_s_p8_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _16c1_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__16c1_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c1_s_p8_1, + 0 +}; + +static const long _vq_quantlist__16c1_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16c1_s_p9_0[] = { + 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _16c1_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__16c1_s_p9_0, + 1, -513964032, 1628680192, 4, 0, + (long *)_vq_quantlist__16c1_s_p9_0, + 0 +}; + +static const long _vq_quantlist__16c1_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16c1_s_p9_1[] = { + 1, 4, 4, 4, 4, 8, 8,12,13,14,14,14,14,14,14, 6, + 6, 6, 6, 6,10, 9,14,14,14,14,14,14,14,14, 7, 6, + 5, 6, 6,10, 9,12,13,13,13,13,13,13,13,13, 7, 7, + 9, 9,11,11,12,13,13,13,13,13,13,13,13, 7, 7, 8, + 8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10, + 13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12, + 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13, +}; + +static const static_codebook _16c1_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__16c1_s_p9_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__16c1_s_p9_1, + 0 +}; + +static const long _vq_quantlist__16c1_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__16c1_s_p9_2[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9,10, + 10,10, 9,10,10,11,12,12, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,10,10,10,11,11,10,12,11,11,13,11, 7, 7, 8, + 8, 8, 8, 9, 9, 9,10,10,10,10, 9,10,10,11,11,12, + 11,11, 8, 8, 8, 8, 9, 9,10,10,10,10,11,11,11,11, + 11,11,11,12,11,12,12, 8, 8, 9, 9, 9, 9, 9,10,10, + 10,10,10,10,11,11,11,11,11,11,12,11, 9, 9, 9, 9, + 10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12, + 11, 9, 9, 9, 9,10,10,10,10,11,11,11,11,11,11,11, + 11,11,12,12,12,13, 9,10,10, 9,11,10,10,10,10,11, + 11,11,11,11,10,11,12,11,12,12,11,12,11,10, 9,10, + 10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12, + 12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11, + 11,11,12,13,12,12,11, 9,10,10,11,11,10,11,11,11, + 12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10, + 11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12, + 12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11, + 12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11, + 11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11, + 11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12, + 12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11, + 12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12, + 11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11, + 12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12, + 12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13, + 12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11, + 11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11, + 11,11,11,11,12,11,11,12,11, +}; + +static const static_codebook _16c1_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__16c1_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__16c1_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__16c1_s_short[] = { + 5, 6,17, 8,12, 9,10,10,12,13, 5, 2,17, 4, 9, 5, + 7, 8,11,13,16,16,16,16,16,16,16,16,16,16, 6, 4, + 16, 5,10, 5, 7,10,14,16,13, 9,16,11, 8, 7, 8, 9, + 13,16, 7, 4,16, 5, 7, 4, 6, 8,11,13, 8, 6,16, 7, + 8, 5, 5, 7, 9,13, 9, 8,16, 9, 8, 6, 6, 7, 9,13, + 11,11,16,10,10, 7, 7, 7, 9,13,13,13,16,13,13, 9, + 9, 9,10,13, +}; + +static const static_codebook _huff_book__16c1_s_short = { + 2, 100, + (long *)_huff_lengthlist__16c1_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__16c2_s_long[] = { + 4, 7, 9, 9, 9, 8, 9,10,13,16, 5, 4, 5, 6, 7, 7, + 8, 9,12,16, 6, 5, 5, 5, 7, 7, 9,10,12,15, 7, 6, + 5, 4, 5, 6, 8, 9,10,13, 8, 7, 7, 5, 5, 5, 7, 9, + 10,12, 7, 7, 7, 6, 5, 5, 6, 7,10,12, 8, 8, 8, 7, + 7, 5, 5, 6, 9,11, 8, 9, 9, 8, 8, 6, 6, 5, 8,11, + 10,11,12,12,11, 9, 9, 8, 9,12,13,14,15,15,14,12, + 12,11,11,13, +}; + +static const static_codebook _huff_book__16c2_s_long = { + 2, 100, + (long *)_huff_lengthlist__16c2_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__16c2_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c2_s_p1_0[] = { + 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c2_s_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__16c2_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16c2_s_p1_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c2_s_p2_0[] = { + 2, 4, 4, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, + 0, 0, 8, 8, 0, 0, 0, 8, 8, 4, 4, 4, 8, 7, 0, 0, + 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, + 9, 9, 4, 4, 4, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, + 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 7, 8, 8,10, 9, + 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0,14,13, 0, + 0, 0,14,14, 7, 8, 8, 9,10, 0, 0, 0,11,12, 0, 0, + 0,11,11, 0, 0, 0,14,14, 0, 0, 0,14,14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,11,11, 0, 0, 0, + 12,11, 0, 0, 0,12,12, 0, 0, 0,13,12, 0, 0, 0,13, + 13, 8, 8, 8,11,11, 0, 0, 0,11,11, 0, 0, 0,12,12, + 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 9, 8,12,11, 0, 0, 0,12,12, 0, + 0, 0,12,11, 0, 0, 0,13,13, 0, 0, 0,13,13, 8, 8, + 8,11,12, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, + 13,14, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8, 9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13, + 13, 0, 0, 0,13,12, 0, 0, 0,13,13, 8, 9, 9,14,14, + 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12,13, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, + 0,13,13, 0, 0, 0,13,12, 8, 9, 9,14,14, 0, 0, 0, + 13,13, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12, + 12, +}; + +static const static_codebook _16c2_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__16c2_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c2_s_p2_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16c2_s_p3_0[] = { + 1, 3, 3, 5, 5, 7, 7, 8, 8, 0, 0, 0, 6, 6, 8, 8, + 9, 9, 0, 0, 0, 6, 6, 8, 8, 9, 9, 0, 0, 0, 7, 7, + 8, 9,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, 0, 0, + 8, 8, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c2_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__16c2_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16c2_s_p3_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16c2_s_p4_0[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, + 9, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, + 11,10, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, + 10,10,10, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11, 0, 0, 0, 7, 6, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, + 11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, + 10,11,11,11,11,12,12, 0, 0, 0, 7, 8, 8, 8, 9, 9, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, + 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _16c2_s_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__16c2_s_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__16c2_s_p4_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16c2_s_p5_0[] = { + 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,11,10,10, + 10,11, 4, 6, 6,10,10,11,10,11,10, 5,10,10, 9,12, + 11,10,12,12, 7,10,10,12,12,12,12,13,13, 7,11,10, + 11,12,12,12,13,13, 6,11,10,10,12,12,11,12,12, 7, + 11,10,12,13,13,12,12,12, 7,10,11,12,13,13,12,12, + 12, +}; + +static const static_codebook _16c2_s_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__16c2_s_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__16c2_s_p5_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16c2_s_p5_1[] = { + 2, 3, 3, 6, 6, 6, 6, 7, 7, 7, 7,11,10,10, 6, 6, + 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, + 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, 6, + 7, 8, 8, 8, 8, 9, 9,11,11,11, 7, 7, 8, 8, 8, 8, + 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, + 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,11,11, 8, 8, 8, + 8, 8, 8,12,11,11,11,11, 8, 8, 8, 8, 8, 8,12,11, + 11,11,11, 7, 7, 8, 8, 8, 8, +}; + +static const static_codebook _16c2_s_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__16c2_s_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16c2_s_p5_1, + 0 +}; + +static const long _vq_quantlist__16c2_s_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16c2_s_p6_0[] = { + 1, 4, 4, 6, 6, 8, 7, 8, 8, 9, 9,10,10, 5, 5, 5, + 7, 7, 9, 9, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, + 9,10, 9,11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10, + 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, + 12, 0,11,11, 8, 8,10,10,11,11,12,12,13,13, 0,12, + 12, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _16c2_s_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__16c2_s_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__16c2_s_p6_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16c2_s_p6_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _16c2_s_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__16c2_s_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16c2_s_p6_1, + 0 +}; + +static const long _vq_quantlist__16c2_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16c2_s_p7_0[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 8,10, 9,10,10, 5, 5, 5, + 7, 7, 9, 9,10,10,11,10,12,11, 6, 5, 5, 7, 7, 9, + 9,10,10,11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10, + 11,11,12,12,20, 7, 7, 7, 7, 9, 9,11,10,12,11,12, + 12,20,11,11, 8, 8,10,10,11,11,12,12,13,13,20,12, + 12, 8, 8, 9, 9,11,11,12,12,13,13,20,20,21,10,10, + 10,10,11,11,12,12,13,13,21,21,21,10,10,10,10,11, + 11,12,12,13,13,21,21,21,14,14,11,11,12,12,13,13, + 13,14,21,21,21,16,15,11,11,12,11,13,13,14,14,21, + 21,21,21,21,13,13,12,12,13,13,14,14,21,21,21,21, + 21,13,13,12,12,13,13,14,14, +}; + +static const static_codebook _16c2_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__16c2_s_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__16c2_s_p7_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16c2_s_p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 9, 9, 6, 7, + 7, 7, 7, 7, 8, 8, 9, 9, 9, 6, 6, 7, 7, 7, 7, 8, + 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, + 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, + 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, + 7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, + 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 8, 8, 9, 9, + 9, 9, 9, 7, 7, 7, 7, 8, 8, +}; + +static const static_codebook _16c2_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__16c2_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16c2_s_p7_1, + 0 +}; + +static const long _vq_quantlist__16c2_s_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16c2_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10, 6, + 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11, 6, 5, + 5, 8, 7, 9, 9, 8, 8, 9, 9,10,10,11,11,20, 8, 8, + 8, 8, 9, 9, 9, 9,10,10,11,10,12,11,20, 8, 8, 8, + 8, 9, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, + 10,10,10,10,11,11,12,12,13,12,20,13,13, 9, 9,10, + 10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, + 10,10,11,11,12,12,13,12,20,20,20, 9, 9, 9, 8,10, + 10,12,11,12,12,13,13,20,20,20,13,13,10,10,11,11, + 12,12,13,13,13,13,20,20,20,13,13,10,10,11,10,12, + 11,13,13,14,14,20,20,20,20,20,11,11,11,11,12,12, + 13,13,14,14,20,20,20,20,20,11,10,11,11,13,11,13, + 13,14,14,20,20,21,21,21,14,14,11,12,13,13,13,13, + 14,14,21,21,21,21,21,15,15,12,11,13,12,14,13,15, + 14, +}; + +static const static_codebook _16c2_s_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__16c2_s_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__16c2_s_p8_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__16c2_s_p8_1[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, + 11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10, 9,10,10,10,10,11,11,11, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, + 11, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, + 10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,11,11, + 11,11, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, + 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,11,11,11,11,11,10, 9,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, + 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, + 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, + 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, + 11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, + 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _16c2_s_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__16c2_s_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__16c2_s_p8_1, + 0 +}; + +static const long _vq_quantlist__16c2_s_p9_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16c2_s_p9_0[] = { + 1, 4, 3,10, 8,10,10,10,10,10,10,10,10,10,10,10, + 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10, 6,10, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _16c2_s_p9_0 = { + 2, 289, + (long *)_vq_lengthlist__16c2_s_p9_0, + 1, -509798400, 1631393792, 5, 0, + (long *)_vq_quantlist__16c2_s_p9_0, + 0 +}; + +static const long _vq_quantlist__16c2_s_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__16c2_s_p9_1[] = { + 1, 4, 4, 7, 7, 7, 7, 7, 7, 8, 8,10, 9,11,10,13, + 11,14,13, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8,11, 9, + 13,11,14,12,14,13, 5, 6, 6, 8, 8, 8, 8, 8, 8, 9, + 9,11,11,13,11,14,13,15,15,17, 8, 8, 8, 8, 9, 9, + 9, 8,11, 9,12,10,13,11,14,12,14,13,17, 8, 8, 8, + 8, 9, 9, 9, 9,10,10,11,11,13,13,13,14,16,15,17, + 12,12, 8, 8, 9, 9,10,10,11,11,12,11,13,12,13,12, + 14,13,16,12,12, 8, 8, 9, 9,10,10,11,11,12,12,13, + 13,14,14,15,15,17,17,17, 9, 9, 9, 9,11,11,12,12, + 12,13,13,13,16,14,14,14,17,17,17, 9, 8, 9, 8,11, + 10,12,12,13,13,14,14,15,15,16,16,17,17,17,12,12, + 10,10,11,12,12,13,13,14,13,15,15,14,16,15,17,17, + 17,12,12,10, 8,12, 9,13,12,14,14,15,14,15,16,16, + 16,17,17,17,17,17,11,11,12,12,14,14,14,16,15,16, + 15,16,15,17,17,17,17,17,17,11, 9,12,10,13,11,15, + 14,16,16,17,16,16,15,17,17,17,17,17,15,15,12,12, + 14,14,15,16,16,15,16,16,17,17,17,17,17,17,17,14, + 14,12,10,14,11,15,12,17,16,15,16,17,16,17,17,17, + 17,17,17,17,13,13,14,14,14,16,17,17,16,17,17,17, + 17,17,17,17,17,17,17,13, 9,13,12,15,13,16,16,17, + 17,17,17,17,17,17,17,17,17,17,15,17,14,14,15,16, + 16,17,16,17,16,17,17,17,17,17,17,17,17,17,17,14, + 13,15,16,16,17,16,17,17,17, +}; + +static const static_codebook _16c2_s_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__16c2_s_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__16c2_s_p9_1, + 0 +}; + +static const long _vq_quantlist__16c2_s_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__16c2_s_p9_2[] = { + 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _16c2_s_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__16c2_s_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__16c2_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__16c2_s_short[] = { + 7,10,12,11,12,13,15,16,18,15,10, 8, 8, 8, 9,10, + 12,13,14,17,10, 7, 7, 7, 7, 8,10,12,15,18,10, 7, + 7, 5, 5, 6, 8,10,13,15,10, 7, 6, 5, 4, 4, 6, 9, + 12,15,11, 7, 7, 5, 4, 3, 4, 7,11,13,12, 9, 8, 7, + 5, 4, 4, 5,10,13,11,11,11, 9, 7, 5, 5, 5, 9,12, + 13,12,13,12,10, 8, 8, 7, 9,13,14,14,14,14,13,11, + 11,10,10,13, +}; + +static const static_codebook _huff_book__16c2_s_short = { + 2, 100, + (long *)_huff_lengthlist__16c2_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__8c0_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8c0_s_p1_0[] = { + 1, 5, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, + 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, + 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 9,11,11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,10, 0, 0, + 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 9,11,11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,11, 0, + 0, 0, 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,11,11, + 0, 0, 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c0_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__8c0_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8c0_s_p1_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8c0_s_p3_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c0_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__8c0_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8c0_s_p3_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8c0_s_p4_0[] = { + 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c0_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__8c0_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8c0_s_p4_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8c0_s_p5_0[] = { + 1, 3, 3, 5, 5, 7, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, + 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 9, 0, 0, 0, 8, 8, + 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0, 0, + 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _8c0_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__8c0_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8c0_s_p5_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__8c0_s_p6_0[] = { + 1, 3, 3, 6, 6, 8, 8, 9, 9, 8, 8,10, 9,10,10,11, + 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, + 11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, + 11,12,11, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,11, + 10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10,10, + 11,11,11,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10, + 10,11,11,12,12,13,13, 0, 0, 0,10,10,10,10,11,11, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10, 9,10, + 11,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10, 9,10,11,12,12,13,13,14,13, 0, 0, 0, 0, 0, 9, + 9, 9,10,10,10,11,11,13,12,13,13, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, + 0, 0, 0, 0,11,11,11,11,12,12,13,14,14,14, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,13, 0, + 0, 0, 0, 0, 0, 0,11,11,12,12,13,13,14,14,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, + 14, +}; + +static const static_codebook _8c0_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__8c0_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__8c0_s_p6_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8c0_s_p7_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,11, 9,10,12, + 9,10, 4, 7, 7,10,10,10,11, 9, 9, 6,11,10,11,11, + 12,11,11,11, 6,10,10,11,11,12,11,10,10, 6, 9,10, + 11,11,11,11,10,10, 7,10,11,12,11,11,12,11,12, 6, + 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10,10,10,11,10, + 10, +}; + +static const static_codebook _8c0_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__8c0_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__8c0_s_p7_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__8c0_s_p7_1[] = { + 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7, + 8, 8, 9, 9, 9, 9,10,10, 9, 7, 7, 8, 8, 9, 9, 9, + 9,10,10,10, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10, 8, + 8, 9, 9, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9,10, + 10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10,11,10,11, + 9, 9, 9, 9,10,10,10,10,11,11,11,10,10, 9, 9,10, + 10,10, 9,11,10,10,10,10,10,10, 9, 9,10,10,11,11, + 10,10,10, 9, 9, 9,10,10,10, +}; + +static const static_codebook _8c0_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__8c0_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__8c0_s_p7_1, + 0 +}; + +static const long _vq_quantlist__8c0_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__8c0_s_p8_0[] = { + 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 6, 6, + 7, 7, 8, 8, 7, 7, 8, 9,10,10, 7, 6, 6, 7, 7, 8, + 7, 7, 7, 9, 9,10,12, 0, 8, 8, 8, 8, 8, 9, 8, 8, + 9, 9,10,10, 0, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9,11, + 10, 0, 0,13, 9, 8, 9, 9, 9, 9,10,10,11,11, 0,13, + 0, 9, 9, 9, 9, 9, 9,11,10,11,11, 0, 0, 0, 8, 9, + 10, 9,10,10,13,11,12,12, 0, 0, 0, 8, 9, 9, 9,10, + 10,13,12,12,13, 0, 0, 0,12, 0,10,10,12,11,10,11, + 12,12, 0, 0, 0,13,13,10,10,10,11,12, 0,13, 0, 0, + 0, 0, 0, 0,13,11, 0,12,12,12,13,12, 0, 0, 0, 0, + 0, 0,13,13,11,13,13,11,12, +}; + +static const static_codebook _8c0_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__8c0_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__8c0_s_p8_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8c0_s_p8_1[] = { + 1, 3, 4, 5, 5, 7, 6, 6, 6, 5, 7, 7, 7, 6, 6, 7, + 7, 7, 6, 6, 7, 7, 7, 6, 6, +}; + +static const static_codebook _8c0_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__8c0_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8c0_s_p8_1, + 0 +}; + +static const long _vq_quantlist__8c0_s_p9_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8c0_s_p9_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _8c0_s_p9_0 = { + 4, 81, + (long *)_vq_lengthlist__8c0_s_p9_0, + 1, -518803456, 1628680192, 2, 0, + (long *)_vq_quantlist__8c0_s_p9_0, + 0 +}; + +static const long _vq_quantlist__8c0_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__8c0_s_p9_1[] = { + 1, 4, 4, 5, 5,10, 8,11,11,11,11,11,11,11,11, 6, + 6, 6, 7, 6,11,10,11,11,11,11,11,11,11,11, 7, 5, + 6, 6, 6, 8, 7,11,11,11,11,11,11,11,11,11, 7, 8, + 8, 8, 9, 9,11,11,11,11,11,11,11,11,11, 9, 8, 7, + 8, 9,11,11,11,11,11,11,11,11,11,11,11,10,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11, +}; + +static const static_codebook _8c0_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__8c0_s_p9_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__8c0_s_p9_1, + 0 +}; + +static const long _vq_quantlist__8c0_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__8c0_s_p9_2[] = { + 1, 5, 5, 7, 7, 8, 7, 8, 8,10,10, 9, 9,10,10,10, + 11,11,10,12,11,12,12,12, 9, 8, 8, 8, 8, 8, 9,10, + 10,10,10,11,11,11,10,11,11,12,12,11,12, 8, 8, 7, + 7, 8, 9,10,10,10, 9,10,10, 9,10,10,11,11,11,11, + 11,11, 9, 9, 9, 9, 8, 9,10,10,11,10,10,11,11,12, + 10,10,12,12,11,11,10, 9, 9,10, 8, 9,10,10,10, 9, + 10,10,11,11,10,11,10,10,10,12,12,12, 9,10, 9,10, + 9, 9,10,10,11,11,11,11,10,10,10,11,12,11,12,11, + 12,10,11,10,11, 9,10, 9,10, 9,10,10, 9,10,10,11, + 10,11,11,11,11,12,11, 9,10,10,10,10,11,11,11,11, + 11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11, + 10, 9,11,10,11, 9,10,11,10,10,10,11,11,11,11,12, + 12,10, 9, 9,11,10, 9,12,11,10,12,12,11,11,11,11, + 10,11,11,12,11,10,12, 9,11,10,11,10,10,11,10,11, + 9,10,10,10,11,12,11,11,12,11,10,10,11,11, 9,10, + 10,12,10,11,10,10,10, 9,10,10,10,10, 9,10,10,11, + 11,11,11,12,11,10,10,10,10,11,11,10,11,11, 9,11, + 10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10, + 11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11, + 10,11,10,10,11,11,10,12,10, 9,10,10,11,11,11,10, + 12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10, + 12,11,11,10,10,10,12,10,10,11, 9,10,11,11,11,10, + 10,11,10,10, 9,11,11,12,12,11,12,11,11,11,11,11, + 11, 9,10,11,10,12,10,10,10,10,11,10,10,11,10,10, + 12,10,10,10,10,10, 9,12,10,10,10,10,12, 9,11,10, + 10,11,10,12,12,10,12,12,12,10,10,10,10, 9,10,11, + 10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10, + 10,11, 9,11,10, 9,10, 9,10, +}; + +static const static_codebook _8c0_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__8c0_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__8c0_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__8c0_s_single[] = { + 4, 5,18, 7,10, 6, 7, 8, 9,10, 5, 2,18, 5, 7, 5, + 6, 7, 8,11,17,17,17,17,17,17,17,17,17,17, 7, 4, + 17, 6, 9, 6, 8,10,12,15,11, 7,17, 9, 6, 6, 7, 9, + 11,15, 6, 4,17, 6, 6, 4, 5, 8,11,16, 6, 6,17, 8, + 6, 5, 6, 9,13,16, 8, 9,17,11, 9, 8, 8,11,13,17, + 9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17, + 17,16,17,17, +}; + +static const static_codebook _huff_book__8c0_s_single = { + 2, 100, + (long *)_huff_lengthlist__8c0_s_single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__8c1_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8c1_s_p1_0[] = { + 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, + 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 8, 8,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 8,10, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c1_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__8c1_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8c1_s_p1_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8c1_s_p3_0[] = { + 2, 4, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c1_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__8c1_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8c1_s_p3_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8c1_s_p4_0[] = { + 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _8c1_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__8c1_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8c1_s_p4_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8c1_s_p5_0[] = { + 1, 3, 3, 4, 5, 6, 6, 8, 8, 0, 0, 0, 8, 8, 7, 7, + 9, 9, 0, 0, 0, 8, 8, 7, 7, 9, 9, 0, 0, 0, 9,10, + 8, 8, 9, 9, 0, 0, 0,10,10, 8, 8, 9, 9, 0, 0, 0, + 11,10, 8, 8,10,10, 0, 0, 0,11,11, 8, 8,10,10, 0, + 0, 0,12,12, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _8c1_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__8c1_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8c1_s_p5_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__8c1_s_p6_0[] = { + 1, 3, 3, 5, 5, 8, 8, 8, 8, 9, 9,10,10,11,11,11, + 11, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, + 12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11,11, + 12,12,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11, + 11,12,12,12,12, 0, 0, 0,10,10, 9, 9,10,10,10,10, + 11,11,12,12,13,13, 0, 0, 0,10,10, 9, 9,10,10,10, + 10,11,11,12,12,13,13, 0, 0, 0,11,11, 9, 9,10,10, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,11,12,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,11,11,11,11,12,12,13,12,13,13, 0, 0, 0, 0, + 0, 0, 0,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, + 14, +}; + +static const static_codebook _8c1_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__8c1_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__8c1_s_p6_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8c1_s_p7_0[] = { + 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, + 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, + 10,11,10,10, 6, 9, 9,10, 9,10,11,10,10, 6, 9, 9, + 10, 9, 9,11, 9,10, 7,10,10,11,11,11,11,10,10, 6, + 9, 9,10,10,10,11, 9, 9, 6, 9, 9,10,10,10,10, 9, + 9, +}; + +static const static_codebook _8c1_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__8c1_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__8c1_s_p7_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__8c1_s_p7_1[] = { + 2, 3, 3, 5, 5, 7, 7, 7, 7, 7, 7,10,10, 9, 7, 7, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, + 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _8c1_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__8c1_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__8c1_s_p7_1, + 0 +}; + +static const long _vq_quantlist__8c1_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__8c1_s_p8_0[] = { + 1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, + 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9, 9,10, 9,10,11,11,11, 0,13, + 12, 9, 8, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9, 9, + 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, + 10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,11, + 13,12, 0, 0, 0,14,14,10,10,11,10,11,11,12,12, 0, + 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, + 0,12,12,11,10,12,11,13,12, +}; + +static const static_codebook _8c1_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__8c1_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__8c1_s_p8_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8c1_s_p8_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _8c1_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__8c1_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8c1_s_p8_1, + 0 +}; + +static const long _vq_quantlist__8c1_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__8c1_s_p9_0[] = { + 1, 3, 3,10,10,10,10,10,10,10,10,10,10, 5, 6, 6, + 10,10,10,10,10,10,10,10,10,10, 6, 7, 8,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10, 9, 9, 9, 9, +}; + +static const static_codebook _8c1_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__8c1_s_p9_0, + 1, -513964032, 1628680192, 4, 0, + (long *)_vq_quantlist__8c1_s_p9_0, + 0 +}; + +static const long _vq_quantlist__8c1_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__8c1_s_p9_1[] = { + 1, 4, 4, 5, 5, 7, 7, 9, 9,11,11,12,12,13,13, 6, + 5, 5, 6, 6, 9, 9,10,10,12,12,12,13,15,14, 6, 5, + 5, 7, 7, 9, 9,10,10,12,12,12,13,14,13,17, 7, 7, + 8, 8,10,10,11,11,12,13,13,13,13,13,17, 7, 7, 8, + 8,10,10,11,11,13,13,13,13,14,14,17,11,11, 9, 9, + 11,11,12,12,12,13,13,14,15,13,17,12,12, 9, 9,11, + 11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12, + 13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13, + 13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14, + 15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14, + 15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14, + 14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15, + 15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14, + 17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15, + 15, +}; + +static const static_codebook _8c1_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__8c1_s_p9_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__8c1_s_p9_1, + 0 +}; + +static const long _vq_quantlist__8c1_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__8c1_s_p9_2[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, + 9, 9, 9, 9, 9,11,11,12, 7, 7, 7, 7, 8, 8, 9, 9, + 9, 9,10,10,10,10,10,10,10,10,11,11,11, 7, 7, 7, + 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11, + 11,12, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, + 10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, + 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, + 10,10,10,11,12,11, 9, 9, 8, 9, 9, 9, 9, 9,10,10, + 10,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,12,11, + 12,11, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,12,11,12,11,11, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10, + 10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12, + 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10, + 10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10, + 11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12, + 12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10, + 10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _8c1_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__8c1_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__8c1_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__8c1_s_single[] = { + 4, 6,18, 8,11, 8, 8, 9, 9,10, 4, 4,18, 5, 9, 5, + 6, 7, 8,10,18,18,18,18,17,17,17,17,17,17, 7, 5, + 17, 6,11, 6, 7, 8, 9,12,12, 9,17,12, 8, 8, 9,10, + 10,13, 7, 5,17, 6, 8, 4, 5, 6, 8,10, 6, 5,17, 6, + 8, 5, 4, 5, 7, 9, 7, 7,17, 8, 9, 6, 5, 5, 6, 8, + 8, 8,17, 9,11, 8, 6, 6, 6, 7, 9,10,17,12,12,10, + 9, 7, 7, 8, +}; + +static const static_codebook _huff_book__8c1_s_single = { + 2, 100, + (long *)_huff_lengthlist__8c1_s_single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c2_s_long[] = { + 6, 6,12,10,10,10, 9,10,12,12, 6, 1,10, 5, 6, 6, + 7, 9,11,14,12, 9, 8,11, 7, 8, 9,11,13,15,10, 5, + 12, 7, 8, 7, 9,12,14,15,10, 6, 7, 8, 5, 6, 7, 9, + 12,14, 9, 6, 8, 7, 6, 6, 7, 9,12,12, 9, 7, 9, 9, + 7, 6, 6, 7,10,10,10, 9,10,11, 8, 7, 6, 6, 8,10, + 12,11,13,13,11,10, 8, 8, 8,10,11,13,15,15,14,13, + 10, 8, 8, 9, +}; + +static const static_codebook _huff_book__44c2_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c2_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c2_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c2_s_p1_0[] = { + 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, + 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c2_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c2_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c2_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c2_s_p2_0[] = { + 1, 4, 4, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, + 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,11,11, 0, 0, + 0,11,11, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 7, + 8, 8, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, 0,11, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0,11,11, 0, 0, 0,11,11, + 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, + 0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 9, 9, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, + 12,11, 0, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0,12, + 11, 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c2_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c2_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c2_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c2_s_p3_0[] = { + 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c2_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44c2_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c2_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c2_s_p4_0[] = { + 1, 3, 3, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, + 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 7, 7, 6, 6, + 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c2_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c2_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c2_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c2_s_p5_0[] = { + 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 7, 7, 7, 7, 7, 7, + 9, 9, 0, 7, 7, 7, 7, 7, 7, 9, 9, 0, 8, 8, 7, 7, + 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, + 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, + 11, +}; + +static const static_codebook _44c2_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44c2_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c2_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c2_s_p6_0[] = { + 1, 4, 3, 6, 6, 8, 8, 9, 9, 9, 9, 9, 9,10,10,11, + 11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, + 12,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, + 11,11,12, 0, 8, 8, 7, 7, 9, 9,10,10, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, 9,10, + 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, + 11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, + 10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,12,12,13,12,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, + 14, +}; + +static const static_codebook _44c2_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__44c2_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c2_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c2_s_p7_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,10, 9, 9, 7,10,10,11,10, + 11,11,10,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 6, + 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,12,10, + 11, +}; + +static const static_codebook _44c2_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44c2_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c2_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c2_s_p7_1[] = { + 2, 3, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 7, 7, 6, 6, + 7, 7, 8, 8, 8, 8, 9, 6, 6, 6, 6, 7, 7, 8, 8, 8, + 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c2_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c2_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c2_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c2_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c2_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, + 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, + 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, + 11,12,12,12,12, 0, 0, 0,14,14,10,11,11,11,12,12, + 13,13, 0, 0, 0,14,14,11,10,11,11,13,12,13,13, 0, + 0, 0, 0, 0,12,12,11,12,13,12,14,14, 0, 0, 0, 0, + 0,12,12,12,12,13,12,14,14, +}; + +static const static_codebook _44c2_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c2_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c2_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c2_s_p8_1[] = { + 2, 4, 4, 5, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c2_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__44c2_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c2_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c2_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c2_s_p9_0[] = { + 1, 5, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, + 11,11,11,11,11,11,11,11,11,11, 2, 8, 7,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _44c2_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44c2_s_p9_0, + 1, -514541568, 1627103232, 4, 0, + (long *)_vq_quantlist__44c2_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c2_s_p9_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c2_s_p9_1[] = { + 1, 4, 4, 6, 6, 7, 6, 8, 8,10, 9,10,10, 6, 5, 5, + 7, 7, 8, 7,10, 9,11,11,12,13, 6, 5, 5, 7, 7, 8, + 8,10,10,11,11,13,13,18, 8, 8, 8, 8, 9, 9,10,10, + 12,12,12,13,18, 8, 8, 8, 8, 9, 9,10,10,12,12,13, + 13,18,11,11, 8, 8,10,10,11,11,12,11,13,12,18,11, + 11, 9, 7,10,10,11,11,11,12,12,13,17,17,17,10,10, + 11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13, + 12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10, + 13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17, + 17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16, + 17,13,12,12,10,13,11,14,14, +}; + +static const static_codebook _44c2_s_p9_1 = { + 2, 169, + (long *)_vq_lengthlist__44c2_s_p9_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44c2_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c2_s_p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c2_s_p9_2[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 8, 7, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10, 9, 9, 9,10,11,10, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9,10,10,10,10,11,10, 8, 8, 9, 9, 9, 9, + 9, 9,10, 9, 9,10, 9,10,11,10,11,11,11, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11,11,11, 9, 9, + 9, 9, 9, 9,10, 9, 9, 9,10,10,11,11,11,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,11,11,11,11, + 9, 9, 9, 9,10,10, 9, 9, 9,10,10,10,11,11,11,11, + 11,11,11, 9, 9, 9,10, 9, 9,10,10,10,10,11,11,10, + 11,11,11,11,10, 9,10,10, 9, 9, 9, 9,10,10,11,10, + 11,11,11,11,11, 9, 9, 9, 9,10, 9,10,10,10,10,11, + 10,11,11,11,11,11,10,10, 9, 9,10, 9,10,10,10,10, + 10,10,10,11,11,11,11,11,11, 9, 9,10, 9,10, 9,10, + 10, +}; + +static const static_codebook _44c2_s_p9_2 = { + 2, 289, + (long *)_vq_lengthlist__44c2_s_p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c2_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c2_s_short[] = { + 11, 9,13,12,12,11,12,12,13,15, 8, 2,11, 4, 8, 5, + 7,10,12,15,13, 7,10, 9, 8, 8,10,13,17,17,11, 4, + 12, 5, 9, 5, 8,11,14,16,12, 6, 8, 7, 6, 6, 8,11, + 13,16,11, 4, 9, 5, 6, 4, 6,10,13,16,11, 6,11, 7, + 7, 6, 7,10,13,15,13, 9,12, 9, 8, 6, 8,10,12,14, + 14,10,10, 8, 6, 5, 6, 9,11,13,15,11,11, 9, 6, 5, + 6, 8, 9,12, +}; + +static const static_codebook _huff_book__44c2_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c2_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c3_s_long[] = { + 5, 6,11,11,11,11,10,10,12,11, 5, 2,11, 5, 6, 6, + 7, 9,11,13,13,10, 7,11, 6, 7, 8, 9,10,12,11, 5, + 11, 6, 8, 7, 9,11,14,15,11, 6, 6, 8, 4, 5, 7, 8, + 10,13,10, 5, 7, 7, 5, 5, 6, 8,10,11,10, 7, 7, 8, + 6, 5, 5, 7, 9, 9,11, 8, 8,11, 8, 7, 6, 6, 7, 9, + 12,11,10,13, 9, 9, 7, 7, 7, 9,11,13,12,15,12,11, + 9, 8, 8, 8, +}; + +static const static_codebook _huff_book__44c3_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c3_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c3_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c3_s_p1_0[] = { + 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, + 0, 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c3_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c3_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c3_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c3_s_p2_0[] = { + 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, + 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, + 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, + 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, + 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, + 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, + 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c3_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c3_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c3_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c3_s_p3_0[] = { + 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c3_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44c3_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c3_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c3_s_p4_0[] = { + 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, + 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c3_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c3_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c3_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c3_s_p5_0[] = { + 1, 3, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 7, 8, + 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, + 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, + 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, + 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, + 11, +}; + +static const static_codebook _44c3_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44c3_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c3_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c3_s_p6_0[] = { + 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 10, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, + 11,11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, + 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,10,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 8, + 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, + 8, 9, 9,10,10,11,11,12,11,12,12, 0, 0, 0, 0, 0, + 9,10,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, + 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, + 13, +}; + +static const static_codebook _44c3_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__44c3_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c3_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c3_s_p7_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, + 10,12,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,10,11,10,10, 7,11,11,11,11,11,12,11,11, 6, + 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44c3_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44c3_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c3_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c3_s_p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 8, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c3_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c3_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c3_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c3_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c3_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, + 8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,12, 0,13, + 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, + 10,10,11,11,12,12,12,12, 0, 0, 0,10,10,10,10,11, + 11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, + 13,13, 0, 0, 0,14,14,11,11,11,11,12,12,13,13, 0, + 0, 0, 0, 0,12,12,12,12,13,13,14,13, 0, 0, 0, 0, + 0,13,13,12,12,13,12,14,13, +}; + +static const static_codebook _44c3_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c3_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c3_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c3_s_p8_1[] = { + 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c3_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__44c3_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c3_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c3_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c3_s_p9_0[] = { + 1, 4, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, + 12,12,12,12,12,12,12,12,12,12, 2, 9, 7,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _44c3_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44c3_s_p9_0, + 1, -514332672, 1627381760, 4, 0, + (long *)_vq_quantlist__44c3_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c3_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c3_s_p9_1[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 9,10,10,10,10, 6, + 5, 5, 7, 7, 8, 8,10, 8,11,10,12,12,13,13, 6, 5, + 5, 7, 7, 8, 8,10, 9,11,11,12,12,13,12,18, 8, 8, + 8, 8, 9, 9,10, 9,11,10,12,12,13,13,18, 8, 8, 8, + 8, 9, 9,10,10,11,11,13,12,14,13,18,11,11, 9, 9, + 10,10,11,11,11,12,13,12,13,14,18,11,11, 9, 8,11, + 10,11,11,11,11,12,12,14,13,18,18,18,10,11,10,11, + 12,12,12,12,13,12,14,13,18,18,18,10,11,11, 9,12, + 11,12,12,12,13,13,13,18,18,17,14,14,11,11,12,12, + 13,12,14,12,14,13,18,18,18,14,14,11,10,12, 9,12, + 13,13,13,13,13,18,18,17,16,18,13,13,12,12,13,11, + 14,12,14,14,17,18,18,17,18,13,12,13,10,12,11,14, + 14,14,14,17,18,18,18,18,15,16,12,12,13,10,14,12, + 14,15,18,18,18,16,17,16,14,12,11,13,10,13,13,14, + 15, +}; + +static const static_codebook _44c3_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__44c3_s_p9_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__44c3_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c3_s_p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c3_s_p9_2[] = { + 2, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8,10, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9,10, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, + 9, 9, 9, 9,10,10, 9, 9,10, 9,11,10,11,11,11, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,11,11,11,11,11, + 9, 9, 9, 9,10,10, 9, 9, 9, 9,10, 9,11,11,11,11, + 11,11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, + 11,11,11,11,10, 9,10,10, 9,10, 9, 9,10, 9,11,10, + 10,11,11,11,11, 9,10, 9, 9, 9, 9,10,10,10,10,11, + 11,11,11,11,11,10,10,10, 9, 9,10, 9,10, 9,10,10, + 10,10,11,11,11,11,11,11,11, 9, 9, 9, 9, 9,10,10, + 10, +}; + +static const static_codebook _44c3_s_p9_2 = { + 2, 289, + (long *)_vq_lengthlist__44c3_s_p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c3_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c3_s_short[] = { + 10, 9,13,11,14,10,12,13,13,14, 7, 2,12, 5,10, 5, + 7,10,12,14,12, 6, 9, 8, 7, 7, 9,11,13,16,10, 4, + 12, 5,10, 6, 8,12,14,16,12, 6, 8, 7, 6, 5, 7,11, + 12,16,10, 4, 8, 5, 6, 4, 6, 9,13,16,10, 6,10, 7, + 7, 6, 7, 9,13,15,12, 9,11, 9, 8, 6, 7,10,12,14, + 14,11,10, 9, 6, 5, 6, 9,11,13,15,13,11,10, 6, 5, + 6, 8, 9,11, +}; + +static const static_codebook _huff_book__44c3_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c3_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c4_s_long[] = { + 4, 7,11,11,11,11,10,11,12,11, 5, 2,11, 5, 6, 6, + 7, 9,11,12,11, 9, 6,10, 6, 7, 8, 9,10,11,11, 5, + 11, 7, 8, 8, 9,11,13,14,11, 6, 5, 8, 4, 5, 7, 8, + 10,11,10, 6, 7, 7, 5, 5, 6, 8, 9,11,10, 7, 8, 9, + 6, 6, 6, 7, 8, 9,11, 9, 9,11, 7, 7, 6, 6, 7, 9, + 12,12,10,13, 9, 8, 7, 7, 7, 8,11,13,11,14,11,10, + 9, 8, 7, 7, +}; + +static const static_codebook _huff_book__44c4_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c4_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c4_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c4_s_p1_0[] = { + 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, + 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c4_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c4_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c4_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c4_s_p2_0[] = { + 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, + 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, + 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, + 7, 8, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, + 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, + 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, + 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c4_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c4_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c4_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c4_s_p3_0[] = { + 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c4_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44c4_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c4_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c4_s_p4_0[] = { + 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, + 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c4_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c4_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c4_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c4_s_p5_0[] = { + 2, 3, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, + 9, 9, 0, 4, 5, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, + 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0, 0, + 9, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _44c4_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44c4_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c4_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c4_s_p6_0[] = { + 2, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, + 11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, + 11,11, 0, 4, 4, 7, 6, 8, 8, 9, 9, 9, 9,10,10,11, + 11,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, + 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, + 9,10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, + 9, 9, 9,10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,11,11,12,12,13,12, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,11,11,12,12,12,12, 0, 0, 0, + 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,13,13, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13, + 13, +}; + +static const static_codebook _44c4_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__44c4_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c4_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c4_s_p7_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, + 10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, + 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44c4_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44c4_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c4_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c4_s_p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, + 10,10,10, 8, 8, 8, 8, 9, 9, +}; + +static const static_codebook _44c4_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c4_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c4_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c4_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c4_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, + 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9, 9,10,10,10,10,11,11, 0,13, + 13, 9, 9,10, 9,10,10,11,11,11,12, 0, 0, 0,10,10, + 10,10,10,10,11,11,12,12, 0, 0, 0,10,10,10,10,10, + 10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, + 12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,13, 0, + 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, + 0,13,12,12,12,12,12,13,13, +}; + +static const static_codebook _44c4_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c4_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c4_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c4_s_p8_1[] = { + 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 5, 4, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c4_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__44c4_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c4_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c4_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c4_s_p9_0[] = { + 1, 3, 3,12,12,12,12,12,12,12,12,12,12, 4, 7, 7, + 12,12,12,12,12,12,12,12,12,12, 3, 8, 8,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12, +}; + +static const static_codebook _44c4_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44c4_s_p9_0, + 1, -513964032, 1628680192, 4, 0, + (long *)_vq_quantlist__44c4_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c4_s_p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c4_s_p9_1[] = { + 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,10,10, 6, + 5, 5, 7, 7, 9, 8,10, 9,11,10,12,12,13,13, 6, 5, + 5, 7, 7, 9, 9,10,10,11,11,12,12,12,13,19, 8, 8, + 8, 8, 9, 9,10,10,12,11,12,12,13,13,19, 8, 8, 8, + 8, 9, 9,11,11,12,12,13,13,13,13,19,12,12, 9, 9, + 11,11,11,11,12,11,13,12,13,13,18,12,12, 9, 9,11, + 10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11, + 12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12, + 11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13, + 13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13, + 13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13, + 14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14, + 14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14, + 15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14, + 15, +}; + +static const static_codebook _44c4_s_p9_1 = { + 2, 225, + (long *)_vq_lengthlist__44c4_s_p9_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44c4_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c4_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c4_s_p9_2[] = { + 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 9, 9, 9, 9,11, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,11, 6, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11, + 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,12,11,11, 7, 7, 8, 8, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,12,11,12, 8, 8, 8, 8, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11, + 11, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10, + 10,10,10,11,11,12, 9, 9, 9, 9, 9, 9,10, 9,10,10, + 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11, + 11,11, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12, + 11,11,11, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11, + 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, + 10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11, + 11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11, + 12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12, + 11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10, + 10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c4_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__44c4_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c4_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c4_s_short[] = { + 4, 7,14,10,15,10,12,15,16,15, 4, 2,11, 5,10, 6, + 8,11,14,14,14,10, 7,11, 6, 8,10,11,13,15, 9, 4, + 11, 5, 9, 6, 9,12,14,15,14, 9, 6, 9, 4, 5, 7,10, + 12,13, 9, 5, 7, 6, 5, 5, 7,10,13,13,10, 8, 9, 8, + 7, 6, 8,10,14,14,13,11,10,10, 7, 7, 8,11,14,15, + 13,12, 9, 9, 6, 5, 7,10,14,17,15,13,11,10, 6, 6, + 7, 9,12,17, +}; + +static const static_codebook _huff_book__44c4_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c4_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c5_s_long[] = { + 3, 8, 9,13,10,12,12,12,12,12, 6, 4, 6, 8, 6, 8, + 10,10,11,12, 8, 5, 4,10, 4, 7, 8, 9,10,11,13, 8, + 10, 8, 9, 9,11,12,13,14,10, 6, 4, 9, 3, 5, 6, 8, + 10,11,11, 8, 6, 9, 5, 5, 6, 7, 9,11,12, 9, 7,11, + 6, 6, 6, 7, 8,10,12,11, 9,12, 7, 7, 6, 6, 7, 9, + 13,12,10,13, 9, 8, 7, 7, 7, 8,11,15,11,15,11,10, + 9, 8, 7, 7, +}; + +static const static_codebook _huff_book__44c5_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c5_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c5_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c5_s_p1_0[] = { + 2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, + 0, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, + 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, + 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c5_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c5_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c5_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c5_s_p2_0[] = { + 2, 4, 4, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, + 8, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, + 8, 0, 0, 0, 8, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, + 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 8, 8, 0, 0, + 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, + 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, + 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, + 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0, + 11,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10, + 10, 0, 0, 0,10,10, 0, 0, 0,10,11, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c5_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c5_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c5_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c5_s_p3_0[] = { + 2, 4, 3, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 5, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c5_s_p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44c5_s_p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c5_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c5_s_p4_0[] = { + 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, + 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c5_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c5_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c5_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c5_s_p5_0[] = { + 2, 4, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, + 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, + 7, 7, 9, 9, 0, 0, 0, 7, 6, 7, 7, 9, 9, 0, 0, 0, + 8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, + 0, 0, 9, 9, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _44c5_s_p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44c5_s_p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c5_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p6_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c5_s_p6_0[] = { + 2, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,11, + 11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, + 12,12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, + 11,12,12, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, + 11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 9,10,10,10, + 10,11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, + 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, + 10,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, + 9, 9,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,11,11,12,12,12,13,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,12,13,13,13,13, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, + 13, +}; + +static const static_codebook _44c5_s_p6_0 = { + 2, 289, + (long *)_vq_lengthlist__44c5_s_p6_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c5_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c5_s_p7_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, + 10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, + 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44c5_s_p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44c5_s_p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c5_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c5_s_p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 9,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c5_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c5_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c5_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c5_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c5_s_p8_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, + 7, 7, 8, 8, 8, 9,10,10,10,10, 7, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9,10,10,10,10,10,11,11, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, + 10,10,10,10,11,11,11,11, 0, 0, 0,10,10,10,10,10, + 10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, + 12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,12, 0, + 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, + 0,12,12,12,12,12,12,13,13, +}; + +static const static_codebook _44c5_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c5_s_p8_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c5_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p8_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c5_s_p8_1[] = { + 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c5_s_p8_1 = { + 2, 25, + (long *)_vq_lengthlist__44c5_s_p8_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c5_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c5_s_p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c5_s_p9_0[] = { + 1, 3, 3,13,13,13,13,13,13,13,13,13,13,13,13, 4, + 7, 7,13,13,13,13,13,13,13,13,13,13,13,13, 3, 8, + 6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12, + 12, +}; + +static const static_codebook _44c5_s_p9_0 = { + 2, 225, + (long *)_vq_lengthlist__44c5_s_p9_0, + 1, -512522752, 1628852224, 4, 0, + (long *)_vq_quantlist__44c5_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c5_s_p9_1[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c5_s_p9_1[] = { + 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,11,10,11, + 11, 6, 5, 5, 7, 7, 8, 9,10,10,11,10,12,11,12,11, + 13,12, 6, 5, 5, 7, 7, 9, 9,10,10,11,11,12,12,13, + 12,13,13,18, 8, 8, 8, 8, 9, 9,10,11,11,11,12,11, + 13,11,13,12,18, 8, 8, 8, 8,10,10,11,11,12,12,13, + 13,13,13,13,14,18,12,12, 9, 9,11,11,11,11,12,12, + 13,12,13,12,13,13,20,13,12, 9, 9,11,11,11,11,12, + 12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12, + 13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12, + 12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12, + 12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12, + 11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19, + 13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19, + 19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17, + 18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19, + 17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19, + 19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15, + 19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15, + 15, +}; + +static const static_codebook _44c5_s_p9_1 = { + 2, 289, + (long *)_vq_lengthlist__44c5_s_p9_1, + 1, -520814592, 1620377600, 5, 0, + (long *)_vq_quantlist__44c5_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c5_s_p9_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c5_s_p9_2[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 9,11, 5, 6, 7, 7, 8, 7, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, 5, 5, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, + 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10, 9,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11, + 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, + 10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, + 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,11,11,11, + 11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, + 10,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,10,11,11,11,11,11, 9, 9,10, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, + 11,11,11, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, + 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, + 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, + 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, + 11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, + 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c5_s_p9_2 = { + 2, 441, + (long *)_vq_lengthlist__44c5_s_p9_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c5_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c5_s_short[] = { + 5, 8,10,14,11,11,12,16,15,17, 5, 5, 7, 9, 7, 8, + 10,13,17,17, 7, 5, 5,10, 5, 7, 8,11,13,15,10, 8, + 10, 8, 8, 8,11,15,18,18, 8, 5, 5, 8, 3, 4, 6,10, + 14,16, 9, 7, 6, 7, 4, 3, 5, 9,14,18,10, 9, 8,10, + 6, 5, 6, 9,14,18,12,12,11,12, 8, 7, 8,11,14,18, + 14,13,12,10, 7, 5, 6, 9,14,18,14,14,13,10, 6, 5, + 6, 8,11,16, +}; + +static const static_codebook _huff_book__44c5_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c5_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c6_s_long[] = { + 3, 8,11,13,14,14,13,13,16,14, 6, 3, 4, 7, 9, 9, + 10,11,14,13,10, 4, 3, 5, 7, 7, 9,10,13,15,12, 7, + 4, 4, 6, 6, 8,10,13,15,12, 8, 6, 6, 6, 6, 8,10, + 13,14,11, 9, 7, 6, 6, 6, 7, 8,12,11,13,10, 9, 8, + 7, 6, 6, 7,11,11,13,11,10, 9, 9, 7, 7, 6,10,11, + 13,13,13,13,13,11, 9, 8,10,12,12,15,15,16,15,12, + 11,10,10,12, +}; + +static const static_codebook _huff_book__44c6_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c6_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c6_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c6_s_p1_0[] = { + 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, + 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, + 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 9, 9, 0, 8, 8, 0, 8, 8, 5, 9, 9, 0, 8, 8, 0, 8, + 8, +}; +static const static_codebook _44c6_s_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44c6_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c6_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c6_s_p2_0[] = { + 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, + 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, + 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, + 11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, + 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,11, + 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, + 0, 0,14,13, 8, 9, 9,11,11, 0,11,11,12,12, 0,10, + 11,12,12, 0,14,13,14,14, 0, 0, 0,13,14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, + 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, + 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, + 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, + 12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, + 13, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,12,12, + 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, + 10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,11, + 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,11, + 0, 0, 0,10,11, 8,10,10,12,12, 0,10,10,12,12, 0, + 10,10,12,12, 0,12,13,13,13, 0, 0, 0,14,13, 8,10, + 10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, + 13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,10,10,14,13, 0, 9, 9,13,12, 0, 9, 9,12,12, 0, + 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, + 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, + 12,12, 9,11,11,14,13, 0,11,10,14,13, 0,11,11,13, + 13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, + 0,10,11,13,14, 0,11,11,13,13, 0,12,12,13,13, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12, + 12,13,13, 0, 0, 0,13,13, 9,11,11,14,14, 0,11,11, + 13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, + 13, +}; + +static const static_codebook _44c6_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c6_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c6_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c6_s_p3_0[] = { + 2, 3, 4, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, + 9,10, 0, 4, 4, 6, 6, 7, 7,10, 9, 0, 5, 5, 7, 7, + 8, 8,10,10, 0, 0, 0, 7, 6, 8, 8,10,10, 0, 0, 0, + 7, 7, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c6_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c6_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c6_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c6_s_p4_0[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,10,10, + 10, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, + 11,11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,11, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, + 11,11,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, + 10,11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, + 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, 9, + 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c6_s_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44c6_s_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c6_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c6_s_p5_0[] = { + 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6, 9, 9,10,10, + 10, 9, 4, 6, 6, 9,10, 9,10, 9,10, 6, 9, 9,10,12, + 11,10,11,11, 7,10, 9,11,12,12,12,12,12, 7,10,10, + 11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, + 9,10,11,12,12,12,12,12, 7,10, 9,12,12,12,12,12, + 12, +}; + +static const static_codebook _44c6_s_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44c6_s_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c6_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c6_s_p5_1[] = { + 3, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, + 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, 7, 7, 8, 8, 8, + 8,11, 6, 6, 6, 6, 8, 8, 8, 8, 9, 9,11,11,11, 6, + 6, 7, 8, 8, 8, 8, 9,11,11,11, 7, 7, 8, 8, 8, 8, + 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 8, 8,11,11,11, + 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,10,10, 8, 8, 8, + 8, 8, 8,11,11,11,10,10, 8, 8, 8, 8, 8, 8,11,11, + 11,10,10, 7, 7, 8, 8, 8, 8, +}; + +static const static_codebook _44c6_s_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44c6_s_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c6_s_p5_1, + 0 +}; + +static const long _vq_quantlist__44c6_s_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c6_s_p6_0[] = { + 1, 4, 4, 6, 6, 8, 8, 8, 8,10, 9,10,10, 6, 5, 5, + 7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9, + 9,10, 9,11,10,11,11, 0, 6, 6, 7, 7, 9, 9,10,10, + 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, + 12, 0,11,11, 8, 8,10,10,11,11,12,12,12,12, 0,11, + 12, 9, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _44c6_s_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44c6_s_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c6_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c6_s_p6_1[] = { + 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c6_s_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44c6_s_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c6_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c6_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c6_s_p7_0[] = { + 1, 4, 4, 6, 6, 8, 8, 8, 8,10,10,11,10, 6, 5, 5, + 7, 7, 8, 8, 9, 9,10,10,12,11, 6, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,12,11,21, 7, 7, 7, 7, 9, 9,10,10, + 11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,11,11,12, + 12,21,12,12, 9, 9,10,10,11,11,11,11,12,12,21,12, + 12, 9, 9,10,10,11,11,12,12,12,12,21,21,21,11,11, + 10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12, + 12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13, + 13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21, + 21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20, + 20,13,13,13,13,13,13,14,14, +}; + +static const static_codebook _44c6_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c6_s_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44c6_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c6_s_p7_1[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 6, 6, + 7, 7, 7, 7, 8, 7, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, + 7, 9, 6, 6, 7, 7, 7, 7, 8, 7, 7, 8, 9, 9, 9, 7, + 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, + 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, + 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 8, 8, 8, 7, + 7, 8, 8, 9, 9, 9, 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, + 9, 8, 8, 7, 7, 7, 7, 8, 8, +}; + +static const static_codebook _44c6_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c6_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c6_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c6_s_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c6_s_p8_0[] = { + 1, 4, 4, 7, 7, 8, 8, 7, 7, 8, 7, 9, 8,10, 9, 6, + 5, 5, 8, 8, 9, 9, 8, 8, 9, 9,11,10,11,10, 6, 5, + 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,18, 8, 8, + 9, 8,10,10, 9, 9,10,10,10,10,11,10,18, 8, 8, 9, + 9,10,10, 9, 9,10,10,11,11,12,12,18,12,13, 9,10, + 10,10, 9,10,10,10,11,11,12,11,18,13,13, 9, 9,10, + 10,10,10,10,10,11,11,12,12,18,18,18,10,10, 9, 9, + 11,11,11,11,11,12,12,12,18,18,18,10, 9,10, 9,11, + 10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11, + 12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12, + 12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12, + 13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13, + 13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13, + 14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15, + 14, +}; + +static const static_codebook _44c6_s_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44c6_s_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44c6_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c6_s_p8_1[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, + 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, + 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,11,11, 8, 7, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11, + 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11, + 11,11, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9,10, 9, 9, + 10, 9,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10, + 10,10, 9,10,10, 9,10,11,11,11,11,11, 9, 9, 9, 9, + 10,10,10, 9,10,10,10,10, 9,10,10, 9,11,11,11,11, + 11,11,11, 9, 9, 9, 9,10,10,10,10, 9,10,10,10,10, + 10,11,11,11,11,11,11,11,10, 9,10,10,10,10,10,10, + 10, 9,10, 9,10,10,11,11,11,11,11,11,11,10, 9,10, + 9,10,10, 9,10,10,10,10,10,10,10,11,11,11,11,11, + 11,11,10,10,10,10,10,10,10, 9,10,10,10,10,10, 9, + 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, + 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, + 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, + 11,11,11,10,10,10,10,10,10,10,10,10, 9,10,10,11, + 11,11,11,11,11,11,11,11,10,10,10, 9,10,10,10,10, + 10,10,10,10,10,11,11,11,11,11,11,11,11,10,11, 9, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c6_s_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44c6_s_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c6_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c6_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c6_s_p9_0[] = { + 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 7, 7, + 11,11,11,11,11,11,11,11,11,11, 5, 8, 9,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c6_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44c6_s_p9_0, + 1, -511845376, 1630791680, 4, 0, + (long *)_vq_quantlist__44c6_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c6_s_p9_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c6_s_p9_1[] = { + 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, + 8, 8, 8, 8, 8, 7, 9, 8,10,10, 5, 6, 6, 8, 8, 9, + 9, 8, 8,10,10,10,10,16, 9, 9, 9, 9, 9, 9, 9, 8, + 10, 9,11,11,16, 8, 9, 9, 9, 9, 9, 9, 9,10,10,11, + 11,16,13,13, 9, 9,10, 9, 9,10,11,11,11,12,16,13, + 14, 9, 8,10, 8, 9, 9,10,10,12,11,16,14,16, 9, 9, + 9, 9,11,11,12,11,12,11,16,16,16, 9, 7, 9, 6,11, + 11,11,10,11,11,16,16,16,11,12, 9,10,11,11,12,11, + 13,13,16,16,16,12,11,10, 7,12,10,12,12,12,12,16, + 16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15, + 15,12,10,11,11,13,11,12,13, +}; + +static const static_codebook _44c6_s_p9_1 = { + 2, 169, + (long *)_vq_lengthlist__44c6_s_p9_1, + 1, -518889472, 1622704128, 4, 0, + (long *)_vq_quantlist__44c6_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c6_s_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44c6_s_p9_2[] = { + 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44c6_s_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44c6_s_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44c6_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c6_s_short[] = { + 3, 9,11,11,13,14,19,17,17,19, 5, 4, 5, 8,10,10, + 13,16,18,19, 7, 4, 4, 5, 8, 9,12,14,17,19, 8, 6, + 5, 5, 7, 7,10,13,16,18,10, 8, 7, 6, 5, 5, 8,11, + 17,19,11, 9, 7, 7, 5, 4, 5, 8,17,19,13,11, 8, 7, + 7, 5, 5, 7,16,18,14,13, 8, 6, 6, 5, 5, 7,16,18, + 18,16,10, 8, 8, 7, 7, 9,16,18,18,18,12,10,10, 9, + 9,10,17,18, +}; + +static const static_codebook _huff_book__44c6_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c6_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c7_s_long[] = { + 3, 8,11,13,15,14,14,13,15,14, 6, 4, 5, 7, 9,10, + 11,11,14,13,10, 4, 3, 5, 7, 8, 9,10,13,13,12, 7, + 4, 4, 5, 6, 8, 9,12,14,13, 9, 6, 5, 5, 6, 8, 9, + 12,14,12, 9, 7, 6, 5, 5, 6, 8,11,11,12,11, 9, 8, + 7, 6, 6, 7,10,11,13,11,10, 9, 8, 7, 6, 6, 9,11, + 13,13,12,12,12,10, 9, 8, 9,11,12,14,15,15,14,12, + 11,10,10,12, +}; + +static const static_codebook _huff_book__44c7_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c7_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c7_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c7_s_p1_0[] = { + 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, + 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, + 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, + 8, +}; + +static const static_codebook _44c7_s_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44c7_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c7_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c7_s_p2_0[] = { + 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, + 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, + 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, + 11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, + 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, + 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, + 0, 0,14,13, 8, 9, 9,10,11, 0,11,11,12,12, 0,10, + 11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, + 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, + 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, + 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, + 12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, + 13, 8, 9,10,12,12, 0,10,10,12,12, 0,10,10,11,12, + 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, + 10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,10, + 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,10, + 0, 0, 0,10,11, 9,10,10,12,12, 0,10,10,12,12, 0, + 10,10,12,12, 0,12,13,13,13, 0, 0, 0,13,12, 9,10, + 10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, + 13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,10,10,14,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, + 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, + 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, + 12,12, 9,11,11,14,13, 0,11,10,13,12, 0,11,11,13, + 13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, + 0,10,11,12,13, 0,11,11,13,13, 0,12,12,13,13, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,12, + 12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, + 13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, + 13, +}; + +static const static_codebook _44c7_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c7_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c7_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c7_s_p3_0[] = { + 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, + 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, + 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, + 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c7_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c7_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c7_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c7_s_p4_0[] = { + 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, + 12,12, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11,12,12, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, + 11,12,12,12, 0, 0, 0, 6, 6, 8, 7, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, + 11,11,12,12,13,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, + 10,11,11,12,12,12,13, 0, 0, 0, 7, 7, 8, 8, 9, 9, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, + 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c7_s_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44c7_s_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c7_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c7_s_p5_0[] = { + 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 7,10,10,10,10, + 10, 9, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, + 12,10,11,12, 7,10,10,11,12,12,12,12,12, 7,10,10, + 11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, + 10,10,12,12,12,12,11,12, 7,10,10,11,12,12,12,12, + 12, +}; + +static const static_codebook _44c7_s_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44c7_s_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c7_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c7_s_p5_1[] = { + 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, + 7, 7, 8, 8, 9, 9,11, 4, 4, 6, 6, 7, 7, 8, 8, 9, + 9,12, 5, 5, 6, 6, 7, 7, 9, 9, 9, 9,12,12,12, 6, + 6, 7, 7, 9, 9, 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, + 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, 9, 9,11,11,11, + 7, 7, 8, 8, 8, 8, 9, 9,11,11,11,11,11, 8, 8, 8, + 8, 8, 9,11,11,11,11,11, 8, 8, 8, 8, 8, 8,11,11, + 11,11,11, 7, 7, 8, 8, 8, 8, +}; + +static const static_codebook _44c7_s_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44c7_s_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c7_s_p5_1, + 0 +}; + +static const long _vq_quantlist__44c7_s_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c7_s_p6_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 8,10,10, 6, 5, 5, + 7, 7, 8, 8, 9, 9, 9,10,11,11, 7, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 8, 9, 9, + 10,10,11,11, 0, 8, 8, 7, 7, 8, 9, 9, 9,10,10,11, + 11, 0,11,11, 9, 9,10,10,11,10,11,11,12,12, 0,12, + 12, 9, 9,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _44c7_s_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44c7_s_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c7_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c7_s_p6_1[] = { + 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c7_s_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44c7_s_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c7_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c7_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c7_s_p7_0[] = { + 1, 4, 4, 6, 6, 7, 8, 9, 9,10,10,12,11, 6, 5, 5, + 7, 7, 8, 8, 9,10,11,11,12,12, 7, 5, 5, 7, 7, 8, + 8,10,10,11,11,12,12,20, 7, 7, 7, 7, 8, 9,10,10, + 11,11,12,13,20, 7, 7, 7, 7, 9, 9,10,10,11,12,13, + 13,20,11,11, 8, 8, 9, 9,11,11,12,12,13,13,20,11, + 11, 8, 8, 9, 9,11,11,12,12,13,13,20,20,20,10,10, + 10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12, + 12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13, + 14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20, + 20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19, + 19,13,13,13,13,14,14,15,15, +}; + +static const static_codebook _44c7_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c7_s_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44c7_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c7_s_p7_1[] = { + 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, 7, 7, 7, 7, 7, + 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, + 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, + 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, + 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, + 8, 8, 8, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _44c7_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c7_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c7_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c7_s_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c7_s_p8_0[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8, 9, 9,10,10, 6, + 5, 5, 7, 7, 9, 9, 8, 8,10, 9,11,10,12,11, 6, 5, + 5, 8, 7, 9, 9, 8, 8,10,10,11,11,12,11,19, 8, 8, + 8, 8,10,10, 9, 9,10,10,11,11,12,11,19, 8, 8, 8, + 8,10,10, 9, 9,10,10,11,11,12,12,19,12,12, 9, 9, + 10,10, 9,10,10,10,11,11,12,12,19,12,12, 9, 9,10, + 10,10,10,10,10,12,12,12,12,19,19,19, 9, 9, 9, 9, + 11,10,11,11,12,11,13,13,19,19,19, 9, 9, 9, 9,11, + 10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11, + 12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12, + 12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13, + 14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13, + 14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14, + 15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14, + 14, +}; + +static const static_codebook _44c7_s_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44c7_s_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44c7_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c7_s_p8_1[] = { + 3, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9, 9,10,11,10, + 11,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9, 9, + 9, 9,11,10,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, + 10, 9, 9,10, 9, 9,10,11,10,10,11,10, 9, 9, 9, 9, + 9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,11, + 11,11,10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, + 10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10, + 10, 9,10,10, 9,10,11,11,10,11,10,11,10, 9,10,10, + 9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10, + 11,11,10,10,10,10,10,10, 9,10, 9,10,10, 9,10, 9, + 10,10,10,11,10,11,10,11,11,10,10,10,10,10,10, 9, + 10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11, + 11,10,10,10,10, 9, 9,10,10, 9, 9,10, 9,10,10,10, + 10,11,11,10,10,10,10,10,10,10, 9, 9,10,10,10, 9, + 9,10,10,10,10,10,11,10,11,10,10,10,10,10,10, 9, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c7_s_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44c7_s_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c7_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c7_s_p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c7_s_p9_0[] = { + 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 6, 6, + 11,11,11,11,11,11,11,11,11,11, 4, 7, 7,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _44c7_s_p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44c7_s_p9_0, + 1, -511845376, 1630791680, 4, 0, + (long *)_vq_quantlist__44c7_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c7_s_p9_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c7_s_p9_1[] = { + 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, + 8, 8, 9, 8, 8, 7, 9, 8,11,10, 5, 6, 6, 8, 8, 9, + 8, 8, 8,10, 9,11,11,16, 8, 8, 9, 8, 9, 9, 9, 8, + 10, 9,11,10,16, 8, 8, 9, 9,10,10, 9, 9,10,10,11, + 11,16,13,13, 9, 9,10,10, 9,10,11,11,12,11,16,13, + 13, 9, 8,10, 9,10,10,10,10,11,11,16,14,16, 8, 9, + 9, 9,11,10,11,11,12,11,16,16,16, 9, 7,10, 7,11, + 10,11,11,12,11,16,16,16,12,12, 9,10,11,11,12,11, + 12,12,16,16,16,12,10,10, 7,11, 8,12,11,12,12,16, + 16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15, + 15,11,11,10,10,12,12,12,12, +}; + +static const static_codebook _44c7_s_p9_1 = { + 2, 169, + (long *)_vq_lengthlist__44c7_s_p9_1, + 1, -518889472, 1622704128, 4, 0, + (long *)_vq_quantlist__44c7_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c7_s_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44c7_s_p9_2[] = { + 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44c7_s_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44c7_s_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44c7_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c7_s_short[] = { + 4,11,12,14,15,15,17,17,18,18, 5, 6, 6, 8, 9,10, + 13,17,18,19, 7, 5, 4, 6, 8, 9,11,15,19,19, 8, 6, + 5, 5, 6, 7,11,14,16,17, 9, 7, 7, 6, 7, 7,10,13, + 15,19,10, 8, 7, 6, 7, 6, 7, 9,14,16,12,10, 9, 7, + 7, 6, 4, 5,10,15,14,13,11, 7, 6, 6, 4, 2, 7,13, + 16,16,15, 9, 8, 8, 8, 6, 9,13,19,19,17,12,11,10, + 10, 9,11,14, +}; + +static const static_codebook _huff_book__44c7_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c7_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c8_s_long[] = { + 3, 8,12,13,14,14,14,13,14,14, 6, 4, 5, 8,10,10, + 11,11,14,13, 9, 5, 4, 5, 7, 8, 9,10,13,13,12, 7, + 5, 4, 5, 6, 8, 9,12,13,13, 9, 6, 5, 5, 5, 7, 9, + 11,14,12,10, 7, 6, 5, 4, 6, 7,10,11,12,11, 9, 8, + 7, 5, 5, 6,10,10,13,12,10, 9, 8, 6, 6, 5, 8,10, + 14,13,12,12,11,10, 9, 7, 8,10,12,13,14,14,13,12, + 11, 9, 9,10, +}; + +static const static_codebook _huff_book__44c8_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c8_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c8_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c8_s_p1_0[] = { + 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 7, 7, 0, 9, 8, 0, + 9, 8, 6, 7, 7, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, + 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, + 8, +}; + +static const static_codebook _44c8_s_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44c8_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c8_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c8_s_p2_0[] = { + 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, + 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, + 7,10, 9, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, + 11,11, 5, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8, 9, + 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, + 0,11,10,12,11, 0,11,10,12,12, 0,13,13,14,14, 0, + 0, 0,14,13, 8, 9, 9,10,11, 0,10,11,12,12, 0,10, + 11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, + 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,11,10, 5, + 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, + 9,10,10, 0, 0, 0,10,10, 8,10, 9,12,12, 0,10,10, + 12,11, 0,10,10,12,12, 0,12,12,13,12, 0, 0, 0,13, + 12, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,11,12, + 0,12,12,13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, + 10,10, 0, 9, 9,10,11, 0, 0, 0,10,10, 6, 7, 8,10, + 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,10,10, + 0, 0, 0,10,10, 9,10, 9,12,12, 0,10,10,12,12, 0, + 10,10,12,11, 0,12,12,13,13, 0, 0, 0,13,12, 8, 9, + 10,12,12, 0,10,10,12,12, 0,10,10,11,12, 0,12,12, + 13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,10,10,13,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, + 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,13, 0, 9, + 9,12,12, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, + 12,12, 9,11,11,14,13, 0,10,10,13,12, 0,11,10,13, + 12, 0,12,12,13,12, 0, 0, 0,13,13, 9,11,11,13,14, + 0,10,11,12,13, 0,10,11,13,13, 0,12,12,12,13, 0, + 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,11, + 12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, + 13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,12, + 13, +}; + +static const static_codebook _44c8_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c8_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c8_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c8_s_p3_0[] = { + 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, + 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, + 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, + 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c8_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c8_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c8_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c8_s_p4_0[] = { + 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 8,10,10,11,11, + 11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11,11,11, 0, 6, 5, 6, 6, 7, 7, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 6, 6, 7, 7, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, + 11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, + 10,11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, + 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c8_s_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44c8_s_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c8_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c8_s_p5_0[] = { + 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6,10,10,10,10, + 10,10, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, + 11,10,11,11, 7,10,10,11,12,12,12,12,12, 7,10,10, + 11,12,12,12,12,12, 6,10,10,10,12,12,10,12,12, 7, + 10,10,11,12,12,12,12,12, 7,10,10,11,12,12,12,12, + 12, +}; + +static const static_codebook _44c8_s_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44c8_s_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c8_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c8_s_p5_1[] = { + 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 5, 6, 6, + 7, 7, 8, 8, 8, 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 9,12, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,12,12,12, 6, + 6, 7, 7, 8, 8, 9, 9,11,11,11, 6, 6, 7, 7, 8, 8, + 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, + 7, 7, 7, 8, 8, 8, 8, 8,11,11,11,11,11, 7, 7, 8, + 8, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 8, 8,11,11, + 11,11,11, 7, 7, 7, 7, 8, 8, +}; + +static const static_codebook _44c8_s_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44c8_s_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c8_s_p5_1, + 0 +}; + +static const long _vq_quantlist__44c8_s_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c8_s_p6_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, + 7, 7, 8, 8, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 8, + 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10, + 10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,10,10,11, + 11, 0,11,11, 9, 9,10,10,11,11,11,11,12,12, 0,12, + 12, 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _44c8_s_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44c8_s_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c8_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c8_s_p6_1[] = { + 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c8_s_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44c8_s_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c8_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c8_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c8_s_p7_0[] = { + 1, 4, 4, 6, 6, 8, 7, 9, 9,10,10,12,12, 6, 5, 5, + 7, 7, 8, 8,10,10,11,11,12,12, 7, 5, 5, 7, 7, 8, + 8,10,10,11,11,12,12,21, 7, 7, 7, 7, 8, 9,10,10, + 11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,12,12,13, + 13,21,11,11, 8, 8, 9, 9,11,11,12,12,13,13,21,11, + 11, 8, 8, 9, 9,11,11,12,12,13,13,21,21,21,10,10, + 10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11, + 11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13, + 14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21, + 21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20, + 20,13,13,13,13,14,13,15,15, +}; + +static const static_codebook _44c8_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c8_s_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44c8_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c8_s_p7_1[] = { + 4, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, + 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, + 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, + 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, + 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, + 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, + 8, 8, 8, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _44c8_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c8_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c8_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c8_s_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c8_s_p8_0[] = { + 1, 4, 4, 7, 6, 8, 8, 8, 7, 9, 8,10,10,11,10, 6, + 5, 5, 7, 7, 9, 9, 8, 8,10,10,11,11,12,11, 6, 5, + 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, + 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, 8, + 8,10, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, + 10,10,10,10,10,11,12,12,12,12,20,12,12, 9, 9,10, + 10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, + 11,10,11,11,12,12,12,13,20,19,19, 9, 9, 9, 9,11, + 11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11, + 12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12, + 12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13, + 13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13, + 14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14, + 14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15, + 15, +}; + +static const static_codebook _44c8_s_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44c8_s_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44c8_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c8_s_p8_1[] = { + 4, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, + 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, + 10,10,10, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10, 9,10,10, 9,10,10,10,10, + 9,10, 9,10,10, 9,10,10,10,10,10,10,10, 9,10,10, + 10,10,10,10, 9, 9,10,10, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, + 10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10, 9, 9,10, 9, 9, 9,10,10,10,10,10,10, + 10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, 9, + 9,10, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10, 9, 9,10,10, 9,10, 9, 9, +}; + +static const static_codebook _44c8_s_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44c8_s_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c8_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c8_s_p9_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c8_s_p9_0[] = { + 1, 4, 3,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11, 4, 7, 7,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11, 4, 8,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _44c8_s_p9_0 = { + 2, 289, + (long *)_vq_lengthlist__44c8_s_p9_0, + 1, -509798400, 1631393792, 5, 0, + (long *)_vq_quantlist__44c8_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c8_s_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__44c8_s_p9_1[] = { + 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10, + 10,11,11, 6, 6, 6, 8, 8, 9, 8, 8, 7,10, 8,11,10, + 12,11,12,12,13,13, 5, 5, 6, 8, 8, 9, 9, 8, 8,10, + 9,11,11,12,12,13,13,13,13,17, 8, 8, 9, 9, 9, 9, + 9, 9,10, 9,12,10,12,12,13,12,13,13,17, 9, 8, 9, + 9, 9, 9, 9, 9,10,10,12,12,12,12,13,13,13,13,17, + 13,13, 9, 9,10,10,10,10,11,11,12,11,13,12,13,13, + 14,15,17,13,13, 9, 8,10, 9,10,10,11,11,12,12,14, + 13,15,13,14,15,17,17,17, 9,10, 9,10,11,11,12,12, + 12,12,13,13,14,14,15,15,17,17,17, 9, 8, 9, 8,11, + 11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14, + 9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17, + 17,13,11,10, 8,11, 9,13,12,13,13,13,13,13,14,14, + 14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14, + 13,15,16,15,17,17,17,17,17,11,11,12, 8,13,12,14, + 13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12, + 12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16, + 17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17, + 17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17, + 17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15, + 15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13, + 14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13, + 14,13,13,14,14,15,14,15,14, +}; + +static const static_codebook _44c8_s_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__44c8_s_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__44c8_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c8_s_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44c8_s_p9_2[] = { + 2, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44c8_s_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44c8_s_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44c8_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c8_s_short[] = { + 4,11,13,14,15,15,18,17,19,17, 5, 6, 8, 9,10,10, + 12,15,19,19, 6, 6, 6, 6, 8, 8,11,14,18,19, 8, 6, + 5, 4, 6, 7,10,13,16,17, 9, 7, 6, 5, 6, 7, 9,12, + 15,19,10, 8, 7, 6, 6, 6, 7, 9,13,15,12,10, 9, 8, + 7, 6, 4, 5,10,15,13,13,11, 8, 6, 6, 4, 2, 7,12, + 17,15,16,10, 8, 8, 7, 6, 9,12,19,18,17,13,11,10, + 10, 9,11,14, +}; + +static const static_codebook _huff_book__44c8_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c8_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c9_s_long[] = { + 3, 8,12,14,15,15,15,13,15,15, 6, 5, 8,10,12,12, + 13,12,14,13,10, 6, 5, 6, 8, 9,11,11,13,13,13, 8, + 5, 4, 5, 6, 8,10,11,13,14,10, 7, 5, 4, 5, 7, 9, + 11,12,13,11, 8, 6, 5, 4, 5, 7, 9,11,12,11,10, 8, + 7, 5, 4, 5, 9,10,13,13,11,10, 8, 6, 5, 4, 7, 9, + 15,14,13,12,10, 9, 8, 7, 8, 9,12,12,14,13,12,11, + 10, 9, 8, 9, +}; + +static const static_codebook _huff_book__44c9_s_long = { + 2, 100, + (long *)_huff_lengthlist__44c9_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c9_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c9_s_p1_0[] = { + 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 8, 0, 9, 8, 0, + 9, 8, 6, 8, 8, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 8, 8, 0, 7, 7, 0, 8, 8, 5, 8, 8, + 0, 7, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 9, 8, 0, 8, 8, 0, 7, 7, 5, 8, 9, 0, 8, 8, 0, 7, + 7, +}; + +static const static_codebook _44c9_s_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44c9_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c9_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c9_s_p2_0[] = { + 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, + 7, 7, 9, 9, 0, 0, 0, 9, 9, 6, 7, 7, 9, 8, 0, 8, + 8, 9, 9, 0, 8, 7, 9, 9, 0, 9,10,10,10, 0, 0, 0, + 11,10, 6, 7, 7, 8, 9, 0, 8, 8, 9, 9, 0, 7, 8, 9, + 9, 0,10, 9,11,10, 0, 0, 0,10,10, 8, 9, 8,10,10, + 0,10,10,12,11, 0,10,10,11,11, 0,12,13,13,13, 0, + 0, 0,13,12, 8, 8, 9,10,10, 0,10,10,11,12, 0,10, + 10,11,11, 0,13,12,13,13, 0, 0, 0,13,13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 8, 7,10,10, 0, 7, 7,10, 9, + 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, + 7, 8,10,10, 0, 7, 7, 9,10, 0, 7, 7,10,10, 0, 9, + 9,10,10, 0, 0, 0,10,10, 8, 9, 9,11,11, 0,10,10, + 11,11, 0,10,10,11,11, 0,12,12,12,12, 0, 0, 0,12, + 12, 8, 9,10,11,11, 0, 9,10,11,11, 0,10,10,11,11, + 0,12,12,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 8, 7,10,10, 0, 7, 7,10,10, 0, 7, 7, + 10, 9, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, 7, 8,10, + 10, 0, 7, 7,10,10, 0, 7, 7, 9,10, 0, 9, 9,10,10, + 0, 0, 0,10,10, 8,10, 9,12,11, 0,10,10,12,11, 0, + 10, 9,11,11, 0,11,12,12,12, 0, 0, 0,12,12, 8, 9, + 10,11,12, 0,10,10,11,11, 0, 9,10,11,11, 0,12,11, + 12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7,10, 9,12,12, 0, 9, 9,12,11, 0, 9, 9,11,11, 0, + 10,10,12,11, 0, 0, 0,11,12, 7, 9,10,12,12, 0, 9, + 9,11,12, 0, 9, 9,11,11, 0,10,10,11,12, 0, 0, 0, + 11,11, 9,11,10,13,12, 0,10,10,12,12, 0,10,10,12, + 12, 0,11,11,12,12, 0, 0, 0,13,12, 9,10,11,12,13, + 0,10,10,12,12, 0,10,10,12,12, 0,11,12,12,12, 0, + 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 11,10,13,13, 0,10,10,12,12, 0,10,10,12,12, 0,11, + 12,12,12, 0, 0, 0,12,12, 9,10,11,13,13, 0,10,10, + 12,12, 0,10,10,12,12, 0,12,11,13,12, 0, 0, 0,12, + 12, +}; + +static const static_codebook _44c9_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c9_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c9_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c9_s_p3_0[] = { + 3, 4, 4, 5, 5, 6, 6, 8, 8, 0, 4, 4, 5, 5, 6, 7, + 8, 8, 0, 4, 4, 5, 5, 7, 7, 8, 8, 0, 5, 5, 6, 6, + 7, 7, 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, + 7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c9_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c9_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c9_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c9_s_p4_0[] = { + 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,10, + 10, 0, 5, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10, + 11,11, 0, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, + 10,11,11, 0, 6, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10, + 11,11,11,12, 0, 0, 0, 6, 6, 7, 7, 8, 8, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, 9, 9, + 10,10,11,11,12,12, 0, 0, 0, 7, 7, 7, 8, 9, 9, 9, + 9,10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, + 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c9_s_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44c9_s_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c9_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c9_s_p5_0[] = { + 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6, 9,10,10,10, + 10, 9, 4, 6, 7, 9,10,10,10, 9,10, 5, 9, 9, 9,11, + 11,10,11,11, 7,10, 9,11,12,11,12,12,12, 7, 9,10, + 11,11,12,12,12,12, 6,10,10,10,12,12,10,12,11, 7, + 10,10,11,12,12,11,12,12, 7,10,10,11,12,12,12,12, + 12, +}; + +static const static_codebook _44c9_s_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44c9_s_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c9_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c9_s_p5_1[] = { + 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7,11, 5, 5, 6, 6, + 7, 7, 7, 7, 8, 8,11, 5, 5, 6, 6, 7, 7, 7, 7, 8, + 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, + 6, 7, 7, 7, 8, 8, 8,11,11,11, 6, 6, 7, 7, 7, 8, + 8, 8,11,11,11, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11, + 7, 7, 7, 7, 7, 7, 8, 8,11,11,11,10,10, 7, 7, 7, + 7, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 7, 7,11,11, + 11,11,11, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _44c9_s_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44c9_s_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c9_s_p5_1, + 0 +}; + +static const long _vq_quantlist__44c9_s_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c9_s_p6_0[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 5, 4, 4, + 6, 6, 8, 8, 9, 9, 9, 9,10,10, 6, 4, 4, 6, 6, 8, + 8, 9, 9, 9, 9,10,10, 0, 6, 6, 7, 7, 8, 8, 9, 9, + 10,10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11, 0,10,10, 8, 8, 9, 9,10,10,11,11,12,12, 0,11, + 11, 8, 8, 9, 9,10,10,11,11,12,12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _44c9_s_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44c9_s_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c9_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c9_s_p6_1[] = { + 4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44c9_s_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44c9_s_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c9_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c9_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c9_s_p7_0[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8,10,10,11,11, 6, 4, 4, + 6, 6, 8, 8, 9, 9,10,10,12,12, 6, 4, 5, 6, 6, 8, + 8, 9, 9,10,10,12,12,20, 6, 6, 6, 6, 8, 8, 9,10, + 11,11,12,12,20, 6, 6, 6, 6, 8, 8,10,10,11,11,12, + 12,20,10,10, 7, 7, 9, 9,10,10,11,11,12,12,20,11, + 11, 7, 7, 9, 9,10,10,11,11,12,12,20,20,20, 9, 9, + 9, 9,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9,11, + 11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13, + 13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20, + 20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19, + 19,12,12,12,12,13,13,14,14, +}; + +static const static_codebook _44c9_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c9_s_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44c9_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c9_s_p7_1[] = { + 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7, + 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 6, + 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, + 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, + 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, + 8, 8, 8, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _44c9_s_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44c9_s_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c9_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c9_s_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44c9_s_p8_0[] = { + 1, 4, 4, 7, 6, 8, 8, 8, 8, 9, 9,10,10,11,10, 6, + 5, 5, 7, 7, 9, 9, 8, 9,10,10,11,11,12,12, 6, 5, + 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,21, 7, 8, + 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,21, 8, 8, 8, + 8, 9, 9, 9, 9,10,10,11,11,12,12,21,11,12, 9, 9, + 10,10,10,10,10,11,11,12,12,12,21,12,12, 9, 8,10, + 10,10,10,11,11,12,12,13,13,21,21,21, 9, 9, 9, 9, + 11,11,11,11,12,12,12,13,21,20,20, 9, 9, 9, 9,10, + 11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11, + 12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12, + 12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12, + 13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13, + 13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13, + 14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14, + 14, +}; + +static const static_codebook _44c9_s_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44c9_s_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44c9_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44c9_s_p8_1[] = { + 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10, + 10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9,10, + 9,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, + 10,10,10,10, 9, 9,10,10, 9, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10, 9, 9,10, 9, 9, 9, 9, 9,10,10,10,10,10,10, + 10,10,10,10,10, 9, 9,10,10, 9, 9,10, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10, 9, 9,10, 9, 9, 9, + 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, + 9, 9, 9,10, 9, 9, 9, 9, 9, +}; + +static const static_codebook _44c9_s_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44c9_s_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44c9_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c9_s_p9_0[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__44c9_s_p9_0[] = { + 1, 4, 3,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12, 4, 5, 6,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12, 4, 6, 6,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _44c9_s_p9_0 = { + 2, 361, + (long *)_vq_lengthlist__44c9_s_p9_0, + 1, -508535424, 1631393792, 5, 0, + (long *)_vq_quantlist__44c9_s_p9_0, + 0 +}; + +static const long _vq_quantlist__44c9_s_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__44c9_s_p9_1[] = { + 1, 4, 4, 7, 7, 7, 7, 8, 7, 9, 8, 9, 9,10,10,11, + 11,11,11, 6, 5, 5, 8, 8, 9, 9, 9, 8,10, 9,11,10, + 12,12,13,12,13,13, 5, 5, 5, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12,13,12,13,13,17, 8, 8, 9, 9, 9, 9, + 9, 9,10,10,12,11,13,12,13,13,13,13,18, 8, 8, 9, + 9, 9, 9, 9, 9,11,11,12,12,13,13,13,13,13,13,17, + 13,12, 9, 9,10,10,10,10,11,11,12,12,12,13,13,13, + 14,14,18,13,12, 9, 9,10,10,10,10,11,11,12,12,13, + 13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12, + 12,12,14,13,14,13,13,14,18,18,18,10, 9,10, 9,11, + 11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14, + 10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18, + 18,14,12,11, 9,11,10,13,12,13,13,13,14,14,14,13, + 14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14, + 13,14,14,14,18,18,18,18,17,12,10,12, 9,13,11,13, + 14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13, + 13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15, + 15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18, + 18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15, + 18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15, + 14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14, + 14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13, + 13,13,13,14,13,14,15,15,15, +}; + +static const static_codebook _44c9_s_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__44c9_s_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__44c9_s_p9_1, + 0 +}; + +static const long _vq_quantlist__44c9_s_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44c9_s_p9_2[] = { + 2, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44c9_s_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44c9_s_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44c9_s_p9_2, + 0 +}; + +static const long _huff_lengthlist__44c9_s_short[] = { + 5,13,18,16,17,17,19,18,19,19, 5, 7,10,11,12,12, + 13,16,17,18, 6, 6, 7, 7, 9, 9,10,14,17,19, 8, 7, + 6, 5, 6, 7, 9,12,19,17, 8, 7, 7, 6, 5, 6, 8,11, + 15,19, 9, 8, 7, 6, 5, 5, 6, 8,13,15,11,10, 8, 8, + 7, 5, 4, 4,10,14,12,13,11, 9, 7, 6, 4, 2, 6,12, + 18,16,16,13, 8, 7, 7, 5, 8,13,16,17,18,15,11, 9, + 9, 8,10,13, +}; + +static const static_codebook _huff_book__44c9_s_short = { + 2, 100, + (long *)_huff_lengthlist__44c9_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c0_s_long[] = { + 5, 4, 8, 9, 8, 9,10,12,15, 4, 1, 5, 5, 6, 8,11, + 12,12, 8, 5, 8, 9, 9,11,13,12,12, 9, 5, 8, 5, 7, + 9,12,13,13, 8, 6, 8, 7, 7, 9,11,11,11, 9, 7, 9, + 7, 7, 7, 7,10,12,10,10,11, 9, 8, 7, 7, 9,11,11, + 12,13,12,11, 9, 8, 9,11,13,16,16,15,15,12,10,11, + 12, +}; + +static const static_codebook _huff_book__44c0_s_long = { + 2, 81, + (long *)_huff_lengthlist__44c0_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c0_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c0_s_p1_0[] = { + 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, + 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,11, + 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c0_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c0_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c0_s_p2_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c0_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c0_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c0_s_p3_0[] = { + 1, 3, 2, 8, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c0_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c0_s_p4_0[] = { + 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, + 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, + 7, 8, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, + 9, 9, 8, 8,10,10, 0, 0, 0, 8, 9, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, + 10, +}; + +static const static_codebook _44c0_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c0_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c0_s_p5_0[] = { + 1, 4, 3, 6, 6, 8, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,10, + 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, + 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, + 10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,11,11,11,11,11,12,12,12,13,13, 0, 0, 0, 0, + 0, 0, 0,11,10,11,11,11,11,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,11,12,12,12,12,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,12,12,12,12,13,13,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, + 14, +}; + +static const static_codebook _44c0_s_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44c0_s_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c0_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c0_s_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, + 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, + 11,12,10,11, 6, 9, 9,11,10,11,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,10,12,11,11,11,11,11, 7, + 9, 9,10,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44c0_s_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44c0_s_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c0_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c0_s_p6_1[] = { + 2, 3, 3, 6, 6, 7, 7, 7, 7, 7, 8,10,10,10, 6, 6, + 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c0_s_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44c0_s_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c0_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c0_s_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, + 10,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, + 11,11,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, + 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,11,11,11,11,13,12,13,13, 0, 0, 0, 0, + 0,12,12,11,11,12,12,13,13, +}; + +static const static_codebook _44c0_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c0_s_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c0_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c0_s_p7_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c0_s_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44c0_s_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c0_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c0_s_p8_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c0_s_p8_0[] = { + 1, 5, 5,10,10, 6, 9, 8,10,10, 6,10, 9,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 8,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11, +}; + +static const static_codebook _44c0_s_p8_0 = { + 4, 625, + (long *)_vq_lengthlist__44c0_s_p8_0, + 1, -518283264, 1627103232, 3, 0, + (long *)_vq_quantlist__44c0_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c0_s_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c0_s_p8_1[] = { + 1, 4, 4, 6, 6, 7, 7, 9, 9,11,12,13,12, 6, 5, 5, + 7, 7, 8, 8,10, 9,12,12,12,12, 6, 5, 5, 7, 7, 8, + 8,10, 9,12,11,11,13,16, 7, 7, 8, 8, 9, 9,10,10, + 12,12,13,12,16, 7, 7, 8, 7, 9, 9,10,10,11,12,12, + 13,16,10,10, 8, 8,10,10,11,12,12,12,13,13,16,11, + 10, 8, 7,11,10,11,11,12,11,13,13,16,16,16,10,10, + 10,10,11,11,13,12,13,13,16,16,16,11, 9,11, 9,15, + 13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12, + 14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16, + 16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16, + 16,13,13,12,12,14,14,15,13, +}; + +static const static_codebook _44c0_s_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44c0_s_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44c0_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c0_s_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c0_s_p8_2[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, + 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, + 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 8, 9, 9, + 9, 9, 9,10, 9,10,10,10,10, 7, 7, 8, 8, 9, 9, 9, + 9, 9, 9,10, 9,10,10,10,10,10, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 9,11,10,10,10,10, 8, 8, 9, + 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10,11,11, 9, 9, + 9, 9, 9, 9, 9, 9,10, 9, 9,10,11,10,10,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,10,11, + 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 11,11,11,11, 9,10, 9,10, 9, 9, 9, 9,10, 9,10,11, + 10,11,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9,10,11, + 11,10,11,11,10,11,10,10,10, 9, 9, 9, 9,10, 9, 9, + 10,11,10,11,11,11,11,10,11,10,10, 9,10, 9, 9, 9, + 10, +}; + +static const static_codebook _44c0_s_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44c0_s_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c0_s_p8_2, + 0 +}; + +static const long _huff_lengthlist__44c0_s_short[] = { + 9, 8,12,11,12,13,14,14,16, 6, 1, 5, 6, 6, 9,12, + 14,17, 9, 4, 5, 9, 7, 9,13,15,16, 8, 5, 8, 6, 8, + 10,13,17,17, 9, 6, 7, 7, 8, 9,13,15,17,11, 8, 9, + 9, 9,10,12,16,16,13, 7, 8, 7, 7, 9,12,14,15,13, + 6, 7, 5, 5, 7,10,13,13,14, 7, 8, 5, 6, 7, 9,10, + 12, +}; + +static const static_codebook _huff_book__44c0_s_short = { + 2, 81, + (long *)_huff_lengthlist__44c0_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c0_sm_long[] = { + 5, 4, 9,10, 9,10,11,12,13, 4, 1, 5, 7, 7, 9,11, + 12,14, 8, 5, 7, 9, 8,10,13,13,13,10, 7, 9, 4, 6, + 7,10,12,14, 9, 6, 7, 6, 6, 7,10,12,12, 9, 8, 9, + 7, 6, 7, 8,11,12,11,11,11, 9, 8, 7, 8,10,12,12, + 13,14,12,11, 9, 9, 9,12,12,17,17,15,16,12,10,11, + 13, +}; + +static const static_codebook _huff_book__44c0_sm_long = { + 2, 81, + (long *)_huff_lengthlist__44c0_sm_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c0_sm_p1_0[] = { + 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, + 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_sm_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c0_sm_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c0_sm_p1_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c0_sm_p2_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_sm_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c0_sm_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c0_sm_p2_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c0_sm_p3_0[] = { + 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 4, 7, 7, 0, 0, + 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 9,10, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, + 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c0_sm_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c0_sm_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_sm_p3_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c0_sm_p4_0[] = { + 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, + 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, + 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, + 9, 9, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, + 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, + 11, +}; + +static const static_codebook _44c0_sm_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c0_sm_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_sm_p4_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c0_sm_p5_0[] = { + 1, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, + 11,11, 0, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 11,11,11, 0, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, + 11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, + 10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,11,12,12,13,13,13,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, + 14, +}; + +static const static_codebook _44c0_sm_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44c0_sm_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c0_sm_p5_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c0_sm_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, + 11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,10,11,11,11,11,11,11, 6, + 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, + 11, +}; + +static const static_codebook _44c0_sm_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44c0_sm_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c0_sm_p6_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c0_sm_p6_1[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 9, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, + 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c0_sm_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44c0_sm_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c0_sm_p6_1, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c0_sm_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0, 9,10, + 10,10,11,11,12,11,12,12, 0, 0, 0,10,10, 9, 9,11, + 11,12,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, + 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,11,12,11,11,13,12,13,13, 0, 0, 0, 0, + 0,12,12,11,11,13,12,14,14, +}; + +static const static_codebook _44c0_sm_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c0_sm_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c0_sm_p7_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c0_sm_p7_1[] = { + 2, 4, 4, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c0_sm_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44c0_sm_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c0_sm_p7_1, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p8_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c0_sm_p8_0[] = { + 1, 3, 3,11,11,11,11,11,11, 3, 7, 6,11,11,11,11, + 11,11, 4, 8, 7,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12, +}; + +static const static_codebook _44c0_sm_p8_0 = { + 2, 81, + (long *)_vq_lengthlist__44c0_sm_p8_0, + 1, -516186112, 1627103232, 4, 0, + (long *)_vq_quantlist__44c0_sm_p8_0, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c0_sm_p8_1[] = { + 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, + 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, + 8,10,10,12,11,12,12,17, 7, 7, 8, 8, 9, 9,10,10, + 12,12,13,13,18, 7, 7, 8, 7, 9, 9,10,10,12,12,12, + 13,19,10,10, 8, 8,10,10,11,11,12,12,13,14,19,11, + 10, 8, 7,10,10,11,11,12,12,13,12,19,19,19,10,10, + 10,10,11,11,12,12,13,13,19,19,19,11, 9,11, 9,14, + 12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13, + 14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20, + 20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20, + 20,13,13,12,12,16,13,15,13, +}; + +static const static_codebook _44c0_sm_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44c0_sm_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44c0_sm_p8_1, + 0 +}; + +static const long _vq_quantlist__44c0_sm_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c0_sm_p8_2[] = { + 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, + 9,10, 9, 9,10,10,10,11, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,11,11, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,11,11,11, 9, 9, + 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,10,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,11,11, + 11,11,11, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,10,11,10, + 11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, + 11,11,11,11,11, 9,10, 9, 9, 9, 9, 9, 9, 9, 9,11, + 11,10,11,11,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, + 10,11,10,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _44c0_sm_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44c0_sm_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c0_sm_p8_2, + 0 +}; + +static const long _huff_lengthlist__44c0_sm_short[] = { + 6, 6,12,13,13,14,16,17,17, 4, 2, 5, 8, 7, 9,12, + 15,15, 9, 4, 5, 9, 7, 9,12,16,18,11, 6, 7, 4, 6, + 8,11,14,18,10, 5, 6, 5, 5, 7,10,14,17,10, 5, 7, + 7, 6, 7,10,13,16,11, 5, 7, 7, 7, 8,10,12,15,13, + 6, 7, 5, 5, 7, 9,12,13,16, 8, 9, 6, 6, 7, 9,10, + 12, +}; + +static const static_codebook _huff_book__44c0_sm_short = { + 2, 81, + (long *)_huff_lengthlist__44c0_sm_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c1_s_long[] = { + 5, 5, 9,10, 9, 9,10,11,12, 5, 1, 5, 6, 6, 7,10, + 12,14, 9, 5, 6, 8, 8,10,12,14,14,10, 5, 8, 5, 6, + 8,11,13,14, 9, 5, 7, 6, 6, 8,10,12,11, 9, 7, 9, + 7, 6, 6, 7,10,10,10, 9,12, 9, 8, 7, 7,10,12,11, + 11,13,12,10, 9, 8, 9,11,11,14,15,15,13,11, 9, 9, + 11, +}; + +static const static_codebook _huff_book__44c1_s_long = { + 2, 81, + (long *)_huff_lengthlist__44c1_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c1_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c1_s_p1_0[] = { + 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, + 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, + 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, + 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, + 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, + 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, + 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c1_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c1_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c1_s_p2_0[] = { + 2, 3, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c1_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c1_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c1_s_p3_0[] = { + 1, 3, 2, 7, 7, 0, 0, 0, 0, 0,13,13, 6, 6, 0, 0, + 0, 0, 0,12, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c1_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c1_s_p4_0[] = { + 1, 3, 3, 6, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, + 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, + 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, + 9, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, + 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, + 11, +}; + +static const static_codebook _44c1_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c1_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c1_s_p5_0[] = { + 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, + 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,11, 0, 0, 0, 8, 8, 9, 9, 9,10,10,10, + 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10, 9,10, + 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, + 10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, + 0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, + 14, +}; + +static const static_codebook _44c1_s_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44c1_s_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c1_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c1_s_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 6,10,10,11,11, + 11,11,10,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 7, + 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,12,10, + 11, +}; + +static const static_codebook _44c1_s_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44c1_s_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c1_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c1_s_p6_1[] = { + 2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, + 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c1_s_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44c1_s_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44c1_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_s_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 9, 7, 5, 6, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,11, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, + 10,10,11,11,12,11,12,12, 0, 0, 0,10,10,10, 9,11, + 11,12,11,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, + 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,11,12,11,11,12,12,14,13, 0, 0, 0, 0, + 0,12,11,11,11,13,10,14,13, +}; + +static const static_codebook _44c1_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c1_s_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c1_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c1_s_p7_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c1_s_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44c1_s_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c1_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44c1_s_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_s_p8_0[] = { + 1, 4, 3,10,10,10,10,10,10,10,10,10,10, 4, 8, 6, + 10,10,10,10,10,10,10,10,10,10, 4, 8, 7,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44c1_s_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c1_s_p8_0, + 1, -514541568, 1627103232, 4, 0, + (long *)_vq_quantlist__44c1_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44c1_s_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_s_p8_1[] = { + 1, 4, 4, 6, 5, 7, 7, 9, 9,10,10,12,12, 6, 5, 5, + 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, + 8,10,10,11,11,12,12,15, 7, 7, 8, 8, 9, 9,11,11, + 12,12,13,12,15, 8, 8, 8, 7, 9, 9,10,10,12,12,13, + 13,16,11,10, 8, 8,10,10,11,11,12,12,13,13,16,11, + 11, 9, 8,11,10,11,11,12,12,13,12,16,16,16,10,11, + 10,11,12,12,12,12,13,13,16,16,16,11, 9,11, 9,14, + 12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13, + 14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16, + 16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16, + 16,13,12,12,11,14,12,15,13, +}; + +static const static_codebook _44c1_s_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44c1_s_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44c1_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44c1_s_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c1_s_p8_2[] = { + 2, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10,10,10, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, + 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, + 9,10, 9, 9,10,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,11,11,11, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, 8, 8, 9, + 9, 9, 9,10, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,11,11, + 11,11,11, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,10,11,11, + 11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, + 11,11,11,11,11, 9,10, 9, 9, 9, 9,10, 9, 9, 9,11, + 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, + 11,11,10,11,11,11,11,10,11, 9, 9, 9, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _44c1_s_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44c1_s_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c1_s_p8_2, + 0 +}; + +static const long _huff_lengthlist__44c1_s_short[] = { + 6, 8,13,12,13,14,15,16,16, 4, 2, 4, 7, 6, 8,11, + 13,15,10, 4, 4, 8, 6, 8,11,14,17,11, 5, 6, 5, 6, + 8,12,14,17,11, 5, 5, 6, 5, 7,10,13,16,12, 6, 7, + 8, 7, 8,10,13,15,13, 8, 8, 7, 7, 8,10,12,15,15, + 7, 7, 5, 5, 7, 9,12,14,15, 8, 8, 6, 6, 7, 8,10, + 11, +}; + +static const static_codebook _huff_book__44c1_s_short = { + 2, 81, + (long *)_huff_lengthlist__44c1_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44c1_sm_long[] = { + 5, 4, 8,10, 9, 9,10,11,12, 4, 2, 5, 6, 6, 8,10, + 11,13, 8, 4, 6, 8, 7, 9,12,12,14,10, 6, 8, 4, 5, + 6, 9,11,12, 9, 5, 6, 5, 5, 6, 9,11,11, 9, 7, 9, + 6, 5, 5, 7,10,10,10, 9,11, 8, 7, 6, 7, 9,11,11, + 12,13,10,10, 9, 8, 9,11,11,15,15,12,13,11, 9,10, + 11, +}; + +static const static_codebook _huff_book__44c1_sm_long = { + 2, 81, + (long *)_huff_lengthlist__44c1_sm_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c1_sm_p1_0[] = { + 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, + 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, + 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_sm_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44c1_sm_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44c1_sm_p1_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c1_sm_p2_0[] = { + 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_sm_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44c1_sm_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c1_sm_p2_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c1_sm_p3_0[] = { + 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, + 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44c1_sm_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44c1_sm_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_sm_p3_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44c1_sm_p4_0[] = { + 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, 8, 8, + 9, 9, 0, 6, 6, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, + 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, + 8, 8, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, + 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, + 11, +}; + +static const static_codebook _44c1_sm_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44c1_sm_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_sm_p4_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c1_sm_p5_0[] = { + 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, + 11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10,10, + 10,11,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, + 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 9, 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, + 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, 0, + 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, + 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, + 14, +}; + +static const static_codebook _44c1_sm_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44c1_sm_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c1_sm_p5_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44c1_sm_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, + 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, + 11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,11,11,11,11,11,11,11, 6, + 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,11,10, + 11, +}; + +static const static_codebook _44c1_sm_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44c1_sm_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44c1_sm_p6_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44c1_sm_p6_1[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, + 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 9, 8,10,10,10,10,10, 8, 8, 8, + 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, + 10,10,10, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44c1_sm_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44c1_sm_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44c1_sm_p6_1, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_sm_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, + 8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0, 9,10, + 9,10,11,11,12,11,13,12, 0, 0, 0,10,10, 9, 9,11, + 11,12,12,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, + 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,11,12,11,11,12,13,14,13, 0, 0, 0, 0, + 0,12,12,11,11,13,12,14,13, +}; + +static const static_codebook _44c1_sm_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44c1_sm_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44c1_sm_p7_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44c1_sm_p7_1[] = { + 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44c1_sm_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44c1_sm_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44c1_sm_p7_1, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p8_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_sm_p8_0[] = { + 1, 3, 3,13,13,13,13,13,13,13,13,13,13, 3, 6, 6, + 13,13,13,13,13,13,13,13,13,13, 4, 8, 7,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13, +}; + +static const static_codebook _44c1_sm_p8_0 = { + 2, 169, + (long *)_vq_lengthlist__44c1_sm_p8_0, + 1, -514541568, 1627103232, 4, 0, + (long *)_vq_quantlist__44c1_sm_p8_0, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44c1_sm_p8_1[] = { + 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, + 7, 7, 8, 7,10,10,11,11,12,12, 6, 5, 5, 7, 7, 8, + 8,10,10,11,11,12,12,16, 7, 7, 8, 8, 9, 9,11,11, + 12,12,13,13,17, 7, 7, 8, 7, 9, 9,11,10,12,12,13, + 13,19,11,10, 8, 8,10,10,11,11,12,12,13,13,19,11, + 11, 9, 7,11,10,11,11,12,12,13,12,19,19,19,10,10, + 10,10,11,12,12,12,13,14,18,19,19,11, 9,11, 9,13, + 12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13, + 14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20, + 20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20, + 20,13,12,12,12,14,12,14,13, +}; + +static const static_codebook _44c1_sm_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44c1_sm_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44c1_sm_p8_1, + 0 +}; + +static const long _vq_quantlist__44c1_sm_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44c1_sm_p8_2[] = { + 2, 5, 5, 6, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, + 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,11,11,11, 9, + 8, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11,11, + 11,11,11, 9, 9,10, 9, 9, 9, 9,10, 9,10,10,11,10, + 11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,10,11, + 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11, + 11,10,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, + 10,11,10,11,11,11,11,11,11, 9, 9,10, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _44c1_sm_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44c1_sm_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44c1_sm_p8_2, + 0 +}; + +static const long _huff_lengthlist__44c1_sm_short[] = { + 4, 7,13,14,14,15,16,18,18, 4, 2, 5, 8, 7, 9,12, + 15,15,10, 4, 5,10, 6, 8,11,15,17,12, 5, 7, 5, 6, + 8,11,14,17,11, 5, 6, 6, 5, 6, 9,13,17,12, 6, 7, + 6, 5, 6, 8,12,14,14, 7, 8, 6, 6, 7, 9,11,14,14, + 8, 9, 6, 5, 6, 9,11,13,16,10,10, 7, 6, 7, 8,10, + 11, +}; + +static const static_codebook _huff_book__44c1_sm_short = { + 2, 81, + (long *)_huff_lengthlist__44c1_sm_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44cn1_s_long[] = { + 4, 4, 7, 8, 7, 8,10,12,17, 3, 1, 6, 6, 7, 8,10, + 12,15, 7, 6, 9, 9, 9,11,12,14,17, 8, 6, 9, 6, 7, + 9,11,13,17, 7, 6, 9, 7, 7, 8, 9,12,15, 8, 8,10, + 8, 7, 7, 7,10,14, 9,10,12,10, 8, 8, 8,10,14,11, + 13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16, + 20, +}; + +static const static_codebook _huff_book__44cn1_s_long = { + 2, 81, + (long *)_huff_lengthlist__44cn1_s_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44cn1_s_p1_0[] = { + 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, + 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, + 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0,10,11,11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, + 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0,10,11,11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, + 0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, 0, + 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, + 0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_s_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44cn1_s_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44cn1_s_p1_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44cn1_s_p2_0[] = { + 1, 4, 4, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_s_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44cn1_s_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44cn1_s_p2_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44cn1_s_p3_0[] = { + 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, + 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_s_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44cn1_s_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_s_p3_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44cn1_s_p4_0[] = { + 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 6, 6, 7, 7, + 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, 7, 7, + 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, + 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, + 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, + 11, +}; + +static const static_codebook _44cn1_s_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44cn1_s_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_s_p4_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44cn1_s_p5_0[] = { + 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, + 10, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, + 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, + 10,10,11,11,11,12,12, 0, 0, 0, 9, 9,10, 9,10,10, + 10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, + 10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, + 10,10,11,10,11,11,11,12,13,12,13,13, 0, 0, 0, 0, + 0, 0, 0,11,10,11,11,12,12,12,12,13,13, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, + 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,13,13,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,12,13,13,14, + 14, +}; + +static const static_codebook _44cn1_s_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44cn1_s_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44cn1_s_p5_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44cn1_s_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 6, 6,10, 9, 9,11, + 9, 9, 4, 6, 6,10, 9, 9,10, 9, 9, 7,10,10,11,11, + 11,12,11,11, 7, 9, 9,11,11,10,11,10,10, 7, 9, 9, + 11,10,11,11,10,10, 7,10,10,11,11,11,12,11,11, 7, + 9, 9,11,10,10,11,10,10, 7, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44cn1_s_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44cn1_s_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44cn1_s_p6_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44cn1_s_p6_1[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 6, + 8, 8, 8, 8, 8, 8,10,10,10, 7, 6, 7, 7, 8, 8, 8, + 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 9, 9, + 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, + 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10, + 10,10,10, 9, 9, 9, 9, 9, 9, +}; + +static const static_codebook _44cn1_s_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44cn1_s_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_s_p6_1, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44cn1_s_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, + 7, 7, 8, 8, 8, 8, 9, 9,11,11, 7, 5, 5, 7, 7, 8, + 8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,12, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, + 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, + 11,12,12,13,12, 0, 0, 0,14,14,11,10,11,12,12,13, + 13,14, 0, 0, 0,15,15,11,11,12,11,12,12,14,13, 0, + 0, 0, 0, 0,12,12,12,12,13,13,14,14, 0, 0, 0, 0, + 0,13,13,12,12,13,13,13,14, +}; + +static const static_codebook _44cn1_s_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44cn1_s_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44cn1_s_p7_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44cn1_s_p7_1[] = { + 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, + 6, 6, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44cn1_s_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44cn1_s_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44cn1_s_p7_1, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p8_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44cn1_s_p8_0[] = { + 1, 7, 7,11,11, 8,11,11,11,11, 4,11, 3,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11, 7,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11, 8,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12, +}; + +static const static_codebook _44cn1_s_p8_0 = { + 4, 625, + (long *)_vq_lengthlist__44cn1_s_p8_0, + 1, -518283264, 1627103232, 3, 0, + (long *)_vq_quantlist__44cn1_s_p8_0, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44cn1_s_p8_1[] = { + 1, 4, 4, 6, 6, 8, 8, 9,10,10,11,11,11, 6, 5, 5, + 7, 7, 8, 8, 9,10, 9,11,11,12, 5, 5, 5, 7, 7, 8, + 9,10,10,12,12,14,13,15, 7, 7, 8, 8, 9,10,11,11, + 10,12,10,11,15, 7, 8, 8, 8, 9, 9,11,11,13,12,12, + 13,15,10,10, 8, 8,10,10,12,12,11,14,10,10,15,11, + 11, 8, 8,10,10,12,13,13,14,15,13,15,15,15,10,10, + 10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13, + 11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10, + 14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15, + 15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15, + 15,12,12,11,11,14,12,13,14, +}; + +static const static_codebook _44cn1_s_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44cn1_s_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44cn1_s_p8_1, + 0 +}; + +static const long _vq_quantlist__44cn1_s_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44cn1_s_p8_2[] = { + 3, 4, 3, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9,10,11,11, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10,10,10, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10, 9,10,11,10, 7, 6, 7, 7, 8, 8, 9, 9, 9, + 9, 9, 9, 9,10,10,10,11, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9,10,11,11,11, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 8, 8, 8, + 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11,11, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,10,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11, + 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, + 10,11,11,11, 9,10,10, 9, 9, 9, 9, 9, 9, 9,10,11, + 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, + 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, + 11,11,11,10,11,11,11,11,11, 9, 9, 9,10, 9, 9, 9, + 9, +}; + +static const static_codebook _44cn1_s_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44cn1_s_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44cn1_s_p8_2, + 0 +}; + +static const long _huff_lengthlist__44cn1_s_short[] = { + 10, 9,12,15,12,13,16,14,16, 7, 1, 5,14, 7,10,13, + 16,16, 9, 4, 6,16, 8,11,16,16,16,14, 4, 7,16, 9, + 12,14,16,16,10, 5, 7,14, 9,12,14,15,15,13, 8, 9, + 14,10,12,13,14,15,13, 9, 9, 7, 6, 8,11,12,12,14, + 8, 8, 5, 4, 5, 8,11,12,16,10,10, 6, 5, 6, 8, 9, + 10, +}; + +static const static_codebook _huff_book__44cn1_s_short = { + 2, 81, + (long *)_huff_lengthlist__44cn1_s_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44cn1_sm_long[] = { + 3, 3, 8, 8, 8, 8,10,12,14, 3, 2, 6, 7, 7, 8,10, + 12,16, 7, 6, 7, 9, 8,10,12,14,16, 8, 6, 8, 4, 5, + 7, 9,11,13, 7, 6, 8, 5, 6, 7, 9,11,14, 8, 8,10, + 7, 7, 6, 8,10,13, 9,11,12, 9, 9, 7, 8,10,12,10, + 13,15,11,11,10, 9,10,13,13,16,17,14,15,14,13,14, + 17, +}; + +static const static_codebook _huff_book__44cn1_sm_long = { + 2, 81, + (long *)_huff_lengthlist__44cn1_sm_long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44cn1_sm_p1_0[] = { + 1, 4, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, + 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, + 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, + 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, + 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, + 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, + 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, + 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, + 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, + 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_sm_p1_0 = { + 8, 6561, + (long *)_vq_lengthlist__44cn1_sm_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44cn1_sm_p1_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44cn1_sm_p2_0[] = { + 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_sm_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44cn1_sm_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44cn1_sm_p2_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44cn1_sm_p3_0[] = { + 1, 3, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0, + 0, 0, 0, 4, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, + 9, 9, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, + 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, +}; + +static const static_codebook _44cn1_sm_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44cn1_sm_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p3_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p4_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44cn1_sm_p4_0[] = { + 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, + 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, + 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, + 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, + 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, + 11, +}; + +static const static_codebook _44cn1_sm_p4_0 = { + 2, 81, + (long *)_vq_lengthlist__44cn1_sm_p4_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p4_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p5_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44cn1_sm_p5_0[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, + 11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, + 12,12, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, + 11,12,12, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,11, + 11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, + 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, + 10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, + 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, + 10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, + 9,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, 0, + 10,10,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, 0, + 0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, + 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, + 0, 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, + 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,14,14,14,14, + 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,14,14, + 14, +}; + +static const static_codebook _44cn1_sm_p5_0 = { + 2, 289, + (long *)_vq_lengthlist__44cn1_sm_p5_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44cn1_sm_p5_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p6_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44cn1_sm_p6_0[] = { + 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 6,10, 9, 9,11, + 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, + 11,11,11,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, + 11,10,11,11,10,10, 7,11,11,11,11,11,12,11,11, 7, + 9, 9,11,10,10,12,10,10, 7, 9, 9,11,10,10,11,10, + 10, +}; + +static const static_codebook _44cn1_sm_p6_0 = { + 4, 81, + (long *)_vq_lengthlist__44cn1_sm_p6_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44cn1_sm_p6_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p6_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44cn1_sm_p6_1[] = { + 2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, + 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, + 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, + 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, + 8, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 8, 9,10,10, + 10,10,10, 8, 9, 8, 8, 9, 8, +}; + +static const static_codebook _44cn1_sm_p6_1 = { + 2, 121, + (long *)_vq_lengthlist__44cn1_sm_p6_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p6_1, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44cn1_sm_p7_0[] = { + 1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 9,10,10, 7, 5, 5, + 7, 7, 8, 8, 8, 8,10, 9,11,10, 7, 5, 5, 7, 7, 8, + 8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, + 11, 0,12,12, 9, 9, 9,10,10,10,11,11,12,12, 0,13, + 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, + 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, + 11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,13, + 13,13, 0, 0, 0,14,14,11,10,11,11,12,12,13,13, 0, + 0, 0, 0, 0,12,12,12,12,13,13,13,14, 0, 0, 0, 0, + 0,13,12,12,12,13,13,13,14, +}; + +static const static_codebook _44cn1_sm_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44cn1_sm_p7_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p7_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p7_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44cn1_sm_p7_1[] = { + 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, + 5, 5, 5, 5, 6, 6, 6, 5, 5, +}; + +static const static_codebook _44cn1_sm_p7_1 = { + 2, 25, + (long *)_vq_lengthlist__44cn1_sm_p7_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44cn1_sm_p7_1, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p8_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44cn1_sm_p8_0[] = { + 1, 4, 4,12,11,13,13,14,14, 4, 7, 7,11,13,14,14, + 14,14, 3, 8, 3,14,14,14,14,14,14,14,10,12,14,14, + 14,14,14,14,14,14, 5,14, 8,14,14,14,14,14,12,14, + 13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14, +}; + +static const static_codebook _44cn1_sm_p8_0 = { + 2, 81, + (long *)_vq_lengthlist__44cn1_sm_p8_0, + 1, -516186112, 1627103232, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p8_0, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p8_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44cn1_sm_p8_1[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,11,11, 6, 5, 5, + 7, 7, 8, 8,10,10,10,11,11,11, 6, 5, 5, 7, 7, 8, + 8,10,10,11,12,12,12,14, 7, 7, 7, 8, 9, 9,11,11, + 11,12,11,12,17, 7, 7, 8, 7, 9, 9,11,11,12,12,12, + 12,14,11,11, 8, 8,10,10,11,12,12,13,11,12,14,11, + 11, 8, 8,10,10,11,12,12,13,13,12,14,15,14,10,10, + 10,10,11,12,12,12,12,11,14,13,16,10,10,10, 9,12, + 11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11, + 13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13, + 13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14, + 17,12,12,11,10,13,11,13,13, +}; + +static const static_codebook _44cn1_sm_p8_1 = { + 2, 169, + (long *)_vq_lengthlist__44cn1_sm_p8_1, + 1, -522616832, 1620115456, 4, 0, + (long *)_vq_quantlist__44cn1_sm_p8_1, + 0 +}; + +static const long _vq_quantlist__44cn1_sm_p8_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44cn1_sm_p8_2[] = { + 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9,11,10,11, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, 8, 8, 8, + 8, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,11,11, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,10,11,11, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11, + 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11, + 11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,11,10, + 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, + 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, + 10,11,11,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _44cn1_sm_p8_2 = { + 2, 289, + (long *)_vq_lengthlist__44cn1_sm_p8_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44cn1_sm_p8_2, + 0 +}; + +static const long _huff_lengthlist__44cn1_sm_short[] = { + 5, 6,12,14,12,14,16,17,18, 4, 2, 5,11, 7,10,12, + 14,15, 9, 4, 5,11, 7,10,13,15,18,15, 6, 7, 5, 6, + 8,11,13,16,11, 5, 6, 5, 5, 6, 9,13,15,12, 5, 7, + 6, 5, 6, 9,12,14,12, 6, 7, 8, 6, 7, 9,12,13,14, + 8, 8, 7, 5, 5, 8,10,12,16, 9, 9, 8, 6, 6, 7, 9, + 9, +}; + +static const static_codebook _huff_book__44cn1_sm_short = { + 2, 81, + (long *)_huff_lengthlist__44cn1_sm_short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + diff --git a/libvorbis-1.0.1/lib/books/floor/Makefile.am b/Dependencies/libvorbis/lib/books/floor/Makefile.am similarity index 75% rename from libvorbis-1.0.1/lib/books/floor/Makefile.am rename to Dependencies/libvorbis/lib/books/floor/Makefile.am index 86e326f..272ab1a 100644 --- a/libvorbis-1.0.1/lib/books/floor/Makefile.am +++ b/Dependencies/libvorbis/lib/books/floor/Makefile.am @@ -1,5 +1,3 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign - EXTRA_DIST = floor_books.h diff --git a/Dependencies/libvorbis/lib/books/floor/Makefile.in b/Dependencies/libvorbis/lib/books/floor/Makefile.in new file mode 100644 index 0000000..6148dc2 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/floor/Makefile.in @@ -0,0 +1,356 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = lib/books/floor +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = floor_books.h +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/books/floor/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/books/floor/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/lib/books/floor/floor_books.h b/Dependencies/libvorbis/lib/books/floor/floor_books.h new file mode 100644 index 0000000..14320cf --- /dev/null +++ b/Dependencies/libvorbis/lib/books/floor/floor_books.h @@ -0,0 +1,1547 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: static codebooks autogenerated by huff/huffbuld + last modified: $Id: floor_books.h 16939 2010-03-01 08:38:14Z xiphmont $ + + ********************************************************************/ + +#include "codebook.h" + +static const long _huff_lengthlist_line_256x7_0sub1[] = { + 0, 2, 3, 3, 3, 3, 4, 3, 4, +}; + +static const static_codebook _huff_book_line_256x7_0sub1 = { + 1, 9, + (long *)_huff_lengthlist_line_256x7_0sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_0sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 5, 3, + 6, 3, 6, 4, 6, 4, 7, 5, 7, +}; + +static const static_codebook _huff_book_line_256x7_0sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_256x7_0sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_0sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 5, 3, 5, 3, + 6, 3, 6, 4, 7, 6, 7, 8, 7, 9, 8, 9, 9, 9,10, 9, + 11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12, +}; + +static const static_codebook _huff_book_line_256x7_0sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_256x7_0sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_1sub1[] = { + 0, 3, 3, 3, 3, 2, 4, 3, 4, +}; + +static const static_codebook _huff_book_line_256x7_1sub1 = { + 1, 9, + (long *)_huff_lengthlist_line_256x7_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_1sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 4, 3, 4, 4, + 5, 4, 6, 5, 6, 7, 6, 8, 8, +}; + +static const static_codebook _huff_book_line_256x7_1sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_256x7_1sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_1sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 3, 6, 3, 7, + 3, 8, 5, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, +}; + +static const static_codebook _huff_book_line_256x7_1sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_256x7_1sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_class0[] = { + 7, 5, 5, 9, 9, 6, 6, 9,12, 8, 7, 8,11, 8, 9,15, + 6, 3, 3, 7, 7, 4, 3, 6, 9, 6, 5, 6, 8, 6, 8,15, + 8, 5, 5, 9, 8, 5, 4, 6,10, 7, 5, 5,11, 8, 7,15, + 14,15,13,13,13,13, 8,11,15,10, 7, 6,11, 9,10,15, +}; + +static const static_codebook _huff_book_line_256x7_class0 = { + 1, 64, + (long *)_huff_lengthlist_line_256x7_class0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x7_class1[] = { + 5, 6, 8,15, 6, 9,10,15,10,11,12,15,15,15,15,15, + 4, 6, 7,15, 6, 7, 8,15, 9, 8, 9,15,15,15,15,15, + 6, 8, 9,15, 7, 7, 8,15,10, 9,10,15,15,15,15,15, + 15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15, + 4, 6, 7,15, 6, 8, 9,15,10,10,12,15,15,15,15,15, + 2, 5, 6,15, 5, 6, 7,15, 8, 6, 7,15,15,15,15,15, + 5, 6, 8,15, 5, 6, 7,15, 9, 6, 7,15,15,15,15,15, + 14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15, + 7, 8, 9,15, 9,10,10,15,15,14,14,15,15,15,15,15, + 5, 6, 7,15, 7, 8, 9,15,12, 9,10,15,15,15,15,15, + 7, 7, 9,15, 7, 7, 8,15,12, 8, 9,15,15,15,15,15, + 13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15, + 15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15, +}; + +static const static_codebook _huff_book_line_256x7_class1 = { + 1, 256, + (long *)_huff_lengthlist_line_256x7_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_0sub0[] = { + 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 6, 5, 6, 6, 6, 6, 5, 6, 6, 7, 6, 7, 6, 7, 6, + 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7, + 9, 7, 9, 8, 9, 8,10, 8,10, 8,10, 7,10, 6,10, 8, + 10, 8,11, 7,10, 7,11, 8,11,11,12,12,11,11,12,11, + 13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15, + 15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, +}; + +static const static_codebook _huff_book_line_512x17_0sub0 = { + 1, 128, + (long *)_huff_lengthlist_line_512x17_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_1sub0[] = { + 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, + 6, 5, 6, 6, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, +}; + +static const static_codebook _huff_book_line_512x17_1sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_512x17_1sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_1sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 3, 5, 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5, + 6, 5, 7, 5, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7, + 9, 7,11, 9,11,11,12,11,14,12,14,16,14,16,13,16, + 14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13, + 13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, +}; + +static const static_codebook _huff_book_line_512x17_1sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_512x17_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_2sub1[] = { + 0, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 5, 4, 5, 3, + 5, 3, +}; + +static const static_codebook _huff_book_line_512x17_2sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_512x17_2sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_2sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 6, 4, 6, 5, + 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 7, 8, 7, 9, 7, + 9, 8, +}; + +static const static_codebook _huff_book_line_512x17_2sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_512x17_2sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_2sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 7, 7, + 7, 8, 8,11, 8, 9, 9, 9,10,11,11,11, 9,10,10,11, + 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _huff_book_line_512x17_2sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_512x17_2sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_3sub1[] = { + 0, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 5, 4, 5, + 5, 5, +}; + +static const static_codebook _huff_book_line_512x17_3sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_512x17_3sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_3sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 3, 3, 4, 3, 5, 4, 6, 4, 6, 5, 7, 6, 7, + 6, 8, 6, 8, 7, 9, 8,10, 8,12, 9,13,10,15,10,15, + 11,14, +}; + +static const static_codebook _huff_book_line_512x17_3sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_512x17_3sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_3sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 8, 4, 8, 4, 8, 4, 8, 5, 8, 5, 8, 6, 8, + 4, 8, 4, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _huff_book_line_512x17_3sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_512x17_3sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_class1[] = { + 1, 2, 3, 6, 5, 4, 7, 7, +}; + +static const static_codebook _huff_book_line_512x17_class1 = { + 1, 8, + (long *)_huff_lengthlist_line_512x17_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_class2[] = { + 3, 3, 3,14, 5, 4, 4,11, 8, 6, 6,10,17,12,11,17, + 6, 5, 5,15, 5, 3, 4,11, 8, 5, 5, 8,16, 9,10,14, + 10, 8, 9,17, 8, 6, 6,13,10, 7, 7,10,16,11,13,14, + 17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16, +}; + +static const static_codebook _huff_book_line_512x17_class2 = { + 1, 64, + (long *)_huff_lengthlist_line_512x17_class2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_512x17_class3[] = { + 2, 4, 6,17, 4, 5, 7,17, 8, 7,10,17,17,17,17,17, + 3, 4, 6,15, 3, 3, 6,15, 7, 6, 9,17,17,17,17,17, + 6, 8,10,17, 6, 6, 8,16, 9, 8,10,17,17,15,16,17, + 17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16, +}; + +static const static_codebook _huff_book_line_512x17_class3 = { + 1, 64, + (long *)_huff_lengthlist_line_512x17_class3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x4_class0[] = { + 7, 7, 7,11, 6, 6, 7,11, 7, 6, 6,10,12,10,10,13, + 7, 7, 8,11, 7, 7, 7,11, 7, 6, 7,10,11,10,10,13, + 10,10, 9,12, 9, 9, 9,11, 8, 8, 8,11,13,11,10,14, + 15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17, + 7, 7, 6, 9, 6, 6, 6, 9, 7, 6, 6, 8,11,11,10,12, + 7, 7, 7, 9, 7, 6, 6, 9, 7, 6, 6, 9,13,10,10,11, + 10, 9, 8,10, 9, 8, 8,10, 8, 8, 7, 9,13,12,10,11, + 17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17, + 7, 6, 6, 7, 6, 6, 5, 7, 6, 6, 6, 6,11, 9, 9, 9, + 7, 7, 6, 7, 7, 6, 6, 7, 6, 6, 6, 6,10, 9, 8, 9, + 10, 9, 8, 8, 9, 8, 7, 8, 8, 7, 6, 8,11,10, 9,10, + 17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13, + 11,10, 8,10,11,10, 8, 8,10, 9, 7, 7,10, 9, 9,11, + 11,11, 9,10,11,10, 8, 9,10, 8, 6, 8,10, 9, 9,11, + 14,13,10,12,12,11,10,10, 8, 7, 8,10,10,11,11,12, + 17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17, +}; + +static const static_codebook _huff_book_line_128x4_class0 = { + 1, 256, + (long *)_huff_lengthlist_line_128x4_class0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x4_0sub0[] = { + 2, 2, 2, 2, +}; + +static const static_codebook _huff_book_line_128x4_0sub0 = { + 1, 4, + (long *)_huff_lengthlist_line_128x4_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x4_0sub1[] = { + 0, 0, 0, 0, 3, 2, 3, 2, 3, 3, +}; + +static const static_codebook _huff_book_line_128x4_0sub1 = { + 1, 10, + (long *)_huff_lengthlist_line_128x4_0sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x4_0sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 3, 4, 3, + 4, 4, 5, 4, 5, 4, 6, 5, 6, +}; + +static const static_codebook _huff_book_line_128x4_0sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_128x4_0sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x4_0sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, + 5, 4, 6, 5, 6, 5, 7, 6, 6, 7, 7, 9, 9,11,11,16, + 11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15, +}; + +static const static_codebook _huff_book_line_128x4_0sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_128x4_0sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4_class0[] = { + 6, 7, 7,12, 6, 6, 7,12, 7, 6, 6,10,15,12,11,13, + 7, 7, 8,13, 7, 7, 8,12, 7, 7, 7,11,12,12,11,13, + 10, 9, 9,11, 9, 9, 9,10,10, 8, 8,12,14,12,12,14, + 11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15, + 6, 6, 7,10, 6, 6, 6,11, 7, 6, 6, 9,14,12,11,13, + 7, 7, 7,10, 6, 6, 7, 9, 7, 7, 6,10,13,12,10,12, + 9, 9, 9,11, 9, 9, 8, 9, 9, 8, 8,10,13,12,10,12, + 12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14, + 6, 6, 6, 8, 6, 6, 5, 6, 7, 7, 6, 5,11,10, 9, 8, + 7, 6, 6, 7, 6, 6, 5, 6, 7, 7, 6, 6,11,10, 9, 8, + 8, 8, 8, 9, 8, 8, 7, 8, 8, 8, 6, 7,11,10, 9, 9, + 14,11,10,14,14,11,10,15,13,11, 9,11,15,12,12,11, + 11, 9, 8, 8,10, 9, 8, 9,11,10, 9, 8,12,11,12,11, + 13,10, 8, 9,11,10, 8, 9,10, 9, 8, 9,10, 8,12,12, + 15,11,10,10,13,11,10,10, 8, 8, 7,12,10, 9,11,12, + 15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13, +}; + +static const static_codebook _huff_book_line_256x4_class0 = { + 1, 256, + (long *)_huff_lengthlist_line_256x4_class0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4_0sub0[] = { + 2, 2, 2, 2, +}; + +static const static_codebook _huff_book_line_256x4_0sub0 = { + 1, 4, + (long *)_huff_lengthlist_line_256x4_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4_0sub1[] = { + 0, 0, 0, 0, 2, 2, 3, 3, 3, 3, +}; + +static const static_codebook _huff_book_line_256x4_0sub1 = { + 1, 10, + (long *)_huff_lengthlist_line_256x4_0sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4_0sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 3, 4, 3, + 5, 3, 5, 4, 5, 4, 6, 4, 6, +}; + +static const static_codebook _huff_book_line_256x4_0sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_256x4_0sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4_0sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, + 6, 4, 7, 4, 7, 5, 7, 6, 7, 6, 7, 8,10,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, +}; + +static const static_codebook _huff_book_line_256x4_0sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_256x4_0sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_class0[] = { + 10, 7, 8,13, 9, 6, 7,11,10, 8, 8,12,17,17,17,17, + 7, 5, 5, 9, 6, 4, 4, 8, 8, 5, 5, 8,16,14,13,16, + 7, 5, 5, 7, 6, 3, 3, 5, 8, 5, 4, 7,14,12,12,15, + 10, 7, 8, 9, 7, 5, 5, 6, 9, 6, 5, 5,15,12, 9,10, +}; + +static const static_codebook _huff_book_line_128x7_class0 = { + 1, 64, + (long *)_huff_lengthlist_line_128x7_class0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_class1[] = { + 8,13,17,17, 8,11,17,17,11,13,17,17,17,17,17,17, + 6,10,16,17, 6,10,15,17, 8,10,16,17,17,17,17,17, + 9,13,15,17, 8,11,17,17,10,12,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 6,11,15,17, 7,10,15,17, 8,10,17,17,17,15,17,17, + 4, 8,13,17, 4, 7,13,17, 6, 8,15,17,16,15,17,17, + 6,11,15,17, 6, 9,13,17, 8,10,17,17,15,17,17,17, + 16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17, + 5,10,14,17, 5, 9,14,17, 7, 9,15,17,15,15,17,17, + 3, 7,12,17, 3, 6,11,17, 5, 7,13,17,12,12,17,17, + 5, 9,14,17, 3, 7,11,17, 5, 8,13,17,13,11,16,17, + 12,17,17,17, 9,14,15,17,10,11,14,17,16,14,17,17, + 8,12,17,17, 8,12,17,17,10,12,17,17,17,17,17,17, + 5,10,17,17, 5, 9,15,17, 7, 9,17,17,13,13,17,17, + 7,11,17,17, 6,10,15,17, 7, 9,15,17,12,11,17,17, + 12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17, +}; + +static const static_codebook _huff_book_line_128x7_class1 = { + 1, 256, + (long *)_huff_lengthlist_line_128x7_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_0sub1[] = { + 0, 3, 3, 3, 3, 3, 3, 3, 3, +}; + +static const static_codebook _huff_book_line_128x7_0sub1 = { + 1, 9, + (long *)_huff_lengthlist_line_128x7_0sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_0sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4, + 5, 4, 5, 4, 5, 4, 6, 4, 6, +}; + +static const static_codebook _huff_book_line_128x7_0sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_128x7_0sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_0sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 5, 3, 5, 4, + 5, 4, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 7, 8, 9,11,13,13,13,13,13,13,13,13,13,13,13,13, +}; + +static const static_codebook _huff_book_line_128x7_0sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_128x7_0sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_1sub1[] = { + 0, 3, 3, 2, 3, 3, 4, 3, 4, +}; + +static const static_codebook _huff_book_line_128x7_1sub1 = { + 1, 9, + (long *)_huff_lengthlist_line_128x7_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_1sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 6, 3, 6, 3, + 6, 3, 7, 3, 8, 4, 9, 4, 9, +}; + +static const static_codebook _huff_book_line_128x7_1sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_128x7_1sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x7_1sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 2, 7, 3, 8, 4, + 9, 5, 9, 8,10,11,11,12,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13, +}; + +static const static_codebook _huff_book_line_128x7_1sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_128x7_1sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_class1[] = { + 1, 6, 3, 7, 2, 4, 5, 7, +}; + +static const static_codebook _huff_book_line_128x11_class1 = { + 1, 8, + (long *)_huff_lengthlist_line_128x11_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_class2[] = { + 1, 6,12,16, 4,12,15,16, 9,15,16,16,16,16,16,16, + 2, 5,11,16, 5,11,13,16, 9,13,16,16,16,16,16,16, + 4, 8,12,16, 5, 9,12,16, 9,13,15,16,16,16,16,16, + 15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15, +}; + +static const static_codebook _huff_book_line_128x11_class2 = { + 1, 64, + (long *)_huff_lengthlist_line_128x11_class2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_class3[] = { + 7, 6, 9,17, 7, 6, 8,17,12, 9,11,16,16,16,16,16, + 5, 4, 7,16, 5, 3, 6,14, 9, 6, 8,15,16,16,16,16, + 5, 4, 6,13, 3, 2, 4,11, 7, 4, 6,13,16,11,10,14, + 12,12,12,16, 9, 7,10,15,12, 9,11,16,16,15,15,16, +}; + +static const static_codebook _huff_book_line_128x11_class3 = { + 1, 64, + (long *)_huff_lengthlist_line_128x11_class3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_0sub0[] = { + 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 6, 6, 7, 6, + 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, 8, 7, + 8, 7, 8, 7, 8, 7, 9, 7, 9, 8, 9, 8, 9, 8,10, 8, + 10, 9,10, 9,10, 9,11, 9,11, 9,10,10,11,10,11,10, + 11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16, + 17,15,16,15,16,16,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, +}; + +static const static_codebook _huff_book_line_128x11_0sub0 = { + 1, 128, + (long *)_huff_lengthlist_line_128x11_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_1sub0[] = { + 2, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 5, 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, +}; + +static const static_codebook _huff_book_line_128x11_1sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_128x11_1sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_1sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 3, 5, 3, 6, 4, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, + 8, 4, 9, 5, 9, 5, 9, 5, 9, 6,10, 6,10, 6,11, 7, + 10, 7,10, 8,11, 9,11, 9,11,10,11,11,12,11,11,12, + 15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14, + 11,14,12,14,11,14,11,14,13,13,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, +}; + +static const static_codebook _huff_book_line_128x11_1sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_128x11_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_2sub1[] = { + 0, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, + 5, 5, +}; + +static const static_codebook _huff_book_line_128x11_2sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_128x11_2sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_2sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 3, 4, 4, 4, 4, 5, 4, 5, 4, 6, 5, 7, + 5, 7, 6, 8, 6, 8, 6, 9, 7, 9, 7,10, 7, 9, 8,11, + 8,11, +}; + +static const static_codebook _huff_book_line_128x11_2sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_128x11_2sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_2sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 8, 3, 8, 4, 8, 4, 8, 6, 8, 5, 8, 4, 8, + 4, 8, 6, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _huff_book_line_128x11_2sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_128x11_2sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_3sub1[] = { + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, + 5, 4, +}; + +static const static_codebook _huff_book_line_128x11_3sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_128x11_3sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_3sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 3, 5, 4, 6, 4, 6, 4, 7, 4, 7, 4, 8, 4, + 8, 4, 9, 4, 9, 4,10, 4,10, 5,10, 5,11, 5,12, 6, + 12, 6, +}; + +static const static_codebook _huff_book_line_128x11_3sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_128x11_3sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x11_3sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 1, 6, 3, 7, 3, 8, 4, 8, 5, 8, 8, 8, 9, + 7, 8, 8, 7, 7, 7, 8, 9,10, 9, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, +}; + +static const static_codebook _huff_book_line_128x11_3sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_128x11_3sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_class1[] = { + 1, 3, 4, 7, 2, 5, 6, 7, +}; + +static const static_codebook _huff_book_line_128x17_class1 = { + 1, 8, + (long *)_huff_lengthlist_line_128x17_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_class2[] = { + 1, 4,10,19, 3, 8,13,19, 7,12,19,19,19,19,19,19, + 2, 6,11,19, 8,13,19,19, 9,11,19,19,19,19,19,19, + 6, 7,13,19, 9,13,19,19,10,13,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, +}; + +static const static_codebook _huff_book_line_128x17_class2 = { + 1, 64, + (long *)_huff_lengthlist_line_128x17_class2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_class3[] = { + 3, 6,10,17, 4, 8,11,20, 8,10,11,20,20,20,20,20, + 2, 4, 8,18, 4, 6, 8,17, 7, 8,10,20,20,17,20,20, + 3, 5, 8,17, 3, 4, 6,17, 8, 8,10,17,17,12,16,20, + 13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19, +}; + +static const static_codebook _huff_book_line_128x17_class3 = { + 1, 64, + (long *)_huff_lengthlist_line_128x17_class3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_0sub0[] = { + 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, + 8, 5, 8, 5, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6, + 9, 6, 9, 7, 9, 7, 9, 7, 9, 7,10, 7,10, 8,10, 8, + 10, 8,10, 8,10, 8,11, 8,11, 8,11, 8,11, 8,11, 9, + 12, 9,12, 9,12, 9,12, 9,12,10,12,10,13,11,13,11, + 14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +}; + +static const static_codebook _huff_book_line_128x17_0sub0 = { + 1, 128, + (long *)_huff_lengthlist_line_128x17_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_1sub0[] = { + 2, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, + 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, +}; + +static const static_codebook _huff_book_line_128x17_1sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_128x17_1sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_1sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 3, 5, 3, 5, 3, 6, 3, 6, 4, 6, 4, 7, 4, 7, 5, + 8, 5, 8, 6, 9, 7, 9, 7, 9, 8,10, 9,10, 9,11,10, + 11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15, + 12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17, + 14,17,15,17,15,15,16,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16, +}; + +static const static_codebook _huff_book_line_128x17_1sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_128x17_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_2sub1[] = { + 0, 4, 5, 4, 6, 4, 8, 3, 9, 3, 9, 2, 9, 3, 8, 4, + 9, 4, +}; + +static const static_codebook _huff_book_line_128x17_2sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_128x17_2sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_2sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 1, 5, 3, 5, 3, 5, 4, 7, 5,10, 7,10, 7, + 12,10,14,10,14, 9,14,11,14,14,14,13,13,13,13,13, + 13,13, +}; + +static const static_codebook _huff_book_line_128x17_2sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_128x17_2sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_2sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; + +static const static_codebook _huff_book_line_128x17_2sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_128x17_2sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_3sub1[] = { + 0, 4, 4, 4, 4, 4, 4, 4, 5, 3, 5, 3, 5, 4, 6, 4, + 6, 4, +}; + +static const static_codebook _huff_book_line_128x17_3sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_128x17_3sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_3sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 3, 6, 3, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, + 8, 4, 8, 4, 8, 4, 9, 4, 9, 5,10, 5,10, 7,10, 8, + 10, 8, +}; + +static const static_codebook _huff_book_line_128x17_3sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_128x17_3sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_128x17_3sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 4, 7, 5, 8, 5,11, + 6,10, 6,12, 7,12, 7,12, 8,12, 8,12,10,12,12,12, + 12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _huff_book_line_128x17_3sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_128x17_3sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_class1[] = { + 2,10, 8,14, 7,12,11,14, 1, 5, 3, 7, 4, 9, 7,13, +}; + +static const static_codebook _huff_book_line_1024x27_class1 = { + 1, 16, + (long *)_huff_lengthlist_line_1024x27_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_class2[] = { + 1, 4, 2, 6, 3, 7, 5, 7, +}; + +static const static_codebook _huff_book_line_1024x27_class2 = { + 1, 8, + (long *)_huff_lengthlist_line_1024x27_class2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_class3[] = { + 1, 5, 7,21, 5, 8, 9,21,10, 9,12,20,20,16,20,20, + 4, 8, 9,20, 6, 8, 9,20,11,11,13,20,20,15,17,20, + 9,11,14,20, 8,10,15,20,11,13,15,20,20,20,20,20, + 20,20,20,20,13,20,20,20,18,18,20,20,20,20,20,20, + 3, 6, 8,20, 6, 7, 9,20,10, 9,12,20,20,20,20,20, + 5, 7, 9,20, 6, 6, 9,20,10, 9,12,20,20,20,20,20, + 8,10,13,20, 8, 9,12,20,11,10,12,20,20,20,20,20, + 18,20,20,20,15,17,18,20,18,17,18,20,20,20,20,20, + 7,10,12,20, 8, 9,11,20,14,13,14,20,20,20,20,20, + 6, 9,12,20, 7, 8,11,20,12,11,13,20,20,20,20,20, + 9,11,15,20, 8,10,14,20,12,11,14,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 11,16,18,20,15,15,17,20,20,17,20,20,20,20,20,20, + 9,14,16,20,12,12,15,20,17,15,18,20,20,20,20,20, + 16,19,18,20,15,16,20,20,17,17,20,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +}; + +static const static_codebook _huff_book_line_1024x27_class3 = { + 1, 256, + (long *)_huff_lengthlist_line_1024x27_class3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_class4[] = { + 2, 3, 7,13, 4, 4, 7,15, 8, 6, 9,17,21,16,15,21, + 2, 5, 7,11, 5, 5, 7,14, 9, 7,10,16,17,15,16,21, + 4, 7,10,17, 7, 7, 9,15,11, 9,11,16,21,18,15,21, + 18,21,21,21,15,17,17,19,21,19,18,20,21,21,21,20, +}; + +static const static_codebook _huff_book_line_1024x27_class4 = { + 1, 64, + (long *)_huff_lengthlist_line_1024x27_class4, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_0sub0[] = { + 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 7, 5, + 8, 6, 8, 6, 8, 6, 9, 6, 9, 6,10, 6,10, 6,11, 6, + 11, 7,11, 7,12, 7,12, 7,12, 7,12, 7,12, 7,12, 7, + 12, 7,12, 8,13, 8,12, 8,12, 8,13, 8,13, 9,13, 9, + 13, 9,13, 9,12,10,12,10,13,10,14,11,14,12,14,13, + 14,13,14,14,15,16,15,15,15,14,15,17,21,22,22,21, + 22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,21, +}; + +static const static_codebook _huff_book_line_1024x27_0sub0 = { + 1, 128, + (long *)_huff_lengthlist_line_1024x27_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_1sub0[] = { + 2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 6, 5, + 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, +}; + +static const static_codebook _huff_book_line_1024x27_1sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_1024x27_1sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_1sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 5, 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, + 9, 4, 9, 4, 9, 4, 8, 4, 8, 4, 9, 5, 9, 5, 9, 5, + 9, 5, 9, 6,10, 6,10, 7,10, 8,11, 9,11,11,12,13, + 12,14,13,15,13,15,14,16,14,17,15,17,15,15,16,16, + 15,16,16,16,15,18,16,15,17,17,19,19,19,19,19,19, + 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, +}; + +static const static_codebook _huff_book_line_1024x27_1sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_1024x27_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_2sub0[] = { + 1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 9, 8,10, 9,10, 9, +}; + +static const static_codebook _huff_book_line_1024x27_2sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_1024x27_2sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_2sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 5, 5, 6, 5, 6, 5, + 7, 5, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 9, 8, 9, 9, + 9, 9,10,10,10,11, 9,12, 9,12, 9,15,10,14, 9,13, + 10,13,10,12,10,12,10,13,10,12,11,13,11,14,12,13, + 13,14,14,13,14,15,14,16,13,13,14,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15, +}; + +static const static_codebook _huff_book_line_1024x27_2sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_1024x27_2sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_3sub1[] = { + 0, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 4, 5, + 5, 5, +}; + +static const static_codebook _huff_book_line_1024x27_3sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_1024x27_3sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_3sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 4, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, + 5, 7, 5, 8, 6, 8, 6, 9, 7,10, 7,10, 8,10, 8,11, + 9,11, +}; + +static const static_codebook _huff_book_line_1024x27_3sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_1024x27_3sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_3sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 7, 3, 8, 3,10, 3, 8, 3, 9, 3, 8, 4, 9, + 4, 9, 5, 9, 6,10, 6, 9, 7,11, 7,12, 9,13,10,13, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, +}; + +static const static_codebook _huff_book_line_1024x27_3sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_1024x27_3sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_4sub1[] = { + 0, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, + 5, 4, +}; + +static const static_codebook _huff_book_line_1024x27_4sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_1024x27_4sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_4sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 2, 4, 2, 5, 3, 5, 4, 6, 6, 6, 7, 7, 8, + 7, 8, 7, 8, 7, 9, 8, 9, 8, 9, 8,10, 8,11, 9,12, + 9,12, +}; + +static const static_codebook _huff_book_line_1024x27_4sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_1024x27_4sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_1024x27_4sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 5, 2, 6, 3, 6, 4, 7, 4, 7, 5, 9, 5,11, + 6,11, 6,11, 7,11, 6,11, 6,11, 9,11, 8,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, +}; + +static const static_codebook _huff_book_line_1024x27_4sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_1024x27_4sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_class1[] = { + 2, 6, 8, 9, 7,11,13,13, 1, 3, 5, 5, 6, 6,12,10, +}; + +static const static_codebook _huff_book_line_2048x27_class1 = { + 1, 16, + (long *)_huff_lengthlist_line_2048x27_class1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_class2[] = { + 1, 2, 3, 6, 4, 7, 5, 7, +}; + +static const static_codebook _huff_book_line_2048x27_class2 = { + 1, 8, + (long *)_huff_lengthlist_line_2048x27_class2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_class3[] = { + 3, 3, 6,16, 5, 5, 7,16, 9, 8,11,16,16,16,16,16, + 5, 5, 8,16, 5, 5, 7,16, 8, 7, 9,16,16,16,16,16, + 9, 9,12,16, 6, 8,11,16, 9,10,11,16,16,16,16,16, + 16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16, + 5, 4, 7,16, 6, 5, 8,16, 9, 8,10,16,16,16,16,16, + 5, 5, 7,15, 5, 4, 6,15, 7, 6, 8,16,16,16,16,16, + 9, 9,11,15, 7, 7, 9,16, 8, 8, 9,16,16,16,16,16, + 16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16, + 8, 8,11,16, 8, 9,10,16,11,10,14,16,16,16,16,16, + 6, 8,10,16, 6, 7,10,16, 8, 8,11,16,14,16,16,16, + 10,11,14,16, 9, 9,11,16,10,10,11,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, + 12,16,15,16,12,14,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +}; + +static const static_codebook _huff_book_line_2048x27_class3 = { + 1, 256, + (long *)_huff_lengthlist_line_2048x27_class3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_class4[] = { + 2, 4, 7,13, 4, 5, 7,15, 8, 7,10,16,16,14,16,16, + 2, 4, 7,16, 3, 4, 7,14, 8, 8,10,16,16,16,15,16, + 6, 8,11,16, 7, 7, 9,16,11, 9,13,16,16,16,15,16, + 16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16, +}; + +static const static_codebook _huff_book_line_2048x27_class4 = { + 1, 64, + (long *)_huff_lengthlist_line_2048x27_class4, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_0sub0[] = { + 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, + 6, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, 8, 5, 9, 5, + 9, 6,10, 6,10, 6,11, 6,11, 6,11, 6,11, 6,11, 6, + 11, 6,11, 6,12, 7,11, 7,11, 7,11, 7,11, 7,10, 7, + 11, 7,11, 7,12, 7,11, 8,11, 8,11, 8,11, 8,13, 8, + 12, 9,11, 9,11, 9,11,10,12,10,12, 9,12,10,12,11, + 14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16, +}; + +static const static_codebook _huff_book_line_2048x27_0sub0 = { + 1, 128, + (long *)_huff_lengthlist_line_2048x27_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_1sub0[] = { + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 6, +}; + +static const static_codebook _huff_book_line_2048x27_1sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_2048x27_1sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_1sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 5, 7, 5, 7, 4, 7, 4, 8, 4, 8, 4, 8, 4, 8, 3, + 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 5, 9, 5, 9, 6, + 9, 7, 9, 8, 9, 9, 9,10, 9,11, 9,14, 9,15,10,15, + 10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14, + 13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14, +}; + +static const static_codebook _huff_book_line_2048x27_1sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_2048x27_1sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_2sub0[] = { + 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, + 6, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, +}; + +static const static_codebook _huff_book_line_2048x27_2sub0 = { + 1, 32, + (long *)_huff_lengthlist_line_2048x27_2sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_2sub1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 6, 6, 6, 7, + 6, 8, 6, 8, 6, 9, 7,10, 7,10, 7,10, 7,12, 7,12, + 7,12, 9,12,11,12,10,12,10,12,11,12,12,12,10,12, + 10,12,10,12, 9,12,11,12,12,12,12,12,11,12,11,12, + 12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, +}; + +static const static_codebook _huff_book_line_2048x27_2sub1 = { + 1, 128, + (long *)_huff_lengthlist_line_2048x27_2sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_3sub1[] = { + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, +}; + +static const static_codebook _huff_book_line_2048x27_3sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_2048x27_3sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_3sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, + 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, 9, 9,11, 9,12, + 10,12, +}; + +static const static_codebook _huff_book_line_2048x27_3sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_2048x27_3sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_3sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 6, 3, 7, 3, 7, 5, 7, 7, 7, 7, 7, 6, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, +}; + +static const static_codebook _huff_book_line_2048x27_3sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_2048x27_3sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_4sub1[] = { + 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, + 4, 5, +}; + +static const static_codebook _huff_book_line_2048x27_4sub1 = { + 1, 18, + (long *)_huff_lengthlist_line_2048x27_4sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_4sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 5, 6, 5, 6, 5, 7, + 6, 6, 6, 7, 7, 7, 8, 9, 9, 9,12,10,11,10,10,12, + 10,10, +}; + +static const static_codebook _huff_book_line_2048x27_4sub2 = { + 1, 50, + (long *)_huff_lengthlist_line_2048x27_4sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_2048x27_4sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 6, 5, 7, 5, 7, 7, 7, 7, 7, 5, 7, 5, 7, + 5, 7, 5, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, +}; + +static const static_codebook _huff_book_line_2048x27_4sub3 = { + 1, 128, + (long *)_huff_lengthlist_line_2048x27_4sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4low_class0[] = { + 4, 5, 6,11, 5, 5, 6,10, 7, 7, 6, 6,14,13, 9, 9, + 6, 6, 6,10, 6, 6, 6, 9, 8, 7, 7, 9,14,12, 8,11, + 8, 7, 7,11, 8, 8, 7,11, 9, 9, 7, 9,13,11, 9,13, + 19,19,18,19,15,16,16,19,11,11,10,13,10,10, 9,15, + 5, 5, 6,13, 6, 6, 6,11, 8, 7, 6, 7,14,11,10,11, + 6, 6, 6,12, 7, 6, 6,11, 8, 7, 7,11,13,11, 9,11, + 9, 7, 6,12, 8, 7, 6,12, 9, 8, 8,11,13,10, 7,13, + 19,19,17,19,17,14,14,19,12,10, 8,12,13,10, 9,16, + 7, 8, 7,12, 7, 7, 7,11, 8, 7, 7, 8,12,12,11,11, + 8, 8, 7,12, 8, 7, 6,11, 8, 7, 7,10,10,11,10,11, + 9, 8, 8,13, 9, 8, 7,12,10, 9, 7,11, 9, 8, 7,11, + 18,18,15,18,18,16,17,18,15,11,10,18,11, 9, 9,18, + 16,16,13,16,12,11,10,16,12,11, 9, 6,15,12,11,13, + 16,16,14,14,13,11,12,16,12, 9, 9,13,13,10,10,12, + 17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12, + 18,18,18,18,18,18,18,18,18,12,13,18,16,11, 9,18, +}; + +static const static_codebook _huff_book_line_256x4low_class0 = { + 1, 256, + (long *)_huff_lengthlist_line_256x4low_class0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4low_0sub0[] = { + 1, 3, 2, 3, +}; + +static const static_codebook _huff_book_line_256x4low_0sub0 = { + 1, 4, + (long *)_huff_lengthlist_line_256x4low_0sub0, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4low_0sub1[] = { + 0, 0, 0, 0, 2, 3, 2, 3, 3, 3, +}; + +static const static_codebook _huff_book_line_256x4low_0sub1 = { + 1, 10, + (long *)_huff_lengthlist_line_256x4low_0sub1, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4low_0sub2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4, + 4, 4, 4, 4, 5, 5, 5, 6, 6, +}; + +static const static_codebook _huff_book_line_256x4low_0sub2 = { + 1, 25, + (long *)_huff_lengthlist_line_256x4low_0sub2, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist_line_256x4low_0sub3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 4, 3, 5, 4, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 6, 9, + 7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15, +}; + +static const static_codebook _huff_book_line_256x4low_0sub3 = { + 1, 64, + (long *)_huff_lengthlist_line_256x4low_0sub3, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + diff --git a/libvorbis-1.0.1/lib/books/uncoupled/Makefile.am b/Dependencies/libvorbis/lib/books/uncoupled/Makefile.am similarity index 77% rename from libvorbis-1.0.1/lib/books/uncoupled/Makefile.am rename to Dependencies/libvorbis/lib/books/uncoupled/Makefile.am index 3be342e..93ff417 100644 --- a/libvorbis-1.0.1/lib/books/uncoupled/Makefile.am +++ b/Dependencies/libvorbis/lib/books/uncoupled/Makefile.am @@ -1,5 +1,3 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign - EXTRA_DIST = res_books_uncoupled.h diff --git a/Dependencies/libvorbis/lib/books/uncoupled/Makefile.in b/Dependencies/libvorbis/lib/books/uncoupled/Makefile.in new file mode 100644 index 0000000..34362f1 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/uncoupled/Makefile.in @@ -0,0 +1,356 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = lib/books/uncoupled +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = res_books_uncoupled.h +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/books/uncoupled/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/books/uncoupled/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h b/Dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h new file mode 100644 index 0000000..d247363 --- /dev/null +++ b/Dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h @@ -0,0 +1,7758 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: static codebooks autogenerated by huff/huffbuld + last modified: $Id: res_books_uncoupled.h 17022 2010-03-25 03:45:42Z xiphmont $ + + ********************************************************************/ + +#include "codebook.h" + +static const long _vq_quantlist__16u0__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u0__p1_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 8, 5, 8, 8, 8,10,10, 8, + 10,11, 5, 8, 8, 8,10,10, 8,10,10, 4, 9, 9, 9,12, + 11, 8,11,11, 8,12,11,10,12,14,10,13,13, 7,11,11, + 10,14,12,11,14,14, 4, 9, 9, 8,11,11, 9,11,12, 7, + 11,11,10,13,14,10,12,14, 8,11,12,10,14,14,10,13, + 12, +}; + +static const static_codebook _16u0__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__16u0__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16u0__p1_0, + 0 +}; + +static const long _vq_quantlist__16u0__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u0__p2_0[] = { + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 9, 7, + 8, 9, 5, 7, 7, 7, 9, 8, 7, 9, 7, 4, 7, 7, 7, 9, + 9, 7, 8, 8, 6, 9, 8, 7, 8,11, 9,11,10, 6, 8, 9, + 8,11, 8, 9,10,11, 4, 7, 7, 7, 8, 8, 7, 9, 9, 6, + 9, 8, 9,11,10, 8, 8,11, 6, 8, 9, 9,10,11, 8,11, + 8, +}; + +static const static_codebook _16u0__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__16u0__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16u0__p2_0, + 0 +}; + +static const long _vq_quantlist__16u0__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u0__p3_0[] = { + 1, 5, 5, 7, 7, 6, 7, 7, 8, 8, 6, 7, 8, 8, 8, 8, + 9, 9,11,11, 8, 9, 9,11,11, 6, 9, 8,10,10, 8,10, + 10,11,11, 8,10,10,11,11,10,11,10,13,12, 9,11,10, + 13,13, 6, 8, 9,10,10, 8,10,10,11,11, 8,10,10,11, + 11, 9,10,11,13,12,10,10,11,12,12, 8,11,11,14,13, + 10,12,11,15,13, 9,12,11,15,14,12,14,13,16,14,12, + 13,13,17,14, 8,11,11,13,14, 9,11,12,14,15,10,11, + 12,13,15,11,13,13,14,16,12,13,14,14,16, 5, 9, 9, + 11,11, 9,11,11,12,12, 8,11,11,12,12,11,12,12,15, + 14,10,12,12,15,15, 8,11,11,13,12,10,12,12,13,13, + 10,12,12,14,13,12,12,13,14,15,11,13,13,17,16, 7, + 11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13, + 12,15,14,11,13,13,15,14, 9,12,12,16,15,11,13,13, + 17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19, + 17, 9,12,12,14,16,11,13,13,15,16,10,13,13,17,16, + 13,14,13,17,15,12,15,15,16,17, 5, 9, 9,11,11, 8, + 11,11,13,12, 9,11,11,12,12,10,12,12,14,15,11,12, + 12,14,14, 7,11,10,13,12,10,12,12,14,13,10,11,12, + 13,13,11,13,13,15,16,12,12,13,15,15, 7,11,11,13, + 13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15, + 12,13,13,15,14, 9,12,12,15,15,10,13,13,17,16,11, + 12,13,15,15,12,15,14,18,18,13,14,14,16,17, 9,12, + 12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15, + 17,17,13,15,14,16,15, 7,11,11,15,16,10,13,12,16, + 17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18, + 8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15, + 17,16,17,19,14,15,15,17,16, 8,12,12,16,15,11,14, + 13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16, + 18,18,11,15,14,18,17,13,14,15,18, 0,12,15,15, 0, + 17,17,16,17,17,18,14,16,18,18, 0,11,14,14,17, 0, + 12,15,14,17,19,12,15,14,18, 0,15,18,16, 0,17,14, + 18,16,18, 0, 7,11,11,16,15,10,12,12,18,16,10,13, + 13,16,15,13,15,14,17,17,14,16,16,19,18, 8,12,12, + 16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19, + 18,15,16,16, 0,19, 8,12,12,16,17,11,13,13,17,17, + 11,14,13,17,17,13,15,15,17,19,15,17,17,19, 0,11, + 14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16, + 17, 0,18,16,16,19,17, 0,11,14,14,18,19,12,15,14, + 17,17,13,16,14,17,16,14,17,16,18,18,15,18,15, 0, + 18, +}; + +static const static_codebook _16u0__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__16u0__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u0__p3_0, + 0 +}; + +static const long _vq_quantlist__16u0__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u0__p4_0[] = { + 3, 5, 5, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 9, + 10, 9,11,11, 9, 9, 9,11,11, 6, 7, 7,10,10, 7, 7, + 8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, + 11,12, 6, 7, 7,10,10, 7, 8, 7,10,10, 7, 8, 7,10, + 10,10,11,10,12,11,10,10,10,13,10, 9,10,10,12,12, + 10,11,10,14,12, 9,11,11,13,13,11,12,13,13,13,11, + 12,12,15,13, 9,10,10,12,13, 9,11,10,12,13,10,10, + 11,12,13,11,12,12,12,13,11,12,12,13,13, 5, 7, 7, + 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,12, + 13,10,10,11,12,12, 6, 8, 8,11,10, 7, 8, 9,10,12, + 8, 9, 9,11,11,11,10,11,11,12,10,11,11,13,12, 7, + 8, 8,10,11, 8, 9, 8,11,10, 8, 9, 9,11,11,10,12, + 10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11, + 13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14, + 14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14, + 12,12,12,14,12,12,13,12,17,15, 5, 7, 7,10,10, 7, + 8, 8,10,10, 7, 8, 8,11,10,10,10,11,12,12,10,11, + 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,11,11,11,12,12,10,10,11,12,13, 6, 8, 8,10, + 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,12,12,13,13, + 11,11,10,13,11, 9,11,10,14,13,11,11,11,15,13,10, + 10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11, + 11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13, + 14, 0,12,13,11,13,11, 8,10,10,13,13,10,11,11,14, + 13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14, + 9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13, + 12,14,15,16,13,13,13,14,13, 9,11,11,12,12,10,12, + 11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14, + 17,15,11,12,12,14,14,10,11,12,13,15,12,13,13, 0, + 15,13,11,14,12,16,14,16,14, 0,15,11,12,12,14,16, + 11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15, + 14,14,16,16, 8,10,10,13,13,10,11,10,13,14,10,11, + 11,13,13,13,13,12,14,14,14,13,13,16,17, 9,10,10, + 12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15, + 15,13,13,13,14,14, 9,10,10,13,13,10,11,12,12,14, + 10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11, + 12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14, + 14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14, + 14,17,11,12,11,14,14,13,16,14,16, 0,14,15,11,15, + 11, +}; + +static const static_codebook _16u0__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__16u0__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u0__p4_0, + 0 +}; + +static const long _vq_quantlist__16u0__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16u0__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, + 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, + 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 7, 8, 8, + 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12, + 12, +}; + +static const static_codebook _16u0__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__16u0__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16u0__p5_0, + 0 +}; + +static const long _vq_quantlist__16u0__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16u0__p6_0[] = { + 1, 4, 4, 7, 7,10,10,12,12,13,13,18,17, 3, 6, 6, + 9, 9,11,11,13,13,14,14,18,17, 3, 6, 6, 9, 9,11, + 11,13,13,14,14,17,18, 7, 9, 9,11,11,13,13,14,14, + 15,15, 0, 0, 7, 9, 9,11,11,13,13,14,14,15,16,19, + 18,10,11,11,13,13,14,14,16,15,17,18, 0, 0,10,11, + 11,13,13,14,14,15,15,16,18, 0, 0,11,13,13,14,14, + 15,15,17,17, 0,19, 0, 0,11,13,13,14,14,14,15,16, + 18, 0,19, 0, 0,13,14,14,15,15,18,17,18,18, 0,19, + 0, 0,13,14,14,15,16,16,16,18,18,19, 0, 0, 0,16, + 17,17, 0,17,19,19, 0,19, 0, 0, 0, 0,16,19,16,17, + 18, 0,19, 0, 0, 0, 0, 0, 0, +}; + +static const static_codebook _16u0__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__16u0__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__16u0__p6_0, + 0 +}; + +static const long _vq_quantlist__16u0__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u0__p6_1[] = { + 1, 4, 5, 6, 6, 4, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, + 6, 6, 7, 7, 6, 6, 6, 7, 7, +}; + +static const static_codebook _16u0__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__16u0__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u0__p6_1, + 0 +}; + +static const long _vq_quantlist__16u0__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u0__p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _16u0__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__16u0__p7_0, + 1, -518803456, 1628680192, 2, 0, + (long *)_vq_quantlist__16u0__p7_0, + 0 +}; + +static const long _vq_quantlist__16u0__p7_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16u0__p7_1[] = { + 1, 5, 5, 6, 5, 9,10,11,11,10,10,10,10,10,10, 5, + 8, 8, 8,10,10,10,10,10,10,10,10,10,10,10, 5, 8, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10, 5,10, 8, + 10,10,10,10,10,10,10,10,10,10,10,10, 4, 8, 9,10, + 10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _16u0__p7_1 = { + 2, 225, + (long *)_vq_lengthlist__16u0__p7_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__16u0__p7_1, + 0 +}; + +static const long _vq_quantlist__16u0__p7_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__16u0__p7_2[] = { + 1, 6, 6, 7, 8, 7, 7,10, 9,10, 9,11,10, 9,11,10, + 9, 9, 9, 9,10, 6, 8, 7, 9, 9, 8, 8,10,10, 9,11, + 11,12,12,10, 9,11, 9,12,10, 9, 6, 9, 8, 9,12, 8, + 8,11, 9,11,11,12,11,12,12,10,11,11,10,10,11, 7, + 10, 9, 9, 9, 9, 9,10, 9,10, 9,10,10,12,10,10,10, + 11,12,10,10, 7, 9, 9, 9,10, 9, 9,10,10, 9, 9, 9, + 11,11,10,10,10,10, 9, 9,12, 7, 9,10, 9,11, 9,10, + 9,10,11,11,11,10,11,12, 9,12,11,10,10,10, 7, 9, + 9, 9, 9,10,12,10, 9,11,12,10,11,12,12,11, 9,10, + 11,10,11, 7, 9,10,10,11,10, 9,10,11,11,11,10,12, + 12,12,11,11,10,11,11,12, 8, 9,10,12,11,10,10,12, + 12,12,12,12,10,11,11, 9,11,10,12,11,11, 8, 9,10, + 10,11,12,11,11,10,10,10,12,12,12, 9,10,12,12,12, + 12,12, 8,10,11,10,10,12, 9,11,12,12,11,12,12,12, + 12,10,12,10,10,10,10, 8,12,11,11,11,10,10,11,12, + 12,12,12,11,12,12,12,11,11,11,12,10, 9,10,10,12, + 10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12, + 11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12, + 12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12, + 12,12,12,11,12,11,10,11,11,12,11,11, 9,10,10,10, + 12,10,10,11, 9,11,12,11,12,11,12,12,10,11,10,12, + 9, 9, 9,12,11,10,11,10,12,10,12,10,12,12,12,11, + 11,11,11,11,10, 9,10,10,11,10,11,11,12,11,10,11, + 12,12,12,11,11, 9,12,10,12, 9,10,12,10,10,11,10, + 11,11,12,11,10,11,10,11,11,11,11,12,11,11,10, 9, + 10,10,10, 9,11,11,10, 9,12,10,11,12,11,12,12,11, + 12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11, + 10,10,12,11,10,11,11,11,10, +}; + +static const static_codebook _16u0__p7_2 = { + 2, 441, + (long *)_vq_lengthlist__16u0__p7_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__16u0__p7_2, + 0 +}; + +static const long _huff_lengthlist__16u0__single[] = { + 3, 5, 8, 7,14, 8, 9,19, 5, 2, 5, 5, 9, 6, 9,19, + 8, 4, 5, 7, 8, 9,13,19, 7, 4, 6, 5, 9, 6, 9,19, + 12, 8, 7, 9,10,11,13,19, 8, 5, 8, 6, 9, 6, 7,19, + 8, 8,10, 7, 7, 4, 5,19,12,17,19,15,18,13,11,18, +}; + +static const static_codebook _huff_book__16u0__single = { + 2, 64, + (long *)_huff_lengthlist__16u0__single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__16u1__long[] = { + 3, 6,10, 8,12, 8,14, 8,14,19, 5, 3, 5, 5, 7, 6, + 11, 7,16,19, 7, 5, 6, 7, 7, 9,11,12,19,19, 6, 4, + 7, 5, 7, 6,10, 7,18,18, 8, 6, 7, 7, 7, 7, 8, 9, + 18,18, 7, 5, 8, 5, 7, 5, 8, 6,18,18,12, 9,10, 9, + 9, 9, 8, 9,18,18, 8, 7,10, 6, 8, 5, 6, 4,11,18, + 11,15,16,12,11, 8, 8, 6, 9,18,14,18,18,18,16,16, + 16,13,16,18, +}; + +static const static_codebook _huff_book__16u1__long = { + 2, 100, + (long *)_huff_lengthlist__16u1__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__16u1__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u1__p1_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7,10,10, 7, + 9,10, 5, 7, 8, 7,10, 9, 7,10,10, 5, 8, 8, 8,10, + 10, 8,10,10, 7,10,10,10,11,12,10,12,13, 7,10,10, + 9,13,11,10,12,13, 5, 8, 8, 8,10,10, 8,10,10, 7, + 10,10,10,12,12, 9,11,12, 7,10,11,10,12,12,10,13, + 11, +}; + +static const static_codebook _16u1__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__16u1__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16u1__p1_0, + 0 +}; + +static const long _vq_quantlist__16u1__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u1__p2_0[] = { + 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 7, 7,10, 8, 9, 9, 6, 8, 8, + 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, + 8, 8, 8,10, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 7,10, + 8, +}; + +static const static_codebook _16u1__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__16u1__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16u1__p2_0, + 0 +}; + +static const long _vq_quantlist__16u1__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u1__p3_0[] = { + 1, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, + 10, 9,11,11, 9, 9,10,11,11, 6, 8, 8,10,10, 8, 9, + 10,11,11, 8, 9,10,11,11,10,11,11,12,13,10,11,11, + 13,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, + 11,10,11,11,13,13,10,11,11,13,12, 9,11,11,14,13, + 10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12, + 13,13,16,14, 9,11,11,13,14,10,11,12,14,14,10,12, + 12,14,15,12,13,13,14,15,12,13,14,15,16, 5, 8, 8, + 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, + 14,11,12,12,14,14, 8,10,10,12,12, 9,11,12,12,13, + 10,12,12,13,13,12,12,13,14,15,11,13,13,15,15, 7, + 10,10,12,12, 9,12,11,13,12,10,11,12,13,13,12,13, + 12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13, + 16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17, + 17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16, + 13,15,13,16,15,13,15,15,16,17, 5, 8, 8,11,11, 8, + 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, + 12,14,14, 7,10,10,12,12,10,12,12,14,13, 9,11,12, + 12,13,12,13,13,15,15,12,12,13,13,15, 7,10,10,12, + 13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15, + 12,13,12,15,14, 9,12,12,15,14,11,13,13,15,15,11, + 12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12, + 12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15, + 17,18,14,15,13,16,15, 8,11,11,15,14,10,12,12,16, + 15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18, + 9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15, + 15,15,17,18,14,15,16,17,17, 9,12,12,15,15,11,14, + 13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15, + 17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17, + 17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17, + 13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15, + 17,16,19,18, 8,11,11,14,15,10,12,12,15,15,10,12, + 12,16,16,13,14,14,17,16,14,15,15,17,17, 9,12,12, + 15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20, + 17,14,16,16,17,17, 9,12,12,15,16,11,13,13,16,17, + 11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11, + 14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16, + 16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14, + 17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18, + 16, +}; + +static const static_codebook _16u1__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__16u1__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u1__p3_0, + 0 +}; + +static const long _vq_quantlist__16u1__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u1__p4_0[] = { + 4, 5, 5, 8, 8, 6, 6, 7, 9, 9, 6, 6, 6, 9, 9, 9, + 10, 9,11,11, 9, 9,10,11,11, 6, 7, 7,10, 9, 7, 7, + 8, 9,10, 7, 7, 8,10,10,10,10,10,10,12, 9, 9,10, + 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 7,10, + 10, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, + 10,10,10,12,12, 9,10,10,12,12,12,11,12,13,13,11, + 11,12,12,13, 9,10,10,11,12, 9,10,10,12,12,10,10, + 10,12,12,11,12,11,14,13,11,12,12,14,13, 5, 7, 7, + 10,10, 7, 8, 8,10,10, 7, 8, 7,10,10,10,10,10,12, + 12,10,10,10,12,12, 6, 8, 7,10,10, 7, 7, 9,10,11, + 8, 9, 9,11,10,10,10,11,11,13,10,10,11,12,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,10,11,10,11, + 10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10, + 12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14, + 14, 9,10,10,12,13,10,11,10,13,12,10,11,11,12,13, + 11,12,11,14,12,12,13,13,15,14, 5, 7, 7,10,10, 7, + 7, 8,10,10, 7, 8, 8,10,10,10,10,10,11,12,10,10, + 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, + 10,11,10,11,11,12,12,10,10,11,11,13, 7, 7, 8,10, + 10, 8, 8, 9,10,11, 7, 9, 7,11,10,10,11,11,13,12, + 11,11,10,13,11, 9,10,10,12,12,10,11,11,13,12,10, + 10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10, + 11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13, + 15,14,12,13,10,14,11, 8,10,10,12,12,10,11,10,13, + 13, 9,10,10,12,12,12,13,13,15,14,11,12,12,13,13, + 9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12, + 12,13,14,15,12,13,12,15,13, 9,10,10,12,13,10,11, + 10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13, + 14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15, + 14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14, + 11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14, + 14,14,15,15, 8,10,10,12,12, 9,10,10,12,12,10,10, + 11,13,13,11,12,12,13,13,12,13,13,14,15, 9,10,10, + 13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15, + 14,12,12,13,13,16, 9, 9,10,12,13,10,10,11,12,13, + 10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11, + 12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14, + 14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13, + 14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15, + 11, +}; + +static const static_codebook _16u1__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__16u1__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u1__p4_0, + 0 +}; + +static const long _vq_quantlist__16u1__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16u1__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, + 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, + 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, + 10, 9,11,11,12,11, 7, 8, 8, 9, 9,11,11,12,12, 9, + 10,10,11,11,12,12,13,12, 9,10,10,11,11,12,12,12, + 13, +}; + +static const static_codebook _16u1__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__16u1__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16u1__p5_0, + 0 +}; + +static const long _vq_quantlist__16u1__p6_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16u1__p6_0[] = { + 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 4, 6, 6, 8, 8, + 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, + 8, 8,10, 9, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 8, 7, + 8, 8, 9, 9,10,10, 7, 8, 8, 8, 8, 9, 9,10,10, 9, + 9, 9,10,10,10,10,11,11, 9, 9, 9,10,10,10,10,11, + 11, +}; + +static const static_codebook _16u1__p6_0 = { + 2, 81, + (long *)_vq_lengthlist__16u1__p6_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16u1__p6_0, + 0 +}; + +static const long _vq_quantlist__16u1__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u1__p7_0[] = { + 1, 4, 4, 4, 8, 8, 4, 8, 8, 5,11, 9, 8,12,11, 8, + 12,11, 5,10,11, 8,11,12, 8,11,12, 4,11,11,11,14, + 13,10,13,13, 8,14,13,12,14,16,12,16,15, 8,14,14, + 13,16,14,12,15,16, 4,11,11,10,14,13,11,14,14, 8, + 15,14,12,15,15,12,14,16, 8,14,14,11,16,15,12,15, + 13, +}; + +static const static_codebook _16u1__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__16u1__p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__16u1__p7_0, + 0 +}; + +static const long _vq_quantlist__16u1__p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16u1__p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 5, 7, 7, + 8, 8, 8, 8, 8, 8, 4, 5, 6, 7, 7, 8, 8, 8, 8, 8, + 8, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 9, 9,10, + 9,10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, 9, 8, 8, 8, + 9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9,10, + 10,10,10, 8, 8, 8, 9, 9, 9,10,10,10,10,10, 8, 8, + 8, 9, 9,10,10,10,10,10,10, +}; + +static const static_codebook _16u1__p7_1 = { + 2, 121, + (long *)_vq_lengthlist__16u1__p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16u1__p7_1, + 0 +}; + +static const long _vq_quantlist__16u1__p8_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16u1__p8_0[] = { + 1, 4, 4, 5, 5, 8, 8,10,10,12,12, 4, 7, 7, 8, 8, + 9, 9,12,11,14,13, 4, 7, 7, 7, 8, 9,10,11,11,13, + 12, 5, 8, 8, 9, 9,11,11,12,13,15,14, 5, 7, 8, 9, + 9,11,11,13,13,17,15, 8, 9,10,11,11,12,13,17,14, + 17,16, 8,10, 9,11,11,12,12,13,15,15,17,10,11,11, + 12,13,14,15,15,16,16,17, 9,11,11,12,12,14,15,17, + 15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13, + 13,14,14,15,15,16,16,15,16, +}; + +static const static_codebook _16u1__p8_0 = { + 2, 121, + (long *)_vq_lengthlist__16u1__p8_0, + 1, -524582912, 1618345984, 4, 0, + (long *)_vq_quantlist__16u1__p8_0, + 0 +}; + +static const long _vq_quantlist__16u1__p8_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16u1__p8_1[] = { + 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, + 8, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, + 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, + 8, 9, 9, 9, 9, 9, 9, 9, 9, +}; + +static const static_codebook _16u1__p8_1 = { + 2, 121, + (long *)_vq_lengthlist__16u1__p8_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16u1__p8_1, + 0 +}; + +static const long _vq_quantlist__16u1__p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16u1__p9_0[] = { + 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, +}; + +static const static_codebook _16u1__p9_0 = { + 2, 225, + (long *)_vq_lengthlist__16u1__p9_0, + 1, -514071552, 1627381760, 4, 0, + (long *)_vq_quantlist__16u1__p9_0, + 0 +}; + +static const long _vq_quantlist__16u1__p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16u1__p9_1[] = { + 1, 6, 5, 9, 9,10,10, 6, 7, 9, 9,10,10,10,10, 5, + 10, 8,10, 8,10,10, 8, 8,10, 9,10,10,10,10, 5, 8, + 9,10,10,10,10, 8,10,10,10,10,10,10,10, 9,10,10, + 10,10,10,10, 9, 9,10,10,10,10,10,10, 9, 9, 8, 9, + 10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10, 8,10,10,10,10, + 10,10,10,10,10,10,10,10,10, 6, 8, 8,10,10,10, 8, + 10,10,10,10,10,10,10,10, 5, 8, 8,10,10,10, 9, 9, + 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _16u1__p9_1 = { + 2, 225, + (long *)_vq_lengthlist__16u1__p9_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__16u1__p9_1, + 0 +}; + +static const long _vq_quantlist__16u1__p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16u1__p9_2[] = { + 1, 6, 6, 7, 8, 8,11,10, 9, 9,11, 9,10, 9,11,11, + 9, 6, 7, 6,11, 8,11, 9,10,10,11, 9,11,10,10,10, + 11, 9, 5, 7, 7, 8, 8,10,11, 8, 8,11, 9, 9,10,11, + 9,10,11, 8, 9, 6, 8, 8, 9, 9,10,10,11,11,11, 9, + 11,10, 9,11, 8, 8, 8, 9, 8, 9,10,11, 9, 9,11,11, + 10, 9, 9,11,10, 8,11, 8, 9, 8,11, 9,10, 9,10,11, + 11,10,10, 9,10,10, 8, 8, 9,10,10,10, 9,11, 9,10, + 11,11,11,11,10, 9,11, 9, 9,11,11,10, 8,11,11,11, + 9,10,10,11,10,11,11, 9,11,10, 9,11,10,10,10,10, + 9,11,10,11,10, 9, 9,10,11, 9, 8,10,11,11,10,10, + 11, 9,11,10,11,11,10,11, 9, 9, 8,10, 8, 9,11, 9, + 8,10,10, 9,11,10,11,10,11, 9,11, 8,10,11,11,11, + 11,10,10,11,11,11,11,10,11,11,10, 9, 8,10,10, 9, + 11,10,11,11,11, 9, 9, 9,11,11,11,10,10, 9, 9,10, + 9,11,11,11,11, 8,10,11,10,11,11,10,11,11, 9, 9, + 9,10, 9,11, 9,11,11,11,11,11,10,11,11,10,11,10, + 11,11, 9,11,10,11,10, 9,10, 9,10,10,11,11,11,11, + 9,10, 9,10,11,11,10,11,11,11,11,11,11,10,11,11, + 10, +}; + +static const static_codebook _16u1__p9_2 = { + 2, 289, + (long *)_vq_lengthlist__16u1__p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__16u1__p9_2, + 0 +}; + +static const long _huff_lengthlist__16u1__short[] = { + 5, 7,10, 9,11,10,15,11,13,16, 6, 4, 6, 6, 7, 7, + 10, 9,12,16,10, 6, 5, 6, 6, 7,10,11,16,16, 9, 6, + 7, 6, 7, 7,10, 8,14,16,11, 6, 5, 4, 5, 6, 8, 9, + 15,16, 9, 6, 6, 5, 6, 6, 9, 8,14,16,12, 7, 6, 6, + 5, 6, 6, 7,13,16, 8, 6, 7, 6, 5, 5, 4, 4,11,16, + 9, 8, 9, 9, 7, 7, 6, 5,13,16,14,14,16,15,16,15, + 16,16,16,16, +}; + +static const static_codebook _huff_book__16u1__short = { + 2, 100, + (long *)_huff_lengthlist__16u1__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__16u2__long[] = { + 5, 8,10,10,10,11,11,12,14,18, 7, 5, 5, 6, 8, 9, + 10,12,14,17, 9, 5, 4, 5, 6, 8,10,11,13,19, 9, 5, + 4, 4, 5, 6, 9,10,12,17, 8, 6, 5, 4, 4, 5, 7,10, + 11,15, 8, 7, 7, 6, 5, 5, 6, 9,11,14, 8, 9, 8, 7, + 6, 5, 6, 7,11,14, 9,11,11, 9, 7, 6, 6, 6, 9,14, + 11,14,15,13, 9, 8, 7, 7, 9,14,13,15,19,17,12,11, + 10, 9,10,14, +}; + +static const static_codebook _huff_book__16u2__long = { + 2, 100, + (long *)_huff_lengthlist__16u2__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__16u2_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u2_p1_0[] = { + 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 8, 9, + 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,10,10, 7, 9, 9, + 9,10, 9, 9,10,11, 5, 8, 7, 7, 9, 9, 8, 9, 9, 7, + 9, 9, 9,11,10, 9, 9,10, 7, 9, 9, 9,10,10, 9,11, + 10, +}; + +static const static_codebook _16u2_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__16u2_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__16u2_p1_0, + 0 +}; + +static const long _vq_quantlist__16u2_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u2_p2_0[] = { + 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, + 10, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 8, 8,10,10,10,10,10,12,12, 9,10,10, + 11,12, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10, + 10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,12,12, + 10,10,10,12,12, 9,10,10,12,12,12,12,12,14,14,11, + 12,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10, + 10,12,12,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, + 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 9, 9,11,11, + 8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 7, + 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11, + 13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, + 14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, + 12,13,12,14,13,12,13,13,14,15, 5, 7, 7, 9,10, 7, + 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, + 11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, + 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,12, + 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, + 10,11,12,13,12,13,13,15,14,12,12,13,12,14, 9,10, + 11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, + 14,14,12,13,12,14,13, 8,10,10,12,12, 9,11,10,13, + 12, 9,10,10,12,13,12,13,13,14,14,12,12,12,14,14, + 9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,13, + 13,13,14,15,12,13,13,14,15, 9,10,10,12,13,10,11, + 10,13,13,10,11,11,12,13,12,13,12,15,14,12,13,13, + 14,15,11,12,12,15,14,12,12,13,14,15,12,13,13,15, + 14,13,13,15,14,16,14,14,14,16,15,11,12,12,14,14, + 11,12,12,14,14,12,13,13,14,15,13,14,13,15,13,14, + 14,14,15,16, 8, 9,10,12,12, 9,10,10,13,12, 9,10, + 11,12,13,12,12,12,14,14,12,13,13,14,14, 9,10,10, + 13,12,10,11,11,13,13,10,10,11,13,13,12,13,13,15, + 14,12,12,13,14,15, 9,10,10,13,13,10,11,11,13,13, + 10,11,11,13,13,12,13,13,14,14,13,13,13,15,15,11, + 12,12,14,13,12,13,13,15,14,11,12,12,14,14,14,14, + 14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, + 14,15,12,13,12,14,14,14,14,14,16,16,14,15,13,16, + 14, +}; + +static const static_codebook _16u2_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__16u2_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u2_p2_0, + 0 +}; + +static const long _vq_quantlist__16u2_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__16u2_p3_0[] = { + 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 8, 7, + 9, 9, 4, 5, 5, 6, 6, 7, 8, 9, 9, 6, 6, 6, 7, 7, + 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, + 8, 8, 9, 9,11,10, 7, 7, 8, 8, 8, 9, 9,10,11, 9, + 9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,10,11,11, + 11, +}; + +static const static_codebook _16u2_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__16u2_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__16u2_p3_0, + 0 +}; + +static const long _vq_quantlist__16u2_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__16u2_p4_0[] = { + 2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,11, + 11, 5, 5, 5, 7, 6, 8, 7, 9, 9, 9, 9,10,10,11,11, + 12,12, 5, 5, 5, 6, 6, 7, 8, 8, 9, 9, 9,10,10,11, + 11,12,12, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, + 11,11,11,11,12,12, 7, 7, 8, 8, 8, 9, 9, 9, 9,10, + 10,11,11,11,11,12,12, 8, 9, 9, 9, 9, 9, 9,10,10, + 10,10,11,11,12,12,12,12, 8, 9, 9, 9, 9, 9, 9,10, + 10,10,10,11,11,12,12,12,12, 9, 9, 9, 9, 9,10,10, + 10,10,10,11,11,11,12,12,13,13, 9, 9, 9, 9, 9,10, + 10,10,10,11,10,11,11,12,12,13,13,10,10,10,10,10, + 11,11,11,11,11,11,11,12,12,12,13,13,10,10,10,10, + 10,11,11,11,11,11,11,12,11,12,12,13,13,11,11,11, + 11,11,11,11,12,12,12,12,12,12,13,13,13,13,11,11, + 11,11,11,11,11,12,12,12,12,13,12,13,13,13,13,11, + 12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14, + 11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14, + 14, +}; + +static const static_codebook _16u2_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__16u2_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__16u2_p4_0, + 0 +}; + +static const long _vq_quantlist__16u2_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__16u2_p5_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9, 9, 7, + 9,10, 5, 8, 8, 7,10, 9, 7,10, 9, 5, 8, 8, 8,11, + 10, 8,10,10, 7,10,10, 9, 9,12,10,12,12, 7,10,10, + 9,12,10,10,11,12, 5, 8, 8, 8,10,10, 8,11,11, 7, + 11,10,10,12,11, 9,10,12, 7,10,11,10,12,12, 9,12, + 9, +}; + +static const static_codebook _16u2_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__16u2_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__16u2_p5_0, + 0 +}; + +static const long _vq_quantlist__16u2_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16u2_p5_1[] = { + 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, + 7, 7, 8, 8, 8, 8, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, + 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, +}; + +static const static_codebook _16u2_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__16u2_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16u2_p5_1, + 0 +}; + +static const long _vq_quantlist__16u2_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16u2_p6_0[] = { + 1, 5, 4, 7, 7, 8, 8, 8, 8,10,10,11,11, 4, 6, 6, + 7, 7, 9, 9, 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, + 9, 9, 9,10,10,11,11, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 7, 7, 7, 9, 8,10, 9,10,10,11,11,12, + 12, 8, 9, 9, 9,10,10,10,11,11,12,12,13,13, 8, 9, + 9,10, 9,10,10,11,11,12,12,13,13, 8, 9, 9,10,10, + 11,11,11,11,12,12,13,13, 8, 9, 9,10,10,11,11,12, + 11,12,12,13,13,10,10,10,11,11,12,12,12,12,13,13, + 14,14,10,10,10,11,11,12,12,12,12,13,13,14,14,11, + 11,11,12,12,13,13,13,13,14,14,14,14,11,11,11,12, + 12,13,13,13,13,14,14,14,14, +}; + +static const static_codebook _16u2_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__16u2_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__16u2_p6_0, + 0 +}; + +static const long _vq_quantlist__16u2_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__16u2_p6_1[] = { + 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _16u2_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__16u2_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__16u2_p6_1, + 0 +}; + +static const long _vq_quantlist__16u2_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__16u2_p7_0[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, + 8, 8, 9, 9, 9, 9,10,10,11,10, 4, 6, 6, 8, 8, 9, + 9, 9, 9,10,10,11,11, 7, 8, 8,10, 9,10,10,10,10, + 11,11,12,12, 7, 8, 8,10,10,10,10,10,10,11,11,12, + 12, 8, 9, 9,10,10,11,11,11,11,12,12,13,13, 8, 9, + 9,10,10,11,11,11,11,12,12,13,13, 8, 9, 9,11,10, + 11,11,12,12,13,13,14,13, 8, 9, 9,10,10,11,11,12, + 12,13,13,13,13, 9,10,10,11,11,12,12,13,13,13,13, + 14,14, 9,10,10,11,11,12,12,13,13,13,13,14,14,10, + 11,11,12,12,13,13,14,13,14,14,15,14,10,11,11,12, + 12,13,13,14,13,14,14,15,14, +}; + +static const static_codebook _16u2_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__16u2_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__16u2_p7_0, + 0 +}; + +static const long _vq_quantlist__16u2_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__16u2_p7_1[] = { + 2, 5, 5, 7, 7, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, + 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _16u2_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__16u2_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__16u2_p7_1, + 0 +}; + +static const long _vq_quantlist__16u2_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16u2_p8_0[] = { + 1, 4, 4, 7, 7, 8, 8, 7, 7, 9, 8,10, 9,11,11, 4, + 7, 6, 9, 8, 9, 9, 9, 9,10, 9,11, 9,12, 9, 4, 6, + 7, 8, 8, 9, 9, 9, 9,10,10,10,11,11,12, 7, 9, 8, + 10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, + 10,10,11,10,10,11,11,11,12,12,13, 8, 9, 9,11,11, + 11,11,11,11,12,12,13,13,13,13, 8, 9, 9,11,11,11, + 11,11,11,12,12,13,13,13,14, 8, 9, 9,10,10,11,11, + 12,11,13,13,14,13,14,14, 8, 9, 9,10,10,11,11,12, + 12,12,12,13,13,14,14, 9,10,10,11,11,12,12,13,12, + 13,13,14,14,15,15, 9,10,10,11,11,12,12,12,13,13, + 13,14,14,14,15,10,11,11,12,12,13,13,14,13,14,14, + 15,14,15,15,10,11,11,12,12,13,12,13,14,14,14,14, + 14,15,15,11,12,12,13,13,13,13,14,14,15,14,15,15, + 16,16,11,12,12,13,13,13,13,14,14,14,15,15,15,16, + 16, +}; + +static const static_codebook _16u2_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__16u2_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__16u2_p8_0, + 0 +}; + +static const long _vq_quantlist__16u2_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__16u2_p8_1[] = { + 3, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10, 5, 6, 6, 7, 7, 8, + 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, + 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, + 10,10,10,10, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9,10, 9,10,10,10, 9,10, 9, 8, 8, 8, 9, 8, 9, 9, + 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10, 8, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, + 10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, + 10,10,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10, 9, 9,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10, 9,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _16u2_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__16u2_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__16u2_p8_1, + 0 +}; + +static const long _vq_quantlist__16u2_p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__16u2_p9_0[] = { + 1, 5, 3, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, + 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 7, + 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _16u2_p9_0 = { + 2, 225, + (long *)_vq_lengthlist__16u2_p9_0, + 1, -510036736, 1631393792, 4, 0, + (long *)_vq_quantlist__16u2_p9_0, + 0 +}; + +static const long _vq_quantlist__16u2_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__16u2_p9_1[] = { + 1, 4, 4, 7, 7, 7, 7, 7, 6, 9, 7,10, 8,12,12,13, + 13,14,14, 4, 7, 7, 9, 9, 9, 8, 9, 8,10, 9,11, 9, + 14, 9,14,10,13,11, 4, 7, 7, 9, 9, 9, 9, 8, 9,10, + 10,11,11,12,13,12,13,14,15, 7, 9, 9,10,11,10,10, + 10,10,11,12,13,13,13,14,17,14,15,16, 7, 9, 9,10, + 10,10,10,10,10,11,12,13,13,14,14,15,15,18,18, 8, + 9, 9,11,10,11,11,11,12,13,12,14,14,16,15,15,17, + 18,15, 8, 9, 9,10,10,11,11,11,11,13,13,14,14,15, + 15,15,16,16,18, 7, 9, 8,10,10,11,11,12,12,14,14, + 15,15,16,16,15,17,16,18, 8, 9, 9,10,10,11,12,12, + 12,13,13,16,15,17,16,17,18,17,18, 9,10,10,12,11, + 13,13,14,13,14,14,15,17,16,18,17,18,17,18, 9,10, + 10,12,11,12,13,13,14,15,16,14,15,16,18,18,18,18, + 17,11,11,11,13,13,14,14,16,15,15,15,16,15,15,18, + 18,18,17,16,11,11,12,13,13,15,14,15,16,16,16,17, + 16,15,18,17,18,16,18,12,13,13,15,15,15,16,18,16, + 17,16,17,16,17,17,17,18,18,17,13,13,13,15,13,16, + 15,17,16,16,16,18,18,18,18,16,17,17,18,13,15,14, + 15,15,18,17,18,18,18,16,18,17,18,17,18,16,17,17, + 14,14,14,15,16,17,16,18,18,18,17,18,17,18,18,18, + 16,16,16,14,17,16,17,15,16,18,18,17,18,17,18,17, + 18,18,18,17,18,17,15,16,15,18,15,18,17,16,18,18, + 18,18,18,18,17,18,16,18,17, +}; + +static const static_codebook _16u2_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__16u2_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__16u2_p9_1, + 0 +}; + +static const long _vq_quantlist__16u2_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__16u2_p9_2[] = { + 2, 3, 4, 4, 4, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 7, 8, 8, 8, 8, 8, + 8, +}; + +static const static_codebook _16u2_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__16u2_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__16u2_p9_2, + 0 +}; + +static const long _huff_lengthlist__16u2__short[] = { + 8,11,13,13,15,16,19,19,19,19,11, 8, 8, 9, 9,11, + 13,15,19,20,14, 8, 7, 7, 8, 9,12,13,15,20,15, 9, + 6, 5, 5, 7,10,12,14,18,14, 9, 7, 5, 3, 4, 7,10, + 12,16,13,10, 8, 6, 3, 3, 5, 8,11,14,11,10, 9, 7, + 5, 4, 4, 6,11,14,10,10,10, 8, 6, 5, 5, 6,10,14, + 10,10,10, 9, 8, 7, 7, 7,10,14,11,12,12,12,11,10, + 10,10,12,16, +}; + +static const static_codebook _huff_book__16u2__short = { + 2, 100, + (long *)_huff_lengthlist__16u2__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__8u0__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u0__p1_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, + 10,10, 5, 8, 8, 7,10,10, 8,10,10, 4, 9, 8, 8,11, + 11, 8,11,11, 7,11,11,10,11,13,10,13,13, 7,11,11, + 10,13,12,10,13,13, 5, 9, 8, 8,11,11, 8,11,11, 7, + 11,11, 9,13,13,10,12,13, 7,11,11,10,13,13,10,13, + 11, +}; + +static const static_codebook _8u0__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__8u0__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8u0__p1_0, + 0 +}; + +static const long _vq_quantlist__8u0__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u0__p2_0[] = { + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 6, 7, 8, 6, + 7, 8, 5, 7, 7, 6, 8, 8, 7, 9, 7, 5, 7, 7, 7, 9, + 9, 7, 8, 8, 6, 9, 8, 7, 7,10, 8,10,10, 6, 8, 8, + 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, + 8, 8, 8,10,10, 8, 8,10, 6, 8, 9, 8,10,10, 7,10, + 8, +}; + +static const static_codebook _8u0__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__8u0__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8u0__p2_0, + 0 +}; + +static const long _vq_quantlist__8u0__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8u0__p3_0[] = { + 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, + 10, 9,11,11, 8, 9, 9,11,11, 6, 8, 8,10,10, 8,10, + 10,11,11, 8,10,10,11,11,10,11,11,12,12,10,11,11, + 12,13, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, + 11, 9,10,11,12,12,10,11,11,12,12, 8,11,11,14,13, + 10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12, + 14,12,16,15, 8,11,11,13,14,10,11,12,13,15,10,11, + 12,13,15,11,12,13,14,15,12,12,14,14,16, 5, 8, 8, + 11,11, 9,11,11,12,12, 8,10,11,12,12,11,12,12,15, + 14,11,12,12,14,14, 7,11,10,13,12,10,11,12,13,14, + 10,12,12,14,13,12,13,13,14,15,12,13,13,15,15, 7, + 10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13, + 12,14,14,11,13,13,15,16, 9,12,12,15,14,11,13,13, + 15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17, + 16, 9,12,12,14,15,11,13,13,15,16,11,13,13,16,18, + 13,14,14,17,16,13,15,15,17,18, 5, 8, 9,11,11, 8, + 11,11,12,12, 8,10,11,12,12,11,12,12,14,14,11,12, + 12,14,15, 7,11,10,12,13,10,12,12,14,13,10,11,12, + 13,14,11,13,13,15,14,12,13,13,14,15, 7,10,11,13, + 13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16, + 12,13,13,15,14, 9,12,12,16,15,10,13,13,15,15,11, + 13,13,17,15,12,15,15,18,17,13,14,14,15,16, 9,12, + 12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15, + 16,16,13,15,14,17,15, 7,11,11,15,15,10,13,13,16, + 15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18, + 9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15, + 15,16,17,19,13,15,16, 0,18, 9,12,12,16,15,11,14, + 13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15, + 17,19,11,14,14,19,16,12,14,15, 0,18,12,16,15,18, + 17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19, + 13,15,14,19,19,12,16,15,18,17,15,17,15, 0,16,14, + 17,16,19, 0, 7,11,11,14,14,10,12,12,15,15,10,13, + 13,16,15,13,15,15,17, 0,14,15,15,16,19, 9,12,12, + 16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19, + 0,14,18,17,17,19, 9,12,12,15,16,11,13,13,15,17, + 12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11, + 14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16, + 17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15, + 19, 0,12,14,15,19,19,14,16,16, 0,18,15,19,14,18, + 16, +}; + +static const static_codebook _8u0__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__8u0__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8u0__p3_0, + 0 +}; + +static const long _vq_quantlist__8u0__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8u0__p4_0[] = { + 3, 5, 5, 8, 8, 5, 6, 7, 9, 9, 6, 7, 6, 9, 9, 9, + 9, 9,10,11, 9, 9, 9,11,10, 6, 7, 7,10,10, 7, 7, + 8,10,10, 7, 8, 8,10,10,10,10,10,10,11, 9,10,10, + 11,12, 6, 7, 7,10,10, 7, 8, 8,10,10, 7, 8, 7,10, + 10, 9,10,10,12,11,10,10,10,11,10, 9,10,10,12,11, + 10,10,10,13,11, 9,10,10,12,12,11,11,12,12,13,11, + 11,11,12,13, 9,10,10,12,12,10,10,11,12,12,10,10, + 11,12,12,11,11,11,13,13,11,12,12,13,13, 5, 7, 7, + 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,11,12, + 12,10,11,10,12,12, 7, 8, 8,11,11, 7, 8, 9,10,11, + 8, 9, 9,11,11,11,10,11,10,12,10,11,11,12,13, 7, + 8, 8,10,11, 8, 9, 8,12,10, 8, 9, 9,11,12,10,11, + 10,13,11,10,11,11,13,12, 9,11,10,13,12,10,10,11, + 12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15, + 13, 9,11,11,13,13,10,11,11,13,12,10,11,11,12,14, + 12,13,11,14,12,12,12,12,14,14, 5, 7, 7,10,10, 7, + 8, 8,10,10, 7, 8, 8,11,10,10,11,11,12,12,10,11, + 10,12,12, 7, 8, 8,10,11, 8, 9, 9,12,11, 8, 8, 9, + 10,11,10,11,11,12,13,11,10,11,11,13, 6, 8, 8,10, + 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,11,11,12,12, + 10,11,10,13,10, 9,11,10,13,12,10,12,11,13,13,10, + 10,11,12,13,11,12,13,15,14,11,11,13,12,13, 9,10, + 11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13, + 13,14,12,12,11,14,11, 8,10,10,12,13,10,11,11,13, + 13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13, + 9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12, + 12,13,15,14,12,13,13,15,13, 9,10,11,12,13,10,12, + 10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12, + 15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14, + 13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14, + 11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13, + 15,14,16,15, 8,10,10,12,12,10,10,10,12,13,10,11, + 11,13,13,12,12,12,13,14,13,13,13,15,15, 9,10,10, + 12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14, + 14,12,12,13,15,14, 9,10,10,13,12,10,10,12,12,13, + 10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11, + 12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14, + 14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13, + 14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14, + 12, +}; + +static const static_codebook _8u0__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__8u0__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8u0__p4_0, + 0 +}; + +static const long _vq_quantlist__8u0__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8u0__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 7, 8, 8, + 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 6, 8, 8, 9, 9, + 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, + 9, 9,10,10,12,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 10,10,11,11,11,12,12,12, 9,10,10,11,11,12,12,12, + 12, +}; + +static const static_codebook _8u0__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__8u0__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8u0__p5_0, + 0 +}; + +static const long _vq_quantlist__8u0__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__8u0__p6_0[] = { + 1, 4, 4, 7, 7, 9, 9,11,11,12,12,16,16, 3, 6, 6, + 9, 9,11,11,12,12,13,14,18,16, 3, 6, 7, 9, 9,11, + 11,13,12,14,14,17,16, 7, 9, 9,11,11,12,12,14,14, + 14,14,17,16, 7, 9, 9,11,11,13,12,13,13,14,14,17, + 0, 9,11,11,12,13,14,14,14,13,15,14,17,17, 9,11, + 11,12,12,14,14,13,14,14,15, 0, 0,11,12,12,15,14, + 15,14,15,14,15,16,17, 0,11,12,13,13,13,14,14,15, + 14,15,15, 0, 0,12,14,14,15,15,14,16,15,15,17,16, + 0,18,13,14,14,15,14,15,14,15,16,17,16, 0, 0,17, + 17,18, 0,16,18,16, 0, 0, 0,17, 0, 0,16, 0, 0,16, + 16, 0,15, 0,17, 0, 0, 0, 0, +}; + +static const static_codebook _8u0__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__8u0__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__8u0__p6_0, + 0 +}; + +static const long _vq_quantlist__8u0__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8u0__p6_1[] = { + 1, 4, 4, 6, 6, 4, 6, 5, 7, 7, 4, 5, 6, 7, 7, 6, + 7, 7, 7, 7, 6, 7, 7, 7, 7, +}; + +static const static_codebook _8u0__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__8u0__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8u0__p6_1, + 0 +}; + +static const long _vq_quantlist__8u0__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u0__p7_0[] = { + 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _8u0__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__8u0__p7_0, + 1, -518803456, 1628680192, 2, 0, + (long *)_vq_quantlist__8u0__p7_0, + 0 +}; + +static const long _vq_quantlist__8u0__p7_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__8u0__p7_1[] = { + 1, 5, 5, 5, 5,10,10,11,11,11,11,11,11,11,11, 5, + 7, 6, 8, 8, 9,10,11,11,11,11,11,11,11,11, 6, 6, + 7, 9, 7,11,10,11,11,11,11,11,11,11,11, 5, 6, 6, + 11, 8,11,11,11,11,11,11,11,11,11,11, 5, 6, 6, 9, + 10,11,10,11,11,11,11,11,11,11,11, 7,10,10,11,11, + 11,11,11,11,11,11,11,11,11,11, 7,11, 8,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _8u0__p7_1 = { + 2, 225, + (long *)_vq_lengthlist__8u0__p7_1, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__8u0__p7_1, + 0 +}; + +static const long _vq_quantlist__8u0__p7_2[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__8u0__p7_2[] = { + 1, 6, 5, 7, 7, 9, 9, 9, 9,10,12,12,10,11,11,10, + 11,11,11,10,11, 6, 8, 8, 9, 9,10,10, 9,10,11,11, + 10,11,11,11,11,10,11,11,11,11, 6, 7, 8, 9, 9, 9, + 10,11,10,11,12,11,10,11,11,11,11,11,11,12,10, 8, + 9, 9,10, 9,10,10, 9,10,10,10,10,10, 9,10,10,10, + 10, 9,10,10, 9, 9, 9, 9,10,10, 9, 9,10,10,11,10, + 9,12,10,11,10, 9,10,10,10, 8, 9, 9,10, 9,10, 9, + 9,10,10, 9,10, 9,11,10,10,10,10,10, 9,10, 8, 8, + 9, 9,10, 9,11, 9, 8, 9, 9,10,11,10,10,10,11,12, + 9, 9,11, 8, 9, 8,11,10,11,10,10, 9,11,10,10,10, + 10,10,10,10,11,11,11,11, 8, 9, 9, 9,10,10,10,11, + 11,12,11,12,11,10,10,10,12,11,11,11,10, 8,10, 9, + 11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11, + 11,10, 9, 9,10,11,12,10,10,10,11,10,11,11,10,12, + 12,10,11,10,11,12,10, 9,10,10,11,10,11,11,11,11, + 11,12,11,11,11, 9,11,10,11,10,11,10, 9, 9,10,11, + 11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12, + 11, 9,11,11,12,10,11,11,11,11,11,11,12,11,11,12, + 11,11,11,10,11,11, 9,11,10,11,11,11,10,10,10,11, + 11,11,12,10,11,10,11,11,11,11,12, 9,11,10,11,11, + 10,10,11,11, 9,11,11,12,10,10,10,10,10,11,11,10, + 9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11, + 10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11, + 10,10,11,11,11,11,10,10,10,12,11,11,11,11,10, 9, + 10,11,11,11,12,11,11,11,12,10,11,11,11, 9,10,11, + 11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10, + 10,11, 9,10,11,11,11,11,11,10,11,11,10,12,11,11, + 11,12,11,11,11,10,10,11,11, +}; + +static const static_codebook _8u0__p7_2 = { + 2, 441, + (long *)_vq_lengthlist__8u0__p7_2, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__8u0__p7_2, + 0 +}; + +static const long _huff_lengthlist__8u0__single[] = { + 4, 7,11, 9,12, 8, 7,10, 6, 4, 5, 5, 7, 5, 6,16, + 9, 5, 5, 6, 7, 7, 9,16, 7, 4, 6, 5, 7, 5, 7,17, + 10, 7, 7, 8, 7, 7, 8,18, 7, 5, 6, 4, 5, 4, 5,15, + 7, 6, 7, 5, 6, 4, 5,15,12,13,18,12,17,11, 9,17, +}; + +static const static_codebook _huff_book__8u0__single = { + 2, 64, + (long *)_huff_lengthlist__8u0__single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__8u1__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u1__p1_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9,10, 7, + 9, 9, 5, 8, 8, 7,10, 9, 7, 9, 9, 5, 8, 8, 8,10, + 10, 8,10,10, 7,10,10, 9,10,12,10,12,12, 7,10,10, + 9,12,11,10,12,12, 5, 8, 8, 8,10,10, 8,10,10, 7, + 10,10,10,12,12, 9,11,12, 7,10,10,10,12,12, 9,12, + 10, +}; + +static const static_codebook _8u1__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__8u1__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8u1__p1_0, + 0 +}; + +static const long _vq_quantlist__8u1__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u1__p2_0[] = { + 3, 4, 5, 5, 6, 6, 5, 6, 6, 5, 7, 6, 6, 7, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 7, 8, + 8, 6, 7, 7, 6, 8, 7, 7, 7, 9, 8, 9, 9, 6, 7, 8, + 7, 9, 7, 8, 9, 9, 5, 6, 6, 6, 7, 7, 7, 8, 8, 6, + 8, 7, 8, 9, 9, 7, 7, 9, 6, 7, 8, 8, 9, 9, 7, 9, + 7, +}; + +static const static_codebook _8u1__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__8u1__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__8u1__p2_0, + 0 +}; + +static const long _vq_quantlist__8u1__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8u1__p3_0[] = { + 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, + 10, 9,11,11, 9, 9, 9,11,11, 6, 8, 8,10,10, 8,10, + 10,11,11, 8, 9,10,11,11,10,11,11,12,12,10,11,11, + 12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, + 11,10,11,11,12,12,10,11,11,12,12, 9,11,11,14,13, + 10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12, + 13,13,15,14, 8,11,11,13,14,10,11,12,13,15,10,11, + 12,14,14,12,13,13,14,15,12,13,13,14,15, 5, 8, 8, + 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, + 13,11,12,12,13,14, 8,10,10,12,12, 9,11,12,13,14, + 10,12,12,13,13,12,12,13,14,14,11,13,13,15,15, 7, + 10,10,12,12, 9,12,11,14,12,10,11,12,13,14,12,13, + 12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13, + 15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17, + 15, 9,12,12,14,15,11,13,12,15,15,11,13,13,15,15, + 13,14,13,15,14,13,14,14,17, 0, 5, 8, 8,11,11, 8, + 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, + 12,14,14, 7,10,10,12,12,10,12,12,13,13, 9,11,12, + 12,13,11,12,13,15,15,11,12,13,14,15, 8,10,10,12, + 12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14, + 12,13,12,15,13, 9,12,12,14,14,11,13,13,16,15,11, + 12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12, + 12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15, + 16,17,13,15,14,16,15, 8,11,11,14,15,10,12,12,15, + 15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16, + 9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14, + 15,16,19,17,13,15,15, 0,17, 9,12,12,15,15,11,14, + 13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15, + 17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18, + 18,15,15,16,15,19,14,16,16, 0, 0,11,14,14,16,17, + 12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14, + 16,16,18,18, 7,11,11,14,14,10,12,12,15,15,10,12, + 13,15,15,13,14,15,16,16,14,15,15,18,18, 9,12,12, + 15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17, + 16,15,16,16,17,17, 9,12,12,15,15,11,13,13,15,17, + 11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11, + 14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16, + 16,19,18,16,15,17,17, 0,11,14,14,17,17,12,15,15, + 18, 0,12,15,14,18,16,14,17,17,19, 0,16,18,15, 0, + 16, +}; + +static const static_codebook _8u1__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__8u1__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8u1__p3_0, + 0 +}; + +static const long _vq_quantlist__8u1__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__8u1__p4_0[] = { + 4, 5, 5, 9, 9, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 9, + 9, 9,11,11, 9, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, + 8, 9,10, 7, 7, 8, 9,10, 9, 9,10,10,11, 9, 9,10, + 10,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 7,10, + 9, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, + 9,10,10,12,11, 9,10,10,12,12,11,11,12,12,13,11, + 11,12,12,13, 9, 9,10,12,11, 9,10,10,12,12,10,10, + 10,12,12,11,12,11,13,12,11,12,11,13,12, 6, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 7,10, 9,10,10,10,12, + 12,10,10,10,12,11, 7, 8, 7,10,10, 7, 7, 9,10,11, + 8, 9, 9,11,10,10,10,11,10,12,10,10,11,12,12, 7, + 8, 8,10,10, 7, 9, 8,11,10, 8, 8, 9,11,11,10,11, + 10,12,11,10,11,11,12,12, 9,10,10,12,12, 9,10,10, + 12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13, + 14, 9,10,10,12,12, 9,11,10,12,12,10,11,11,12,12, + 11,12,11,14,12,12,12,12,14,14, 5, 7, 7, 9, 9, 7, + 7, 7, 9,10, 7, 8, 8,10,10,10,10,10,11,11,10,10, + 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, + 10,11,10,10,10,11,12,10,10,11,11,13, 6, 7, 8,10, + 10, 8, 9, 9,10,10, 7, 9, 7,11,10,10,11,10,12,12, + 10,11,10,12,10, 9,10,10,12,12,10,11,11,13,12, 9, + 10,10,12,12,12,12,12,14,13,11,11,12,11,14, 9,10, + 10,11,12,10,11,11,12,13, 9,10,10,12,12,12,12,12, + 14,13,11,12,10,14,11, 9, 9,10,11,12, 9,10,10,12, + 12, 9,10,10,12,12,12,12,12,14,14,11,12,12,13,12, + 9,10, 9,12,12, 9,10,11,12,13,10,11,10,13,11,12, + 12,13,13,14,12,12,12,13,13, 9,10,10,12,12,10,11, + 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12, + 13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14, + 13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14, + 10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13, + 13,14,14,14, 9,10, 9,12,12, 9,10,10,12,12,10,10, + 10,12,12,11,11,12,12,13,12,12,12,14,14, 9,10,10, + 12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14, + 13,12,12,13,13,14, 9,10,10,12,13,10,10,11,11,12, + 9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11, + 12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13, + 13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12, + 13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15, + 10, +}; + +static const static_codebook _8u1__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__8u1__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__8u1__p4_0, + 0 +}; + +static const long _vq_quantlist__8u1__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8u1__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 5, 8, 7, 8, 8, + 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, + 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, + 9, 9,10,10,12,11, 8, 8, 8, 9, 9,10,10,11,11, 9, + 10,10,11,11,11,11,13,12, 9,10,10,11,11,12,12,12, + 13, +}; + +static const static_codebook _8u1__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__8u1__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8u1__p5_0, + 0 +}; + +static const long _vq_quantlist__8u1__p6_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__8u1__p6_0[] = { + 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 5, 6, 6, 7, 7, + 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, + 8, 8, 9, 9, 6, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, + 8, 8, 8, 9,10,10, 7, 7, 7, 8, 8, 9, 8,10,10, 9, + 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, + 10, +}; + +static const static_codebook _8u1__p6_0 = { + 2, 81, + (long *)_vq_lengthlist__8u1__p6_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__8u1__p6_0, + 0 +}; + +static const long _vq_quantlist__8u1__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__8u1__p7_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,10,10, 8, + 10,10, 5, 9, 9, 7,10,10, 8,10,10, 4,10,10, 9,12, + 12, 9,11,11, 7,12,11,10,11,13,10,13,13, 7,12,12, + 10,13,12,10,13,13, 4,10,10, 9,12,12, 9,12,12, 7, + 12,12,10,13,13,10,12,13, 7,11,12,10,13,13,10,13, + 11, +}; + +static const static_codebook _8u1__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__8u1__p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__8u1__p7_0, + 0 +}; + +static const long _vq_quantlist__8u1__p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__8u1__p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, + 8, 8, 9, 9, 9, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 9, + 9, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 9, 9, + 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, + 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, + 9, 9, 9, 9, 9,10,10,10,10, +}; + +static const static_codebook _8u1__p7_1 = { + 2, 121, + (long *)_vq_lengthlist__8u1__p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__8u1__p7_1, + 0 +}; + +static const long _vq_quantlist__8u1__p8_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__8u1__p8_0[] = { + 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, + 9, 9,11,11,13,12, 4, 6, 6, 7, 7, 9, 9,11,11,12, + 12, 6, 7, 7, 9, 9,11,11,12,12,13,13, 6, 7, 7, 9, + 9,11,11,12,12,13,13, 8, 9, 9,11,11,12,12,13,13, + 14,14, 8, 9, 9,11,11,12,12,13,13,14,14, 9,11,11, + 12,12,13,13,14,14,15,15, 9,11,11,12,12,13,13,14, + 14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12, + 12,13,13,14,14,15,15,15,15, +}; + +static const static_codebook _8u1__p8_0 = { + 2, 121, + (long *)_vq_lengthlist__8u1__p8_0, + 1, -524582912, 1618345984, 4, 0, + (long *)_vq_quantlist__8u1__p8_0, + 0 +}; + +static const long _vq_quantlist__8u1__p8_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__8u1__p8_1[] = { + 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, + 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, + 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, + 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, +}; + +static const static_codebook _8u1__p8_1 = { + 2, 121, + (long *)_vq_lengthlist__8u1__p8_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__8u1__p8_1, + 0 +}; + +static const long _vq_quantlist__8u1__p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__8u1__p9_0[] = { + 1, 4, 4,11,11,11,11,11,11,11,11,11,11,11,11, 3, + 11, 8,11,11,11,11,11,11,11,11,11,11,11,11, 3, 9, + 9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _8u1__p9_0 = { + 2, 225, + (long *)_vq_lengthlist__8u1__p9_0, + 1, -514071552, 1627381760, 4, 0, + (long *)_vq_quantlist__8u1__p9_0, + 0 +}; + +static const long _vq_quantlist__8u1__p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__8u1__p9_1[] = { + 1, 4, 4, 7, 7, 9, 9, 7, 7, 8, 8,10,10,11,11, 4, + 7, 7, 9, 9,10,10, 8, 8,10,10,10,11,10,11, 4, 7, + 7, 9, 9,10,10, 8, 8,10, 9,11,11,11,11, 7, 9, 9, + 12,12,11,12,10,10,11,10,12,11,11,11, 7, 9, 9,11, + 11,13,12, 9, 9,11,10,11,11,12,11, 9,10,10,12,12, + 14,14,10,10,11,12,12,11,11,11, 9,10,11,11,13,14, + 13,10,11,11,11,12,11,12,12, 7, 8, 8,10, 9,11,10, + 11,12,12,11,12,14,12,13, 7, 8, 8, 9,10,10,11,12, + 12,12,11,12,12,12,13, 9, 9, 9,11,11,13,12,12,12, + 12,11,12,12,13,12, 8,10,10,11,10,11,12,12,12,12, + 12,12,14,12,12, 9,11,11,11,12,12,12,12,13,13,12, + 12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12, + 12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12, + 12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14, + 13, +}; + +static const static_codebook _8u1__p9_1 = { + 2, 225, + (long *)_vq_lengthlist__8u1__p9_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__8u1__p9_1, + 0 +}; + +static const long _vq_quantlist__8u1__p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__8u1__p9_2[] = { + 2, 5, 4, 6, 6, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10,10, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10, 8, 8, 8, 9, 9, 9, 9,10,10,10, 9, + 10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _8u1__p9_2 = { + 2, 289, + (long *)_vq_lengthlist__8u1__p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__8u1__p9_2, + 0 +}; + +static const long _huff_lengthlist__8u1__single[] = { + 4, 7,13, 9,15, 9,16, 8,10,13, 7, 5, 8, 6, 9, 7, + 10, 7,10,11,11, 6, 7, 8, 8, 9, 9, 9,12,16, 8, 5, + 8, 6, 8, 6, 9, 7,10,12,11, 7, 7, 7, 6, 7, 7, 7, + 11,15, 7, 5, 8, 6, 7, 5, 7, 6, 9,13,13, 9, 9, 8, + 6, 6, 5, 5, 9,14, 8, 6, 8, 6, 6, 4, 5, 3, 5,13, + 9, 9,11, 8,10, 7, 8, 4, 5,12,11,16,17,15,17,12, + 13, 8, 8,15, +}; + +static const static_codebook _huff_book__8u1__single = { + 2, 100, + (long *)_huff_lengthlist__8u1__single, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u0__long[] = { + 5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, + 13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, + 15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, + 9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, +}; + +static const static_codebook _huff_book__44u0__long = { + 2, 64, + (long *)_huff_lengthlist__44u0__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u0__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u0__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, + 10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, + 11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, + 10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, + 11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, + 13, +}; + +static const static_codebook _44u0__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u0__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u0__p1_0, + 0 +}; + +static const long _vq_quantlist__44u0__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u0__p2_0[] = { + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, + 8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, + 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, + 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, + 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, + 9, +}; + +static const static_codebook _44u0__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u0__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u0__p2_0, + 0 +}; + +static const long _vq_quantlist__44u0__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u0__p3_0[] = { + 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, + 10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, + 10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, + 13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, + 11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, + 10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, + 14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, + 12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, + 11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, + 14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, + 10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, + 10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, + 12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, + 16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, + 19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, + 14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, + 10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, + 12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, + 13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, + 13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, + 12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, + 12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, + 12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, + 17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, + 17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, + 9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, + 17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, + 13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, + 18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, + 17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, + 13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, + 17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, + 13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, + 16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, + 20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, + 11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, + 14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, + 17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, + 0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, + 19, +}; + +static const static_codebook _44u0__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u0__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u0__p3_0, + 0 +}; + +static const long _vq_quantlist__44u0__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u0__p4_0[] = { + 4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, + 10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, + 8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, + 12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, + 10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, + 10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, + 12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, + 10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, + 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, + 13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, + 8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, + 14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, + 15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, + 12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, + 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, + 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, + 11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, + 10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, + 10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, + 11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, + 16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, + 13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, + 9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, + 13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, + 10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, + 15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, + 15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, + 11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, + 16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, + 11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, + 14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, + 16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, + 10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, + 13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, + 16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, + 15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, + 12, +}; + +static const static_codebook _44u0__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u0__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u0__p4_0, + 0 +}; + +static const long _vq_quantlist__44u0__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u0__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, + 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, + 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, + 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, + 12, +}; + +static const static_codebook _44u0__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u0__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u0__p5_0, + 0 +}; + +static const long _vq_quantlist__44u0__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u0__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, + 8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, + 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, + 12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, + 15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, + 9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, + 12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, + 12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, + 17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, + 15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, + 15,17,16,17,18,17,17,18, 0, +}; + +static const static_codebook _44u0__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u0__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u0__p6_0, + 0 +}; + +static const long _vq_quantlist__44u0__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u0__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 5, 6, 6, 6, 6, +}; + +static const static_codebook _44u0__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u0__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u0__p6_1, + 0 +}; + +static const long _vq_quantlist__44u0__p7_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u0__p7_0[] = { + 1, 4, 4,11,11, 9,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11, 9,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _44u0__p7_0 = { + 4, 625, + (long *)_vq_lengthlist__44u0__p7_0, + 1, -518709248, 1626677248, 3, 0, + (long *)_vq_quantlist__44u0__p7_0, + 0 +}; + +static const long _vq_quantlist__44u0__p7_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u0__p7_1[] = { + 1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, + 8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, + 7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, + 12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, + 12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, + 8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, + 13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, + 14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, + 15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, + 15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, + 15,15,15,15,15,15,15,15,15, +}; + +static const static_codebook _44u0__p7_1 = { + 2, 169, + (long *)_vq_lengthlist__44u0__p7_1, + 1, -523010048, 1618608128, 4, 0, + (long *)_vq_quantlist__44u0__p7_1, + 0 +}; + +static const long _vq_quantlist__44u0__p7_2[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u0__p7_2[] = { + 2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, + 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, + 8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, + 9, 9, 9,10, 9, 9,10,10, 9, +}; + +static const static_codebook _44u0__p7_2 = { + 2, 169, + (long *)_vq_lengthlist__44u0__p7_2, + 1, -531103744, 1611661312, 4, 0, + (long *)_vq_quantlist__44u0__p7_2, + 0 +}; + +static const long _huff_lengthlist__44u0__short[] = { + 12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, + 4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, + 6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, + 11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, +}; + +static const static_codebook _huff_book__44u0__short = { + 2, 64, + (long *)_huff_lengthlist__44u0__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u1__long[] = { + 5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, + 13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, + 15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, + 9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, +}; + +static const static_codebook _huff_book__44u1__long = { + 2, 64, + (long *)_huff_lengthlist__44u1__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u1__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u1__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, + 10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, + 11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, + 10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, + 11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, + 13, +}; + +static const static_codebook _44u1__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u1__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u1__p1_0, + 0 +}; + +static const long _vq_quantlist__44u1__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u1__p2_0[] = { + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, + 8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, + 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, + 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, + 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, + 9, +}; + +static const static_codebook _44u1__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u1__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u1__p2_0, + 0 +}; + +static const long _vq_quantlist__44u1__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u1__p3_0[] = { + 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, + 10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, + 10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, + 13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, + 11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, + 10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, + 14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, + 12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, + 11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, + 14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, + 10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, + 10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, + 12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, + 16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, + 19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, + 14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, + 10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, + 12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, + 13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, + 13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, + 12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, + 12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, + 12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, + 17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, + 17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, + 9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, + 17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, + 13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, + 18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, + 17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, + 13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, + 17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, + 13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, + 16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, + 20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, + 11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, + 14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, + 17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, + 0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, + 19, +}; + +static const static_codebook _44u1__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u1__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u1__p3_0, + 0 +}; + +static const long _vq_quantlist__44u1__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u1__p4_0[] = { + 4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, + 10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, + 8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, + 12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, + 10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, + 10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, + 12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, + 10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, + 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, + 13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, + 8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, + 14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, + 15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, + 12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, + 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, + 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, + 11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, + 10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, + 10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, + 11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, + 16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, + 13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, + 9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, + 13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, + 10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, + 15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, + 15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, + 11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, + 16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, + 11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, + 14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, + 16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, + 10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, + 13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, + 16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, + 15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, + 12, +}; + +static const static_codebook _44u1__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u1__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u1__p4_0, + 0 +}; + +static const long _vq_quantlist__44u1__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u1__p5_0[] = { + 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, + 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, + 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, + 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, + 12, +}; + +static const static_codebook _44u1__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u1__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u1__p5_0, + 0 +}; + +static const long _vq_quantlist__44u1__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u1__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, + 8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, + 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, + 12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, + 15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, + 9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, + 12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, + 12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, + 17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, + 15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, + 15,17,16,17,18,17,17,18, 0, +}; + +static const static_codebook _44u1__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u1__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u1__p6_0, + 0 +}; + +static const long _vq_quantlist__44u1__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u1__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 5, 6, 6, 6, 6, +}; + +static const static_codebook _44u1__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u1__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u1__p6_1, + 0 +}; + +static const long _vq_quantlist__44u1__p7_0[] = { + 3, + 2, + 4, + 1, + 5, + 0, + 6, +}; + +static const long _vq_lengthlist__44u1__p7_0[] = { + 1, 3, 2, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, +}; + +static const static_codebook _44u1__p7_0 = { + 2, 49, + (long *)_vq_lengthlist__44u1__p7_0, + 1, -518017024, 1626677248, 3, 0, + (long *)_vq_quantlist__44u1__p7_0, + 0 +}; + +static const long _vq_quantlist__44u1__p7_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u1__p7_1[] = { + 1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, + 8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, + 7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, + 12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, + 12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, + 8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, + 13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, + 14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, + 15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, + 15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, + 15,15,15,15,15,15,15,15,15, +}; + +static const static_codebook _44u1__p7_1 = { + 2, 169, + (long *)_vq_lengthlist__44u1__p7_1, + 1, -523010048, 1618608128, 4, 0, + (long *)_vq_quantlist__44u1__p7_1, + 0 +}; + +static const long _vq_quantlist__44u1__p7_2[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u1__p7_2[] = { + 2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, + 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, + 8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, + 9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, + 9, 9, 9,10, 9, 9,10,10, 9, +}; + +static const static_codebook _44u1__p7_2 = { + 2, 169, + (long *)_vq_lengthlist__44u1__p7_2, + 1, -531103744, 1611661312, 4, 0, + (long *)_vq_quantlist__44u1__p7_2, + 0 +}; + +static const long _huff_lengthlist__44u1__short[] = { + 12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, + 4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, + 6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, + 11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, +}; + +static const static_codebook _huff_book__44u1__short = { + 2, 64, + (long *)_huff_lengthlist__44u1__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u2__long[] = { + 5, 9,14,12,15,13,10,13, 7, 4, 5, 6, 8, 7, 8,12, + 13, 4, 3, 5, 5, 6, 9,15,12, 6, 5, 6, 6, 6, 7,14, + 14, 7, 4, 6, 4, 6, 8,15,12, 6, 6, 5, 5, 5, 6,14, + 9, 7, 8, 6, 7, 5, 4,10,10,13,14,14,15,10, 6, 8, +}; + +static const static_codebook _huff_book__44u2__long = { + 2, 64, + (long *)_huff_lengthlist__44u2__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u2__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u2__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, + 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, + 11, 8,11,11, 8,11,11,11,13,14,11,13,13, 7,11,11, + 10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 8, + 11,11,11,14,13,10,12,13, 8,11,11,11,13,13,11,13, + 13, +}; + +static const static_codebook _44u2__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u2__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u2__p1_0, + 0 +}; + +static const long _vq_quantlist__44u2__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u2__p2_0[] = { + 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, + 8, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, + 7,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, + 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, + 9, +}; + +static const static_codebook _44u2__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u2__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u2__p2_0, + 0 +}; + +static const long _vq_quantlist__44u2__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u2__p3_0[] = { + 2, 4, 4, 7, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, + 9, 9,12,11, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, + 9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, + 12,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, + 11, 9,11,10,13,13,10,11,11,13,13, 8,10,10,14,13, + 10,11,11,15,14, 9,11,11,15,14,13,14,13,16,14,12, + 13,13,15,16, 8,10,10,13,14, 9,11,11,14,15,10,11, + 11,14,15,12,13,13,15,15,12,13,14,15,16, 5, 7, 7, + 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, + 13,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, + 9,11,11,13,13,12,13,12,14,14,11,12,13,15,15, 7, + 9, 9,12,12, 8,11,10,13,12, 9,11,11,13,13,11,13, + 12,15,13,11,13,13,15,16, 9,12,11,15,15,11,12,12, + 16,15,11,12,13,16,16,13,14,15,16,15,13,15,15,17, + 17, 9,11,11,14,15,10,12,12,15,15,11,13,12,15,16, + 13,15,14,16,16,13,15,15,17,19, 5, 7, 7,10,10, 7, + 9, 9,12,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, + 11,13,14, 7, 9, 9,12,12, 9,11,11,13,13, 9,10,11, + 12,13,11,13,12,16,15,11,12,12,14,15, 7, 9, 9,12, + 12, 9,11,11,13,13, 9,11,11,13,12,11,13,12,15,16, + 12,13,13,15,14, 9,11,11,15,14,11,13,12,16,15,10, + 11,12,15,15,13,14,14,18,17,13,14,14,15,17,10,11, + 11,14,15,11,13,12,15,17,11,13,12,15,16,13,15,14, + 18,17,14,15,15,16,18, 7,10,10,14,14,10,12,12,15, + 15,10,12,12,15,15,14,15,15,18,17,13,15,15,16,16, + 9,11,11,16,15,11,13,13,16,18,11,13,13,16,16,15, + 16,16, 0, 0,14,15,16,18,17, 9,11,11,15,15,10,13, + 12,17,16,11,12,13,16,17,14,15,16,19,19,14,15,15, + 0,20,12,14,14, 0, 0,13,14,16,19,18,13,15,16,20, + 17,16,18, 0, 0, 0,15,16,17,18,19,11,14,14, 0,19, + 12,15,14,17,17,13,15,15, 0, 0,16,17,15,20,19,15, + 17,16,19, 0, 8,10,10,14,15,10,12,11,15,15,10,11, + 12,16,15,13,14,14,19,17,14,15,15, 0, 0, 9,11,11, + 16,15,11,13,13,17,16,10,12,13,16,17,14,15,15,18, + 18,14,15,16,20,19, 9,12,12, 0,15,11,13,13,16,17, + 11,13,13,19,17,14,16,16,18,17,15,16,16,17,19,11, + 14,14,18,18,13,14,15, 0, 0,12,14,15,19,18,15,16, + 19, 0,19,15,16,19,19,17,12,14,14,16,19,13,15,15, + 0,17,13,15,14,18,18,15,16,15, 0,18,16,17,17, 0, + 0, +}; + +static const static_codebook _44u2__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u2__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u2__p3_0, + 0 +}; + +static const long _vq_quantlist__44u2__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u2__p4_0[] = { + 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, + 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, + 11,12, 5, 7, 7, 9, 9, 6, 8, 7,10,10, 7, 8, 8,10, + 10, 9,10,10,12,11, 9,10,10,12,11, 9,10,10,12,12, + 10,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, + 12,12,13,14, 9,10,10,12,12, 9,10,10,12,13,10,10, + 10,12,13,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, + 10, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, + 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, + 8, 9, 9,11,11,10,11,11,12,13,10,11,11,13,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,11,10,11,11,13,13, 9,10,10,13,13,10,11,11, + 13,13,10,11,11,14,13,12,11,13,12,15,12,13,13,15, + 15, 9,10,10,12,13,10,11,10,13,13,10,11,11,13,13, + 12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9,10, 7, + 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, + 11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, + 11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, + 10,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, + 10,11,13,13,12,13,13,15,15,12,11,13,12,14, 9,10, + 10,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, + 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, + 13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, + 9,10,10,13,13,10,11,11,13,14,10,11,11,14,12,13, + 13,14,14,16,12,13,13,15,14, 9,10,10,13,13,10,11, + 10,14,13,10,11,11,13,14,12,14,13,16,14,13,13,13, + 14,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, + 15,14,12,15,12,16,14,15,15,17,16,11,12,12,14,15, + 11,13,11,15,14,12,13,13,15,16,13,15,12,17,13,14, + 15,15,16,16, 8, 9, 9,12,12, 9,10,10,13,13, 9,10, + 10,13,13,12,13,12,14,14,12,13,13,15,15, 9,10,10, + 13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,15, + 14,12,12,14,14,16, 9,10,10,13,13,10,11,11,13,14, + 10,11,11,14,13,13,13,13,15,15,13,14,13,16,14,11, + 12,12,14,14,12,13,13,16,15,11,12,13,14,15,14,15, + 15,16,16,14,13,15,13,17,11,12,12,14,15,12,13,13, + 15,16,11,13,12,15,15,14,15,14,16,16,14,15,12,17, + 13, +}; + +static const static_codebook _44u2__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u2__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u2__p4_0, + 0 +}; + +static const long _vq_quantlist__44u2__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u2__p5_0[] = { + 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 8, 8, 8, + 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, + 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, + 9, 9,10,11,12,12, 8, 8, 8, 9, 9,10,10,12,12,10, + 10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13, + 13, +}; + +static const static_codebook _44u2__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u2__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u2__p5_0, + 0 +}; + +static const long _vq_quantlist__44u2__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u2__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8,10,10,11,11,14,13, 4, 6, 5, + 8, 8, 9, 9,11,10,12,11,15,14, 4, 5, 6, 8, 8, 9, + 9,11,11,11,11,14,14, 6, 8, 8,10, 9,11,11,11,11, + 12,12,15,15, 6, 8, 8, 9, 9,11,11,11,12,12,12,15, + 15, 8,10,10,11,11,11,11,12,12,13,13,15,16, 8,10, + 10,11,11,11,11,12,12,13,13,16,16,10,11,11,12,12, + 12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,13, + 13,13,14,16,17,11,12,12,13,13,13,13,14,14,15,14, + 18,17,11,12,12,13,13,13,13,14,14,14,15,19,18,14, + 15,15,15,15,16,16,18,19,18,18, 0, 0,14,15,15,16, + 15,17,17,16,18,17,18, 0, 0, +}; + +static const static_codebook _44u2__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u2__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u2__p6_0, + 0 +}; + +static const long _vq_quantlist__44u2__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u2__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, + 6, 5, 6, 6, 5, 5, 6, 6, 6, +}; + +static const static_codebook _44u2__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u2__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u2__p6_1, + 0 +}; + +static const long _vq_quantlist__44u2__p7_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u2__p7_0[] = { + 1, 3, 2,12,12,12,12,12,12, 4,12,12,12,12,12,12, + 12,12, 5,12,12,12,12,12,12,12,12,12,12,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11, +}; + +static const static_codebook _44u2__p7_0 = { + 2, 81, + (long *)_vq_lengthlist__44u2__p7_0, + 1, -516612096, 1626677248, 4, 0, + (long *)_vq_quantlist__44u2__p7_0, + 0 +}; + +static const long _vq_quantlist__44u2__p7_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u2__p7_1[] = { + 1, 4, 4, 7, 6, 7, 6, 8, 7, 9, 7, 9, 8, 4, 7, 6, + 8, 8, 9, 8,10, 9,10,10,11,11, 4, 7, 7, 8, 8, 8, + 8, 9,10,11,11,11,11, 6, 8, 8,10,10,10,10,11,11, + 12,12,12,12, 7, 8, 8,10,10,10,10,11,11,12,12,13, + 13, 7, 9, 9,11,10,12,12,13,13,14,13,14,14, 7, 9, + 9,10,11,11,12,13,13,13,13,16,14, 9,10,10,12,12, + 13,13,14,14,15,16,15,16, 9,10,10,12,12,12,13,14, + 14,14,15,16,15,10,12,12,13,13,15,13,16,16,15,17, + 17,17,10,11,11,12,14,14,14,15,15,17,17,15,17,11, + 12,12,14,14,14,15,15,15,17,16,17,17,10,12,12,13, + 14,14,14,17,15,17,17,17,17, +}; + +static const static_codebook _44u2__p7_1 = { + 2, 169, + (long *)_vq_lengthlist__44u2__p7_1, + 1, -523010048, 1618608128, 4, 0, + (long *)_vq_quantlist__44u2__p7_1, + 0 +}; + +static const long _vq_quantlist__44u2__p7_2[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u2__p7_2[] = { + 2, 5, 5, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 5, 6, 6, + 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 5, 6, 6, 7, 7, 8, + 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 7, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, +}; + +static const static_codebook _44u2__p7_2 = { + 2, 169, + (long *)_vq_lengthlist__44u2__p7_2, + 1, -531103744, 1611661312, 4, 0, + (long *)_vq_quantlist__44u2__p7_2, + 0 +}; + +static const long _huff_lengthlist__44u2__short[] = { + 13,15,17,17,15,15,12,17,11, 9, 7,10,10, 9,12,17, + 10, 6, 3, 6, 5, 7,10,17,15,10, 6, 9, 8, 9,11,17, + 15, 8, 4, 7, 3, 5, 9,16,16,10, 5, 8, 4, 5, 8,16, + 13,11, 5, 8, 3, 3, 5,14,13,12, 7,10, 5, 5, 7,14, +}; + +static const static_codebook _huff_book__44u2__short = { + 2, 64, + (long *)_huff_lengthlist__44u2__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u3__long[] = { + 6, 9,13,12,14,11,10,13, 8, 4, 5, 7, 8, 7, 8,12, + 11, 4, 3, 5, 5, 7, 9,14,11, 6, 5, 6, 6, 6, 7,13, + 13, 7, 5, 6, 4, 5, 7,14,11, 7, 6, 6, 5, 5, 6,13, + 9, 7, 8, 6, 7, 5, 3, 9, 9,12,13,12,14,10, 6, 7, +}; + +static const static_codebook _huff_book__44u3__long = { + 2, 64, + (long *)_huff_lengthlist__44u3__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u3__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u3__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, + 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, + 11, 8,11,11, 8,11,11,11,13,14,11,14,14, 8,11,11, + 10,14,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, + 11,11,11,14,14,10,12,14, 8,11,11,11,14,14,11,14, + 13, +}; + +static const static_codebook _44u3__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u3__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u3__p1_0, + 0 +}; + +static const long _vq_quantlist__44u3__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u3__p2_0[] = { + 2, 5, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, + 8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 7, 8, + 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, + 8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, + 8, 8, 8,10,10, 8, 8,10, 7, 8, 8, 8,10,10, 8,10, + 9, +}; + +static const static_codebook _44u3__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u3__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u3__p2_0, + 0 +}; + +static const long _vq_quantlist__44u3__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u3__p3_0[] = { + 2, 4, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, + 9, 9,12,12, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, + 9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, + 13,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, + 11, 9,11,10,13,13,10,11,11,14,13, 8,10,10,14,13, + 10,11,11,15,14, 9,11,11,14,14,13,14,13,16,16,12, + 13,13,15,15, 8,10,10,13,14, 9,11,11,14,14,10,11, + 11,14,15,12,13,13,15,15,13,14,14,15,16, 5, 7, 7, + 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, + 14,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, + 9,11,11,13,13,12,12,13,15,15,11,12,13,15,16, 7, + 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, + 12,15,13,11,13,13,15,16, 9,12,11,15,14,11,12,13, + 16,15,11,13,13,15,16,14,14,15,17,16,13,15,16, 0, + 17, 9,11,11,15,15,10,13,12,15,15,11,13,13,15,16, + 13,15,13,16,15,14,16,15, 0,19, 5, 7, 7,10,10, 7, + 9, 9,11,11, 7, 9, 9,11,11,10,12,11,14,14,10,11, + 12,14,14, 7, 9, 9,12,12, 9,11,11,14,13, 9,10,11, + 12,13,11,13,13,16,16,11,12,13,13,16, 7, 9, 9,12, + 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,15, + 12,13,12,15,14, 9,11,11,15,14,11,13,12,16,16,10, + 12,12,15,15,13,15,15,17,19,13,14,15,16,17,10,12, + 12,15,15,11,13,13,16,16,11,13,13,15,16,13,15,15, + 0, 0,14,15,15,16,16, 8,10,10,14,14,10,12,12,15, + 15,10,12,11,15,16,14,15,15,19,20,13,14,14,18,16, + 9,11,11,15,15,11,13,13,17,16,11,13,13,16,16,15, + 17,17,20,20,14,15,16,17,20, 9,11,11,15,15,10,13, + 12,16,15,11,13,13,15,17,14,16,15,18, 0,14,16,15, + 18,20,12,14,14, 0, 0,14,14,16, 0, 0,13,16,15, 0, + 0,17,17,18, 0, 0,16,17,19,19, 0,12,14,14,18, 0, + 12,16,14, 0,17,13,15,15,18, 0,16,18,17, 0,17,16, + 18,17, 0, 0, 7,10,10,14,14,10,12,11,15,15,10,12, + 12,16,15,13,15,15,18, 0,14,15,15,17, 0, 9,11,11, + 15,15,11,13,13,16,16,11,12,13,16,16,14,15,16,17, + 17,14,16,16,16,18, 9,11,12,16,16,11,13,13,17,17, + 11,14,13,20,17,15,16,16,19, 0,15,16,17, 0,19,11, + 13,14,17,16,14,15,15,20,18,13,14,15,17,19,16,18, + 18, 0,20,16,16,19,17, 0,12,15,14,17, 0,14,15,15, + 18,19,13,16,15,19,20,15,18,18, 0,20,17, 0,16, 0, + 0, +}; + +static const static_codebook _44u3__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u3__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u3__p3_0, + 0 +}; + +static const long _vq_quantlist__44u3__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u3__p4_0[] = { + 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, + 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, + 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, + 10, 9,10, 9,12,11, 9,10,10,12,11, 9,10, 9,12,12, + 9,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, + 12,12,13,14, 9, 9,10,12,12, 9,10,10,12,12, 9,10, + 10,12,13,11,12,11,14,13,12,12,12,14,13, 5, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, + 12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, + 8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, + 13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15, + 15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, + 12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9, 9, 7, + 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, + 11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, + 11,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, + 10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, + 11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, + 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, + 13, 9,10,10,13,13,12,13,13,15,14,12,12,12,14,13, + 9,10,10,13,12,10,11,11,13,13,10,11,11,14,12,13, + 13,14,14,16,12,13,13,15,15, 9,10,10,13,13,10,11, + 10,14,13,10,11,11,13,14,12,14,13,15,14,13,13,13, + 15,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, + 14,14,12,15,12,16,14,15,15,17,15,11,12,12,14,14, + 11,13,11,15,14,12,13,13,15,15,13,15,12,17,13,14, + 15,15,16,16, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, + 10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, + 13,12,10,11,11,14,13,10,10,11,13,14,12,13,13,15, + 15,12,12,13,14,16, 9,10,10,13,13,10,11,11,13,14, + 10,11,11,14,13,12,13,13,14,15,13,14,13,16,14,11, + 12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15, + 15,16,16,13,13,15,13,16,11,12,12,14,15,12,13,13, + 14,15,11,13,12,15,14,14,15,15,16,16,14,15,12,16, + 13, +}; + +static const static_codebook _44u3__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u3__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u3__p4_0, + 0 +}; + +static const long _vq_quantlist__44u3__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u3__p5_0[] = { + 2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, + 10,10, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, + 9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,10, 7, 8, 8, + 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 10,10,11,10,11,11,12,12, 9,10,10,10,10,11,11,12, + 12, +}; + +static const static_codebook _44u3__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u3__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u3__p5_0, + 0 +}; + +static const long _vq_quantlist__44u3__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u3__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,13,14, 4, 6, 5, + 8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, + 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, + 12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, + 15, 8, 9, 9,11,10,11,11,12,12,13,13,15,16, 8, 9, + 9,10,11,11,11,12,12,13,13,16,16,10,10,11,11,11, + 12,12,13,13,13,14,17,16, 9,10,11,12,11,12,12,13, + 13,13,13,16,18,11,12,11,12,12,13,13,13,14,15,14, + 17,17,11,11,12,12,12,13,13,13,14,14,15,18,17,14, + 15,15,15,15,16,16,17,17,19,18, 0,20,14,15,14,15, + 15,16,16,16,17,18,16,20,18, +}; + +static const static_codebook _44u3__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u3__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u3__p6_0, + 0 +}; + +static const long _vq_quantlist__44u3__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u3__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, + 6, 5, 6, 6, 5, 5, 6, 6, 6, +}; + +static const static_codebook _44u3__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u3__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u3__p6_1, + 0 +}; + +static const long _vq_quantlist__44u3__p7_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u3__p7_0[] = { + 1, 3, 3,10,10,10,10,10,10, 4,10,10,10,10,10,10, + 10,10, 4,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, +}; + +static const static_codebook _44u3__p7_0 = { + 2, 81, + (long *)_vq_lengthlist__44u3__p7_0, + 1, -515907584, 1627381760, 4, 0, + (long *)_vq_quantlist__44u3__p7_0, + 0 +}; + +static const long _vq_quantlist__44u3__p7_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u3__p7_1[] = { + 1, 4, 4, 6, 6, 7, 6, 8, 7, 9, 8,10, 9,11,11, 4, + 7, 7, 8, 7, 9, 9,10,10,11,11,11,11,12,12, 4, 7, + 7, 7, 7, 9, 9,10,10,11,11,12,12,12,11, 6, 8, 8, + 9, 9,10,10,11,11,12,12,13,12,13,13, 6, 8, 8, 9, + 9,10,11,11,11,12,12,13,14,13,13, 8, 9, 9,11,11, + 12,12,12,13,14,13,14,14,14,15, 8, 9, 9,11,11,11, + 12,13,14,13,14,15,17,14,15, 9,10,10,12,12,13,13, + 13,14,15,15,15,16,16,16, 9,11,11,12,12,13,13,14, + 14,14,15,16,16,16,16,10,12,12,13,13,14,14,15,15, + 15,16,17,17,17,17,10,12,11,13,13,15,14,15,14,16, + 17,16,16,16,16,11,13,12,14,14,14,14,15,16,17,16, + 17,17,17,17,11,13,12,14,14,14,15,17,16,17,17,17, + 17,17,17,12,13,13,15,16,15,16,17,17,16,16,17,17, + 17,17,12,13,13,15,15,15,16,17,17,17,16,17,16,17, + 17, +}; + +static const static_codebook _44u3__p7_1 = { + 2, 225, + (long *)_vq_lengthlist__44u3__p7_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__44u3__p7_1, + 0 +}; + +static const long _vq_quantlist__44u3__p7_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u3__p7_2[] = { + 2, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, + 9,10, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, + 9,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10, 7, 8, 8, 9, 8, 9, 9, 9, 9,10, + 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9,10, + 9,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, + 9,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, + 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,10, + 11, +}; + +static const static_codebook _44u3__p7_2 = { + 2, 289, + (long *)_vq_lengthlist__44u3__p7_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u3__p7_2, + 0 +}; + +static const long _huff_lengthlist__44u3__short[] = { + 14,14,14,15,13,15,12,16,10, 8, 7, 9, 9, 8,12,16, + 10, 5, 4, 6, 5, 6, 9,16,14, 8, 6, 8, 7, 8,10,16, + 14, 7, 4, 6, 3, 5, 8,16,15, 9, 5, 7, 4, 4, 7,16, + 13,10, 6, 7, 4, 3, 4,13,13,12, 7, 9, 5, 5, 6,12, +}; + +static const static_codebook _huff_book__44u3__short = { + 2, 64, + (long *)_huff_lengthlist__44u3__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u4__long[] = { + 3, 8,12,12,13,12,11,13, 5, 4, 6, 7, 8, 8, 9,13, + 9, 5, 4, 5, 5, 7, 9,13, 9, 6, 5, 6, 6, 7, 8,12, + 12, 7, 5, 6, 4, 5, 8,13,11, 7, 6, 6, 5, 5, 6,12, + 10, 8, 8, 7, 7, 5, 3, 8,10,12,13,12,12, 9, 6, 7, +}; + +static const static_codebook _huff_book__44u4__long = { + 2, 64, + (long *)_huff_lengthlist__44u4__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u4__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u4__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, + 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, + 11, 8,11,11, 8,11,11,11,13,14,11,15,14, 8,11,11, + 10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, + 11,11,11,15,14,10,12,14, 8,11,11,11,14,14,11,14, + 13, +}; + +static const static_codebook _44u4__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u4__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u4__p1_0, + 0 +}; + +static const long _vq_quantlist__44u4__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u4__p2_0[] = { + 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, + 8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, + 8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, + 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, + 9, +}; + +static const static_codebook _44u4__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u4__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u4__p2_0, + 0 +}; + +static const long _vq_quantlist__44u4__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u4__p3_0[] = { + 2, 4, 4, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, + 10, 9,12,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, + 9,11,11, 7, 9, 9,11,11,10,12,11,14,14, 9,10,11, + 13,14, 5, 7, 7,10,10, 7, 9, 9,11,11, 7, 9, 9,11, + 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, + 10,12,12,15,14, 9,11,11,15,14,13,14,14,17,17,12, + 14,14,16,16, 8,10,10,14,14, 9,11,11,14,15,10,12, + 12,14,15,12,14,13,16,16,13,14,15,15,18, 4, 7, 7, + 10,10, 7, 9, 9,12,11, 7, 9, 9,11,12,10,12,11,15, + 14,10,11,12,14,15, 7, 9, 9,12,12, 9,11,12,13,13, + 9,11,12,13,13,12,13,13,15,16,11,13,13,15,16, 7, + 9, 9,12,12, 9,11,10,13,12, 9,11,12,13,14,11,13, + 12,16,14,12,13,13,15,16,10,12,12,16,15,11,13,13, + 17,16,11,13,13,17,16,14,15,15,17,17,14,16,16,18, + 20, 9,11,11,15,16,11,13,12,16,16,11,13,13,16,17, + 14,15,14,18,16,14,16,16,17,20, 5, 7, 7,10,10, 7, + 9, 9,12,11, 7, 9,10,11,12,10,12,11,15,15,10,12, + 12,14,14, 7, 9, 9,12,12, 9,12,11,14,13, 9,10,11, + 12,13,12,13,14,16,16,11,12,13,14,16, 7, 9, 9,12, + 12, 9,12,11,13,13, 9,12,11,13,13,11,13,13,16,16, + 12,13,13,16,15, 9,11,11,16,14,11,13,13,16,16,11, + 12,13,16,16,14,16,16,17,17,13,14,15,16,17,10,12, + 12,15,15,11,13,13,16,17,11,13,13,16,16,14,16,15, + 19,19,14,15,15,17,18, 8,10,10,14,14,10,12,12,15, + 15,10,12,12,16,16,14,16,15,20,19,13,15,15,17,16, + 9,12,12,16,16,11,13,13,16,18,11,14,13,16,17,16, + 17,16,20, 0,15,16,18,18,20, 9,11,11,15,15,11,14, + 12,17,16,11,13,13,17,17,15,17,15,20,20,14,16,16, + 17, 0,13,15,14,18,16,14,15,16, 0,18,14,16,16, 0, + 0,18,16, 0, 0,20,16,18,18, 0, 0,12,14,14,17,18, + 13,15,14,20,18,14,16,15,19,19,16,20,16, 0,18,16, + 19,17,19, 0, 8,10,10,14,14,10,12,12,16,15,10,12, + 12,16,16,13,15,15,18,17,14,16,16,19, 0, 9,11,11, + 16,15,11,14,13,18,17,11,12,13,17,18,14,17,16,18, + 18,15,16,17,18,18, 9,12,12,16,16,11,13,13,16,18, + 11,14,13,17,17,15,16,16,18,20,16,17,17,20,20,12, + 14,14,18,17,14,16,16, 0,19,13,14,15,18, 0,16, 0, + 0, 0, 0,16,16, 0,19,20,13,15,14, 0, 0,14,16,16, + 18,19,14,16,15, 0,20,16,20,18, 0,20,17,20,17, 0, + 0, +}; + +static const static_codebook _44u4__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u4__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u4__p3_0, + 0 +}; + +static const long _vq_quantlist__44u4__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u4__p4_0[] = { + 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, + 9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, + 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, + 10, 9,10,10,12,11, 9,10,10,12,11, 9,10, 9,12,12, + 9,10,10,13,12, 9,10,10,12,12,12,12,12,14,14,11, + 12,12,13,14, 9, 9,10,12,12, 9,10,10,13,13, 9,10, + 10,12,13,11,12,12,14,13,11,12,12,14,14, 5, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, + 12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, + 8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, + 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, + 13,14,10,11,11,14,13,12,12,13,12,15,12,13,13,15, + 15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, + 12,13,11,15,13,13,13,13,15,15, 5, 7, 7, 9, 9, 7, + 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, + 11,12,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, + 11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, + 11,12,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, + 10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, + 11,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, + 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, + 13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, + 9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13, + 13,14,14,16,13,13,13,15,15, 9,10,10,13,13,10,11, + 10,14,13,10,11,11,13,14,12,14,13,16,14,12,13,13, + 14,15,11,12,12,15,14,11,12,13,14,15,12,13,13,16, + 15,14,12,15,12,16,14,15,15,16,16,11,12,12,14,14, + 11,13,12,15,14,12,13,13,15,16,13,15,13,17,13,14, + 15,15,16,17, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, + 10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, + 13,12,10,11,11,14,13,10,10,11,13,14,13,13,13,15, + 15,12,13,14,14,16, 9,10,10,13,13,10,11,11,13,14, + 10,11,11,14,14,13,13,13,15,15,13,14,13,16,14,11, + 12,12,15,14,12,13,13,16,15,11,12,13,14,15,14,15, + 15,17,16,13,13,15,13,16,11,12,13,14,15,13,13,13, + 15,16,11,13,12,15,14,14,15,15,16,16,14,15,12,17, + 13, +}; + +static const static_codebook _44u4__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u4__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u4__p4_0, + 0 +}; + +static const long _vq_quantlist__44u4__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u4__p5_0[] = { + 2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, + 10, 9, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, + 9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,11, 7, 8, 8, + 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, + 10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, + 12, +}; + +static const static_codebook _44u4__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u4__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u4__p5_0, + 0 +}; + +static const long _vq_quantlist__44u4__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u4__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9,11,10,13,13, 4, 6, 5, + 8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, + 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, + 12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, + 15, 8, 9, 9,11,10,11,11,12,12,13,13,16,16, 8, 9, + 9,10,10,11,11,12,12,13,13,16,16,10,10,10,12,11, + 12,12,13,13,14,14,16,16,10,10,10,11,12,12,12,13, + 13,13,14,16,17,11,12,11,12,12,13,13,14,14,15,14, + 18,17,11,11,12,12,12,13,13,14,14,14,15,19,18,14, + 15,14,15,15,17,16,17,17,17,17,21, 0,14,15,15,16, + 16,16,16,17,17,18,17,20,21, +}; + +static const static_codebook _44u4__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u4__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u4__p6_0, + 0 +}; + +static const long _vq_quantlist__44u4__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u4__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, + 6, 5, 6, 6, 5, 5, 6, 6, 6, +}; + +static const static_codebook _44u4__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u4__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u4__p6_1, + 0 +}; + +static const long _vq_quantlist__44u4__p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u4__p7_0[] = { + 1, 3, 3,12,12,12,12,12,12,12,12,12,12, 3,12,11, + 12,12,12,12,12,12,12,12,12,12, 4,11,10,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11, +}; + +static const static_codebook _44u4__p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44u4__p7_0, + 1, -514332672, 1627381760, 4, 0, + (long *)_vq_quantlist__44u4__p7_0, + 0 +}; + +static const long _vq_quantlist__44u4__p7_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u4__p7_1[] = { + 1, 4, 4, 6, 6, 7, 7, 9, 8,10, 8,10, 9,11,11, 4, + 7, 6, 8, 7, 9, 9,10,10,11,10,11,10,12,10, 4, 6, + 7, 8, 8, 9, 9,10,10,11,11,11,11,12,12, 6, 8, 8, + 10, 9,11,10,12,11,12,12,12,12,13,13, 6, 8, 8,10, + 10,10,11,11,11,12,12,13,12,13,13, 8, 9, 9,11,11, + 12,11,12,12,13,13,13,13,13,13, 8, 9, 9,11,11,11, + 12,12,12,13,13,13,13,13,13, 9,10,10,12,11,13,13, + 13,13,14,13,13,14,14,14, 9,10,11,11,12,12,13,13, + 13,13,13,14,15,14,14,10,11,11,12,12,13,13,14,14, + 14,14,14,15,16,16,10,11,11,12,13,13,13,13,15,14, + 14,15,16,15,16,10,12,12,13,13,14,14,14,15,15,15, + 15,15,15,16,11,12,12,13,13,14,14,14,15,15,15,16, + 15,17,16,11,12,12,13,13,13,15,15,14,16,16,16,16, + 16,17,11,12,12,13,13,14,14,15,14,15,15,17,17,16, + 16, +}; + +static const static_codebook _44u4__p7_1 = { + 2, 225, + (long *)_vq_lengthlist__44u4__p7_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__44u4__p7_1, + 0 +}; + +static const long _vq_quantlist__44u4__p7_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u4__p7_2[] = { + 2, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, + 9,10, 9,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10, + 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,11,10,10,10, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, + 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9,10, 9,10,10,10,10,10,10,10,10,10,10,11,10,10, + 10, +}; + +static const static_codebook _44u4__p7_2 = { + 2, 289, + (long *)_vq_lengthlist__44u4__p7_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u4__p7_2, + 0 +}; + +static const long _huff_lengthlist__44u4__short[] = { + 14,17,15,17,16,14,13,16,10, 7, 7,10,13,10,15,16, + 9, 4, 4, 6, 5, 7, 9,16,12, 8, 7, 8, 8, 8,11,16, + 14, 7, 4, 6, 3, 5, 8,15,13, 8, 5, 7, 4, 5, 7,16, + 12, 9, 6, 8, 3, 3, 5,16,14,13, 7,10, 5, 5, 7,15, +}; + +static const static_codebook _huff_book__44u4__short = { + 2, 64, + (long *)_huff_lengthlist__44u4__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u5__long[] = { + 3, 8,13,12,14,12,16,11,13,14, 5, 4, 5, 6, 7, 8, + 10, 9,12,15,10, 5, 5, 5, 6, 8, 9, 9,13,15,10, 5, + 5, 6, 6, 7, 8, 8,11,13,12, 7, 5, 6, 4, 6, 7, 7, + 11,14,11, 7, 7, 6, 6, 6, 7, 6,10,14,14, 9, 8, 8, + 6, 7, 7, 7,11,16,11, 8, 8, 7, 6, 6, 7, 4, 7,12, + 10,10,12,10,10, 9,10, 5, 6, 9,10,12,15,13,14,14, + 14, 8, 7, 8, +}; + +static const static_codebook _huff_book__44u5__long = { + 2, 100, + (long *)_huff_lengthlist__44u5__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u5__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u5__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, + 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, + 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, + 10,13,11,10,13,13, 4, 8, 8, 8,11,10, 8,10,10, 7, + 10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, + 12, +}; + +static const static_codebook _44u5__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u5__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u5__p1_0, + 0 +}; + +static const long _vq_quantlist__44u5__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u5__p2_0[] = { + 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 7, + 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, + 8, 7, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, + 9, +}; + +static const static_codebook _44u5__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u5__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u5__p2_0, + 0 +}; + +static const long _vq_quantlist__44u5__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u5__p3_0[] = { + 2, 4, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, + 10, 9,13,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, + 9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, + 13,14, 5, 7, 7, 9,10, 7, 9, 8,11,11, 7, 9, 9,11, + 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,13,13, + 10,11,11,15,14, 9,11,11,14,14,13,14,14,17,16,12, + 13,13,15,16, 8,10,10,13,13, 9,11,11,14,15,10,11, + 11,14,15,12,14,13,16,16,13,15,14,15,17, 5, 7, 7, + 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14, + 14,10,11,12,14,14, 7, 9, 9,12,11, 9,11,11,13,13, + 9,11,11,13,13,12,13,13,15,16,11,12,13,15,16, 6, + 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,14,11,13, + 12,16,14,11,13,13,16,17,10,12,11,15,15,11,13,13, + 16,16,11,13,13,17,16,14,15,15,17,17,14,16,16,17, + 18, 9,11,11,14,15,10,12,12,15,15,11,13,13,16,17, + 13,15,13,17,15,14,15,16,18, 0, 5, 7, 7,10,10, 7, + 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, + 12,14,15, 6, 9, 9,12,11, 9,11,11,13,13, 8,10,11, + 12,13,11,13,13,16,15,11,12,13,14,15, 7, 9, 9,11, + 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,16, + 11,13,13,15,14, 9,11,11,15,14,11,13,13,17,15,10, + 12,12,15,15,14,16,16,17,17,13,13,15,15,17,10,11, + 12,15,15,11,13,13,16,16,11,13,13,15,15,14,15,15, + 18,18,14,15,15,17,17, 8,10,10,13,13,10,12,11,15, + 15,10,11,12,15,15,14,15,15,18,18,13,14,14,18,18, + 9,11,11,15,16,11,13,13,17,17,11,13,13,16,16,15, + 15,16,17, 0,14,15,17, 0, 0, 9,11,11,15,15,10,13, + 12,18,16,11,13,13,15,16,14,16,15,20,20,14,15,16, + 17, 0,13,14,14,20,16,14,15,16,19,18,14,15,15,19, + 0,18,16, 0,20,20,16,18,18, 0, 0,12,14,14,18,18, + 13,15,14,18,16,14,15,16,18,20,16,19,16, 0,17,17, + 18,18,19, 0, 8,10,10,14,14,10,11,11,14,15,10,11, + 12,15,15,13,15,14,19,17,13,15,15,17, 0, 9,11,11, + 16,15,11,13,13,16,16,10,12,13,15,17,14,16,16,18, + 18,14,15,15,18, 0, 9,11,11,15,15,11,13,13,16,17, + 11,13,13,18,17,14,18,16,18,18,15,17,17,18, 0,12, + 14,14,18,18,14,15,15,20, 0,13,14,15,17, 0,16,18, + 17, 0, 0,16,16, 0,17,20,12,14,14,18,18,14,16,15, + 0,18,14,16,15,18, 0,16,19,17, 0, 0,17,18,16, 0, + 0, +}; + +static const static_codebook _44u5__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u5__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u5__p3_0, + 0 +}; + +static const long _vq_quantlist__44u5__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u5__p4_0[] = { + 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, + 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, + 8,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, + 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, + 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,12,11, + 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, + 11,12,13,14, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, + 10,12,12,11,12,11,14,13,11,12,12,13,13, 5, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, + 12, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,10,11, + 8, 9, 9,11,11,10,10,11,11,13,10,11,11,12,13, 6, + 7, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, + 12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14, + 15, 9,10,10,12,12, 9,11,10,13,12,10,11,11,13,13, + 11,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9, 9, 7, + 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, + 10,12,12, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 8, 9, + 10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 8,11,10,10,11,11,13,12, + 10,11,10,13,11, 9,10,10,12,12,10,11,11,13,12, 9, + 10,10,12,13,12,13,13,14,15,11,11,13,12,14, 9,10, + 10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13, + 14,14,12,13,11,14,12, 8, 9, 9,12,12, 9,10,10,12, + 12, 9,10,10,12,12,12,12,12,14,14,11,12,12,14,13, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, + 12,13,14,15,12,13,13,15,14, 9,10,10,12,12,10,11, + 10,13,12,10,11,11,12,13,12,13,12,15,13,12,13,13, + 14,15,11,12,12,14,13,11,12,12,14,15,12,13,13,15, + 14,13,12,14,12,16,13,14,14,15,15,11,11,12,14,14, + 11,12,11,14,13,12,13,13,14,15,13,14,12,16,12,14, + 14,15,16,16, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, + 10,12,13,11,12,12,13,13,12,12,13,14,14, 9,10,10, + 12,12,10,11,10,13,12,10,10,11,12,13,12,13,13,15, + 14,12,12,13,13,15, 9,10,10,12,13,10,11,11,12,13, + 10,11,11,13,13,12,13,13,14,15,12,13,12,15,14,11, + 12,11,14,13,12,13,13,15,14,11,11,12,13,14,14,15, + 14,16,15,13,12,14,13,16,11,12,12,13,14,12,13,13, + 14,15,11,12,11,14,14,14,14,14,15,16,13,15,12,16, + 12, +}; + +static const static_codebook _44u5__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u5__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u5__p4_0, + 0 +}; + +static const long _vq_quantlist__44u5__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u5__p5_0[] = { + 2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, + 11,10, 3, 5, 5, 7, 8, 8, 8,10,11, 6, 8, 7,10, 9, + 10,10,11,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, + 10,10,11,11,13,12, 8, 8, 9, 9,10,11,11,12,13,10, + 11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14, + 14, +}; + +static const static_codebook _44u5__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u5__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u5__p5_0, + 0 +}; + +static const long _vq_quantlist__44u5__p6_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u5__p6_0[] = { + 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, + 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, + 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, + 8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, + 9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,11,10,11, + 11, +}; + +static const static_codebook _44u5__p6_0 = { + 2, 81, + (long *)_vq_lengthlist__44u5__p6_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u5__p6_0, + 0 +}; + +static const long _vq_quantlist__44u5__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u5__p7_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,11,10, 7, + 11,10, 5, 9, 9, 7,10,10, 8,10,11, 4, 9, 9, 9,12, + 12, 9,12,12, 8,12,12,11,12,12,10,12,13, 7,12,12, + 11,12,12,10,12,13, 4, 9, 9, 9,12,12, 9,12,12, 7, + 12,11,10,13,13,11,12,12, 7,12,12,10,13,13,11,12, + 12, +}; + +static const static_codebook _44u5__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44u5__p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44u5__p7_0, + 0 +}; + +static const long _vq_quantlist__44u5__p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u5__p7_1[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, + 8, 8, 9, 8, 8, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 8, + 9, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 6, 7, 7, 8, + 8, 9, 9, 9, 9, 9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, + 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, + 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, + 9, 9, 9, 9, 9,10,10,10,10, +}; + +static const static_codebook _44u5__p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44u5__p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u5__p7_1, + 0 +}; + +static const long _vq_quantlist__44u5__p8_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u5__p8_0[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, + 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, + 11, 6, 8, 7, 9, 9,10,10,11,11,13,12, 6, 8, 8, 9, + 9,10,10,11,11,12,13, 8, 9, 9,10,10,12,12,13,12, + 14,13, 8, 9, 9,10,10,12,12,13,13,14,14, 9,11,11, + 12,12,13,13,14,14,15,14, 9,11,11,12,12,13,13,14, + 14,15,14,11,12,12,13,13,14,14,15,14,15,14,11,11, + 12,13,13,14,14,14,14,15,15, +}; + +static const static_codebook _44u5__p8_0 = { + 2, 121, + (long *)_vq_lengthlist__44u5__p8_0, + 1, -524582912, 1618345984, 4, 0, + (long *)_vq_quantlist__44u5__p8_0, + 0 +}; + +static const long _vq_quantlist__44u5__p8_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u5__p8_1[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 6, + 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, + 8, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 6, 6, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44u5__p8_1 = { + 2, 121, + (long *)_vq_lengthlist__44u5__p8_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u5__p8_1, + 0 +}; + +static const long _vq_quantlist__44u5__p9_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u5__p9_0[] = { + 1, 3, 2,12,10,13,13,13,13,13,13,13,13, 4, 9, 9, + 13,13,13,13,13,13,13,13,13,13, 5,10, 9,13,13,13, + 13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, + 13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12, +}; + +static const static_codebook _44u5__p9_0 = { + 2, 169, + (long *)_vq_lengthlist__44u5__p9_0, + 1, -514332672, 1627381760, 4, 0, + (long *)_vq_quantlist__44u5__p9_0, + 0 +}; + +static const long _vq_quantlist__44u5__p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u5__p9_1[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 7, 8, 7, 9, 8, 9, 9, 4, + 7, 6, 9, 8,10,10, 9, 8, 9, 9, 9, 9, 9, 8, 5, 6, + 6, 8, 9,10,10, 9, 9, 9,10,10,10,10,11, 7, 8, 8, + 10,10,11,11,10,10,11,11,11,12,11,11, 7, 8, 8,10, + 10,11,11,10,10,11,11,12,11,11,11, 8, 9, 9,11,11, + 12,12,11,11,12,11,12,12,12,12, 8, 9,10,11,11,12, + 12,11,11,12,12,12,12,12,12, 8, 9, 9,10,10,12,11, + 12,12,12,12,12,12,12,13, 8, 9, 9,11,11,11,11,12, + 12,12,12,13,12,13,13, 9,10,10,11,11,12,12,12,13, + 12,13,13,13,14,13, 9,10,10,11,11,12,12,12,13,13, + 12,13,13,14,13, 9,11,10,12,11,13,12,12,13,13,13, + 13,13,13,14, 9,10,10,12,12,12,12,12,13,13,13,13, + 13,14,14,10,11,11,12,12,12,13,13,13,14,14,13,14, + 14,14,10,11,11,12,12,12,12,13,12,13,14,13,14,14, + 14, +}; + +static const static_codebook _44u5__p9_1 = { + 2, 225, + (long *)_vq_lengthlist__44u5__p9_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__44u5__p9_1, + 0 +}; + +static const long _vq_quantlist__44u5__p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u5__p9_2[] = { + 2, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9,10, 9,10,10,10, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, + 9, 9,10, 9,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10, 9,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, + 9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, 9, + 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, + 9,10, 9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 9,10,10, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, + 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _44u5__p9_2 = { + 2, 289, + (long *)_vq_lengthlist__44u5__p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u5__p9_2, + 0 +}; + +static const long _huff_lengthlist__44u5__short[] = { + 4,10,17,13,17,13,17,17,17,17, 3, 6, 8, 9,11, 9, + 15,12,16,17, 6, 5, 5, 7, 7, 8,10,11,17,17, 7, 8, + 7, 9, 9,10,13,13,17,17, 8, 6, 5, 7, 4, 7, 5, 8, + 14,17, 9, 9, 8, 9, 7, 9, 8,10,16,17,12,10, 7, 8, + 4, 7, 4, 7,16,17,12,11, 9,10, 6, 9, 5, 7,14,17, + 14,13,10,15, 4, 8, 3, 5,14,17,17,14,11,15, 6,10, + 6, 8,15,17, +}; + +static const static_codebook _huff_book__44u5__short = { + 2, 100, + (long *)_huff_lengthlist__44u5__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u6__long[] = { + 3, 9,14,13,14,13,16,12,13,14, 5, 4, 6, 6, 8, 9, + 11,10,12,15,10, 5, 5, 6, 6, 8,10,10,13,16,10, 6, + 6, 6, 6, 8, 9, 9,12,14,13, 7, 6, 6, 4, 6, 6, 7, + 11,14,10, 7, 7, 7, 6, 6, 6, 7,10,13,15,10, 9, 8, + 5, 6, 5, 6,10,14,10, 9, 8, 8, 6, 6, 5, 4, 6,11, + 11,11,12,11,10, 9, 9, 5, 5, 9,10,12,15,13,13,13, + 13, 8, 7, 7, +}; + +static const static_codebook _huff_book__44u6__long = { + 2, 100, + (long *)_huff_lengthlist__44u6__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u6__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u6__p1_0[] = { + 1, 4, 4, 4, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, + 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, + 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, + 10,13,11,10,13,13, 5, 8, 8, 8,11,10, 8,10,10, 7, + 10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, + 12, +}; + +static const static_codebook _44u6__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u6__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u6__p1_0, + 0 +}; + +static const long _vq_quantlist__44u6__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u6__p2_0[] = { + 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 7, 7, + 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, + 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, + 9, +}; + +static const static_codebook _44u6__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u6__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u6__p2_0, + 0 +}; + +static const long _vq_quantlist__44u6__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u6__p3_0[] = { + 2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, + 9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, + 9,11,11, 7, 8, 9,11,11,10,11,11,14,14, 9,10,11, + 13,14, 5, 7, 7, 9,10, 6, 9, 8,11,11, 7, 9, 9,11, + 11, 9,11,10,14,13,10,11,11,14,13, 8,10,10,13,13, + 10,11,11,15,15, 9,11,11,14,14,13,14,14,17,16,12, + 13,14,16,16, 8,10,10,13,14, 9,11,11,14,15,10,11, + 12,14,15,12,14,13,16,15,13,14,14,15,17, 5, 7, 7, + 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,14, + 14,10,11,11,14,14, 7, 9, 9,12,11, 9,11,11,13,13, + 9,11,11,13,13,11,13,13,14,15,11,12,13,15,16, 6, + 9, 9,11,12, 8,11,10,13,12, 9,11,11,13,14,11,13, + 12,16,14,11,13,13,15,16,10,12,11,14,15,11,13,13, + 15,17,11,13,13,17,16,15,15,16,17,16,14,15,16,18, + 0, 9,11,11,14,15,10,12,12,16,15,11,13,13,16,16, + 13,15,14,18,15,14,16,16, 0, 0, 5, 7, 7,10,10, 7, + 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, + 12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, + 12,13,11,13,13,16,15,11,12,13,14,16, 7, 9, 9,11, + 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,16,15, + 11,13,12,15,15, 9,11,11,15,14,11,13,13,17,16,10, + 12,13,15,16,14,16,16, 0,18,14,14,15,15,17,10,11, + 12,15,15,11,13,13,16,16,11,13,13,16,16,14,16,16, + 19,17,14,15,15,17,17, 8,10,10,14,14,10,12,11,15, + 15,10,11,12,16,15,14,15,15,18,20,13,14,16,17,18, + 9,11,11,15,16,11,13,13,17,17,11,13,13,17,16,15, + 16,16, 0, 0,15,16,16, 0, 0, 9,11,11,15,15,10,13, + 12,17,15,11,13,13,17,16,15,17,15,20,19,15,16,16, + 19, 0,13,15,14, 0,17,14,15,16, 0,20,15,16,16, 0, + 19,17,18, 0, 0, 0,16,17,18, 0, 0,12,14,14,19,18, + 13,15,14, 0,17,14,15,16,19,19,16,18,16, 0,19,19, + 20,17,20, 0, 8,10,10,13,14,10,11,11,15,15,10,12, + 12,15,16,14,15,14,19,16,14,15,15, 0,18, 9,11,11, + 16,15,11,13,13, 0,16,11,12,13,16,17,14,16,17, 0, + 19,15,16,16,18, 0, 9,11,11,15,16,11,13,13,16,16, + 11,14,13,18,17,15,16,16,18,20,15,17,19, 0, 0,12, + 14,14,17,17,14,16,15, 0, 0,13,14,15,19, 0,16,18, + 20, 0, 0,16,16,18,18, 0,12,14,14,17,20,14,16,16, + 19, 0,14,16,14, 0,20,16,20,17, 0, 0,17, 0,15, 0, + 19, +}; + +static const static_codebook _44u6__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u6__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u6__p3_0, + 0 +}; + +static const long _vq_quantlist__44u6__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u6__p4_0[] = { + 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, + 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 7, 8, 9,10, 9,10,10,11,11, 9, 9,10, + 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, + 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, + 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,13,11, + 11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,11,13,12,11,12,12,13,13, 5, 7, 7, + 9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, + 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 8, 9,11,11, + 8, 9, 9,11,11,10,10,11,12,13,10,10,11,12,12, 6, + 7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, + 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, + 13,13,10,11,11,12,13,12,12,12,13,14,12,12,13,14, + 14, 9,10,10,12,12, 9,10,10,13,12,10,11,11,13,13, + 11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, + 8, 7,10,10, 7, 8, 8,10,10, 9,10,10,12,11, 9,10, + 10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, + 10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,10,13,12, + 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,12, 9, + 10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, + 10,12,12,10,11,11,13,13,10,11,10,13,12,12,12,12, + 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, + 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,14, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, + 12,13,14,15,12,12,13,14,14, 9,10,10,12,12, 9,11, + 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13, + 14,15,11,12,12,14,13,11,12,12,14,14,12,13,13,14, + 14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13, + 11,12,11,14,13,12,12,13,14,15,12,14,12,15,12,13, + 14,15,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,12,14,13,11,12,12,13,13, 9,10,10, + 12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, + 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, + 10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, + 11,11,13,13,12,13,12,14,14,11,11,12,13,14,14,14, + 14,16,15,12,12,14,12,15,11,12,12,13,14,12,13,13, + 14,15,11,12,12,14,14,13,14,14,16,16,13,14,13,16, + 13, +}; + +static const static_codebook _44u6__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u6__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u6__p4_0, + 0 +}; + +static const long _vq_quantlist__44u6__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u6__p5_0[] = { + 2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, + 11,11, 3, 5, 5, 7, 8, 8, 8,11,11, 6, 8, 7, 9, 9, + 10, 9,12,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, + 10, 9,12,11,13,13, 8, 8, 9, 9,10,11,12,13,13,10, + 11,11,12,12,13,13,14,14,10,10,11,11,12,13,13,14, + 14, +}; + +static const static_codebook _44u6__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u6__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u6__p5_0, + 0 +}; + +static const long _vq_quantlist__44u6__p6_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u6__p6_0[] = { + 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, + 9, 9, 4, 4, 5, 6, 6, 7, 8, 9, 9, 5, 6, 6, 7, 7, + 8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, + 8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,10,11, 9, + 9, 9,10,10,11,11,12,11, 9, 9, 9,10,10,11,11,11, + 12, +}; + +static const static_codebook _44u6__p6_0 = { + 2, 81, + (long *)_vq_lengthlist__44u6__p6_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u6__p6_0, + 0 +}; + +static const long _vq_quantlist__44u6__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u6__p7_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 7,10,10, 8, + 10,10, 5, 8, 9, 7,10,10, 7,10, 9, 4, 8, 8, 9,11, + 11, 8,11,11, 7,11,11,10,10,13,10,13,13, 7,11,11, + 10,13,12,10,13,13, 5, 9, 8, 8,11,11, 9,11,11, 7, + 11,11,10,13,13,10,12,13, 7,11,11,10,13,13, 9,13, + 10, +}; + +static const static_codebook _44u6__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44u6__p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44u6__p7_0, + 0 +}; + +static const long _vq_quantlist__44u6__p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u6__p7_1[] = { + 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 6, + 8, 8, 8, 8, 8, 8, 4, 5, 5, 6, 7, 8, 8, 8, 8, 8, + 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, +}; + +static const static_codebook _44u6__p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44u6__p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u6__p7_1, + 0 +}; + +static const long _vq_quantlist__44u6__p8_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u6__p8_0[] = { + 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, + 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, + 11, 6, 8, 8, 9, 9,10,10,11,11,12,12, 6, 8, 8, 9, + 9,10,10,11,11,12,12, 8, 9, 9,10,10,11,11,12,12, + 13,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,10,10, + 11,11,13,13,13,13,15,14, 9,10,10,12,11,12,13,13, + 13,14,15,11,12,12,13,13,13,13,15,14,15,15,11,11, + 12,13,13,14,14,14,15,15,15, +}; + +static const static_codebook _44u6__p8_0 = { + 2, 121, + (long *)_vq_lengthlist__44u6__p8_0, + 1, -524582912, 1618345984, 4, 0, + (long *)_vq_quantlist__44u6__p8_0, + 0 +}; + +static const long _vq_quantlist__44u6__p8_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u6__p8_1[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 7, + 7, 7, 8, 7, 8, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, + 8, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 6, 6, 7, 7, + 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44u6__p8_1 = { + 2, 121, + (long *)_vq_lengthlist__44u6__p8_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u6__p8_1, + 0 +}; + +static const long _vq_quantlist__44u6__p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u6__p9_0[] = { + 1, 3, 2, 9, 8,15,15,15,15,15,15,15,15,15,15, 4, + 8, 9,13,14,14,14,14,14,14,14,14,14,14,14, 5, 8, + 9,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14, +}; + +static const static_codebook _44u6__p9_0 = { + 2, 225, + (long *)_vq_lengthlist__44u6__p9_0, + 1, -514071552, 1627381760, 4, 0, + (long *)_vq_quantlist__44u6__p9_0, + 0 +}; + +static const long _vq_quantlist__44u6__p9_1[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u6__p9_1[] = { + 1, 4, 4, 7, 7, 8, 9, 8, 8, 9, 8, 9, 8, 9, 9, 4, + 7, 6, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 7, + 6, 9, 9,10,10, 9, 9,10,10,10,10,11,11, 7, 9, 8, + 10,10,11,11,10,10,11,11,11,11,11,11, 7, 8, 9,10, + 10,11,11,10,10,11,11,11,11,11,12, 8,10,10,11,11, + 12,12,11,11,12,12,12,12,13,12, 8,10,10,11,11,12, + 11,11,11,11,12,12,12,12,13, 8, 9, 9,11,10,11,11, + 12,12,12,12,13,12,13,12, 8, 9, 9,11,11,11,11,12, + 12,12,12,12,13,13,13, 9,10,10,11,12,12,12,12,12, + 13,13,13,13,13,13, 9,10,10,11,11,12,12,12,12,13, + 13,13,13,14,13,10,10,10,12,11,12,12,13,13,13,13, + 13,13,13,13,10,10,11,11,11,12,12,13,13,13,13,13, + 13,13,13,10,11,11,12,12,13,12,12,13,13,13,13,13, + 13,14,10,11,11,12,12,13,12,13,13,13,14,13,13,14, + 13, +}; + +static const static_codebook _44u6__p9_1 = { + 2, 225, + (long *)_vq_lengthlist__44u6__p9_1, + 1, -522338304, 1620115456, 4, 0, + (long *)_vq_quantlist__44u6__p9_1, + 0 +}; + +static const long _vq_quantlist__44u6__p9_2[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u6__p9_2[] = { + 3, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 9, + 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, + 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9,10, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9,10,10, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10, 9, 9, + 10, +}; + +static const static_codebook _44u6__p9_2 = { + 2, 289, + (long *)_vq_lengthlist__44u6__p9_2, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u6__p9_2, + 0 +}; + +static const long _huff_lengthlist__44u6__short[] = { + 4,11,16,13,17,13,17,16,17,17, 4, 7, 9, 9,13,10, + 16,12,16,17, 7, 6, 5, 7, 8, 9,12,12,16,17, 6, 9, + 7, 9,10,10,15,15,17,17, 6, 7, 5, 7, 5, 7, 7,10, + 16,17, 7, 9, 8, 9, 8,10,11,11,15,17, 7, 7, 7, 8, + 5, 8, 8, 9,15,17, 8, 7, 9, 9, 7, 8, 7, 2, 7,15, + 14,13,13,15, 5,10, 4, 3, 6,17,17,15,13,17, 7,11, + 7, 6, 9,16, +}; + +static const static_codebook _huff_book__44u6__short = { + 2, 100, + (long *)_huff_lengthlist__44u6__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u7__long[] = { + 3, 9,14,13,15,14,16,13,13,14, 5, 5, 7, 7, 8, 9, + 11,10,12,15,10, 6, 5, 6, 6, 9,10,10,13,16,10, 6, + 6, 6, 6, 8, 9, 9,12,15,14, 7, 6, 6, 5, 6, 6, 8, + 12,15,10, 8, 7, 7, 6, 7, 7, 7,11,13,14,10, 9, 8, + 5, 6, 4, 5, 9,12,10, 9, 9, 8, 6, 6, 5, 3, 6,11, + 12,11,12,12,10, 9, 8, 5, 5, 8,10,11,15,13,13,13, + 12, 8, 6, 7, +}; + +static const static_codebook _huff_book__44u7__long = { + 2, 100, + (long *)_huff_lengthlist__44u7__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u7__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u7__p1_0[] = { + 1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, + 10,10, 5, 8, 8, 7,10,10, 8,10,10, 5, 8, 8, 8,11, + 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, + 10,13,12,10,13,13, 5, 8, 8, 8,11,10, 8,10,11, 7, + 10,10,10,13,13,10,12,13, 8,11,11,10,13,13,10,13, + 12, +}; + +static const static_codebook _44u7__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u7__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u7__p1_0, + 0 +}; + +static const long _vq_quantlist__44u7__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u7__p2_0[] = { + 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, + 7, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 7, + 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, + 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, + 9, +}; + +static const static_codebook _44u7__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44u7__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u7__p2_0, + 0 +}; + +static const long _vq_quantlist__44u7__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u7__p3_0[] = { + 2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, + 9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, + 9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, + 13,14, 5, 7, 7, 9, 9, 7, 9, 8,11,11, 7, 9, 9,11, + 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, + 10,11,12,15,14, 9,11,11,15,14,13,14,14,16,16,12, + 13,14,17,16, 8,10,10,13,13, 9,11,11,14,15,10,11, + 12,14,15,12,14,13,16,16,13,14,15,15,17, 5, 7, 7, + 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,15, + 14,10,11,12,14,14, 7, 9, 9,12,12, 9,11,11,13,13, + 9,11,11,13,13,11,13,13,14,17,11,13,13,15,16, 6, + 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, + 12,16,14,11,13,13,16,16,10,12,12,15,15,11,13,13, + 16,16,11,13,13,16,15,14,16,17,17,19,14,16,16,18, + 0, 9,11,11,14,15,10,13,12,16,15,11,13,13,16,16, + 14,15,14, 0,16,14,16,16,18, 0, 5, 7, 7,10,10, 7, + 9, 9,12,11, 7, 9, 9,11,12,10,11,11,15,14,10,11, + 12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, + 12,13,11,13,13,17,15,11,12,13,14,15, 7, 9, 9,11, + 12, 9,11,11,13,13, 9,11,11,13,13,11,13,12,16,16, + 11,13,13,15,14, 9,11,11,14,15,11,13,13,16,15,10, + 12,13,16,16,15,16,16, 0, 0,14,13,15,16,18,10,11, + 11,15,15,11,13,14,16,18,11,13,13,16,15,15,16,16, + 19, 0,14,15,15,16,16, 8,10,10,13,13,10,12,11,16, + 15,10,11,11,16,15,13,15,16,18, 0,13,14,15,17,17, + 9,11,11,15,15,11,13,13,16,18,11,13,13,16,17,15, + 16,16, 0, 0,15,18,16, 0,17, 9,11,11,15,15,11,13, + 12,17,15,11,13,14,16,17,15,18,15, 0,17,15,16,16, + 18,19,13,15,14, 0,18,14,16,16,19,18,14,16,15,19, + 19,16,18,19, 0, 0,16,17, 0, 0, 0,12,14,14,17,17, + 13,16,14, 0,18,14,16,15,18, 0,16,18,16,19,17,18, + 19,17, 0, 0, 8,10,10,14,14, 9,12,11,15,15,10,11, + 12,15,17,13,15,15,18,16,14,16,15,18,17, 9,11,11, + 16,15,11,13,13, 0,16,11,12,13,16,15,15,16,16, 0, + 17,15,15,16,18,17, 9,12,11,15,17,11,13,13,16,16, + 11,14,13,16,16,15,15,16,18,19,16,18,16, 0, 0,12, + 14,14, 0,16,14,16,16, 0,18,13,14,15,16, 0,17,16, + 18, 0, 0,16,16,17,19, 0,13,14,14,17, 0,14,17,16, + 0,19,14,15,15,18,19,17,16,18, 0, 0,15,19,16, 0, + 0, +}; + +static const static_codebook _44u7__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44u7__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u7__p3_0, + 0 +}; + +static const long _vq_quantlist__44u7__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u7__p4_0[] = { + 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, + 9, 9,11,11, 8, 9, 9,10,11, 6, 7, 7, 9, 9, 7, 8, + 8,10,10, 6, 7, 8, 9,10, 9,10,10,12,12, 9, 9,10, + 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, + 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, + 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, + 11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,11, 9,10, + 10,12,12,11,12,11,13,13,11,12,12,13,13, 6, 7, 7, + 9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, + 11, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,11,11, + 8, 9, 9,11,11,10,11,11,12,12,10,10,11,12,13, 6, + 7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, + 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, + 13,13,10,11,11,13,12,12,12,13,13,14,12,12,13,14, + 14, 9,10,10,12,12, 9,10,10,12,12,10,11,11,13,13, + 11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, + 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12,11, 9,10, + 10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, + 10,11,10,11,11,13,12,10,10,11,11,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,10,13,12, + 10,11,11,12,12, 9,10,10,12,12,10,11,11,13,12, 9, + 10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, + 10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12, + 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, + 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,13, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, + 13,13,14,14,12,12,13,14,14, 9,10,10,12,12, 9,11, + 10,13,12,10,10,11,12,13,11,13,12,14,13,12,12,13, + 14,14,11,12,12,13,13,11,12,13,14,14,12,13,13,14, + 14,13,13,14,14,16,13,14,14,16,16,11,11,11,13,13, + 11,12,11,14,13,12,12,13,14,15,13,14,12,16,13,14, + 14,14,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,12,14,13,11,12,12,13,14, 9,10,10, + 12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, + 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,12,13, + 10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, + 12,12,13,13,12,13,12,14,14,11,11,12,13,14,13,15, + 14,16,15,13,12,14,13,16,11,12,12,13,13,12,13,13, + 14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,16, + 14, +}; + +static const static_codebook _44u7__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44u7__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u7__p4_0, + 0 +}; + +static const long _vq_quantlist__44u7__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u7__p5_0[] = { + 2, 3, 3, 6, 6, 7, 8,10,10, 4, 5, 5, 8, 7, 8, 8, + 11,11, 3, 5, 5, 7, 7, 8, 9,11,11, 6, 8, 7, 9, 9, + 10,10,12,12, 6, 7, 8, 9,10,10,10,12,12, 8, 8, 8, + 10,10,12,11,13,13, 8, 8, 9,10,10,11,11,13,13,10, + 11,11,12,12,13,13,14,14,10,11,11,12,12,13,13,14, + 14, +}; + +static const static_codebook _44u7__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44u7__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u7__p5_0, + 0 +}; + +static const long _vq_quantlist__44u7__p6_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u7__p6_0[] = { + 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 8, 7, + 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, + 8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, + 8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,11,11, 9, + 9, 9,10,10,11,10,12,11, 9, 9, 9,10,10,11,11,11, + 12, +}; + +static const static_codebook _44u7__p6_0 = { + 2, 81, + (long *)_vq_lengthlist__44u7__p6_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u7__p6_0, + 0 +}; + +static const long _vq_quantlist__44u7__p7_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u7__p7_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8, 9, 9, 7, + 10,10, 5, 8, 9, 7, 9,10, 8, 9, 9, 4, 9, 9, 9,11, + 10, 8,10,10, 7,11,10,10,10,12,10,12,12, 7,10,10, + 10,12,11,10,12,12, 5, 9, 9, 8,10,10, 9,11,11, 7, + 11,10,10,12,12,10,11,12, 7,10,11,10,12,12,10,12, + 10, +}; + +static const static_codebook _44u7__p7_0 = { + 4, 81, + (long *)_vq_lengthlist__44u7__p7_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44u7__p7_0, + 0 +}; + +static const long _vq_quantlist__44u7__p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u7__p7_1[] = { + 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, + 8, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, 7, 8, 8, 8, 8, + 8, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 6, 6, 7, 7, + 7, 8, 8, 9, 9, 9, 9, 7, 8, 7, 8, 8, 9, 9, 9, 9, + 9, 9, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, + 9, 9, 9, 9,10, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9,10, 8, 8, 8, 9, 9, 9, 9,10, 9,10,10, 8, 8, + 8, 9, 9, 9, 9, 9,10,10,10, +}; + +static const static_codebook _44u7__p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44u7__p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u7__p7_1, + 0 +}; + +static const long _vq_quantlist__44u7__p8_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u7__p8_0[] = { + 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, + 9, 9,11,10,12,12, 5, 6, 5, 7, 7, 9, 9,10,11,12, + 12, 6, 7, 7, 8, 8,10,10,11,11,13,13, 6, 7, 7, 8, + 8,10,10,11,12,13,13, 8, 9, 9,10,10,11,11,12,12, + 14,14, 8, 9, 9,10,10,11,11,12,12,14,14,10,10,10, + 11,11,13,12,14,14,15,15,10,10,10,12,12,13,13,14, + 14,15,15,11,12,12,13,13,14,14,15,14,16,15,11,12, + 12,13,13,14,14,15,15,15,16, +}; + +static const static_codebook _44u7__p8_0 = { + 2, 121, + (long *)_vq_lengthlist__44u7__p8_0, + 1, -524582912, 1618345984, 4, 0, + (long *)_vq_quantlist__44u7__p8_0, + 0 +}; + +static const long _vq_quantlist__44u7__p8_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u7__p8_1[] = { + 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, + 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, + 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, + 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, + 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44u7__p8_1 = { + 2, 121, + (long *)_vq_lengthlist__44u7__p8_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u7__p8_1, + 0 +}; + +static const long _vq_quantlist__44u7__p9_0[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u7__p9_0[] = { + 1, 3, 3,10,10,10,10,10,10,10,10, 4,10,10,10,10, + 10,10,10,10,10,10, 4,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, +}; + +static const static_codebook _44u7__p9_0 = { + 2, 121, + (long *)_vq_lengthlist__44u7__p9_0, + 1, -512171520, 1630791680, 4, 0, + (long *)_vq_quantlist__44u7__p9_0, + 0 +}; + +static const long _vq_quantlist__44u7__p9_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u7__p9_1[] = { + 1, 4, 4, 6, 5, 8, 6, 9, 8,10, 9,11,10, 4, 6, 6, + 8, 8, 9, 9,11,10,11,11,11,11, 4, 6, 6, 8, 8,10, + 9,11,11,11,11,11,12, 6, 8, 8,10,10,11,11,12,12, + 13,12,13,13, 6, 8, 8,10,10,11,11,12,12,12,13,14, + 13, 8,10,10,11,11,12,13,14,14,14,14,15,15, 8,10, + 10,11,12,12,13,13,14,14,14,14,15, 9,11,11,13,13, + 14,14,15,14,16,15,17,15, 9,11,11,12,13,14,14,15, + 14,15,15,15,16,10,12,12,13,14,15,15,15,15,16,17, + 16,17,10,13,12,13,14,14,16,16,16,16,15,16,17,11, + 13,13,14,15,14,17,15,16,17,17,17,17,11,13,13,14, + 15,15,15,15,17,17,16,17,16, +}; + +static const static_codebook _44u7__p9_1 = { + 2, 169, + (long *)_vq_lengthlist__44u7__p9_1, + 1, -518889472, 1622704128, 4, 0, + (long *)_vq_quantlist__44u7__p9_1, + 0 +}; + +static const long _vq_quantlist__44u7__p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44u7__p9_2[] = { + 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 8, +}; + +static const static_codebook _44u7__p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44u7__p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44u7__p9_2, + 0 +}; + +static const long _huff_lengthlist__44u7__short[] = { + 5,12,17,16,16,17,17,17,17,17, 4, 7,11,11,12, 9, + 17,10,17,17, 7, 7, 8, 9, 7, 9,11,10,15,17, 7, 9, + 10,11,10,12,14,12,16,17, 7, 8, 5, 7, 4, 7, 7, 8, + 16,16, 6,10, 9,10, 7,10,11,11,16,17, 6, 8, 8, 9, + 5, 7, 5, 8,16,17, 5, 5, 8, 7, 6, 7, 7, 6, 6,14, + 12,10,12,11, 7,11, 4, 4, 2, 7,17,15,15,15, 8,15, + 6, 8, 5, 9, +}; + +static const static_codebook _huff_book__44u7__short = { + 2, 100, + (long *)_huff_lengthlist__44u7__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u8__long[] = { + 3, 9,13,14,14,15,14,14,15,15, 5, 4, 6, 8,10,12, + 12,14,15,15, 9, 5, 4, 5, 8,10,11,13,16,16,10, 7, + 4, 3, 5, 7, 9,11,13,13,10, 9, 7, 4, 4, 6, 8,10, + 12,14,13,11, 9, 6, 5, 5, 6, 8,12,14,13,11,10, 8, + 7, 6, 6, 7,10,14,13,11,12,10, 8, 7, 6, 6, 9,13, + 12,11,14,12,11, 9, 8, 7, 9,11,11,12,14,13,14,11, + 10, 8, 8, 9, +}; + +static const static_codebook _huff_book__44u8__long = { + 2, 100, + (long *)_huff_lengthlist__44u8__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u8__short[] = { + 6,14,18,18,17,17,17,17,17,17, 4, 7, 9, 9,10,13, + 15,17,17,17, 6, 7, 5, 6, 8,11,16,17,16,17, 5, 7, + 5, 4, 6,10,14,17,17,17, 6, 6, 6, 5, 7,10,13,16, + 17,17, 7, 6, 7, 7, 7, 8, 7,10,15,16,12, 9, 9, 6, + 6, 5, 3, 5,11,15,14,14,13, 5, 5, 7, 3, 4, 8,15, + 17,17,13, 7, 7,10, 6, 6,10,15,17,17,16,10,11,14, + 10,10,15,17, +}; + +static const static_codebook _huff_book__44u8__short = { + 2, 100, + (long *)_huff_lengthlist__44u8__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u8_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u8_p1_0[] = { + 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 7, 9, + 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,11,10, 7, 9, 9, + 9,11,10, 9,10,11, 5, 7, 7, 7, 9, 9, 7, 9, 9, 7, + 9, 9, 9,11,10, 9,10,10, 8, 9, 9, 9,11,11, 9,11, + 10, +}; + +static const static_codebook _44u8_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u8_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u8_p1_0, + 0 +}; + +static const long _vq_quantlist__44u8_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u8_p2_0[] = { + 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, + 9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10,10, + 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, + 10, 9,10, 9,12,11, 9,10,10,12,12, 8, 9, 9,12,11, + 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14,11, + 11,12,13,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,11,13,13,11,12,12,14,14, 5, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, + 12, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, + 8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 6, + 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, + 10,13,12,10,11,11,13,13, 9,10,10,12,12,10,11,11, + 13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, + 14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, + 11,13,12,14,13,12,13,13,14,14, 5, 7, 7, 9, 9, 7, + 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, + 10,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, + 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, + 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, + 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, + 10,11,12,13,12,13,13,14,14,12,12,13,13,14, 9,10, + 10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13, + 15,14,12,13,13,14,13, 8, 9, 9,11,11, 9,10,10,12, + 12, 9,10,10,12,12,12,12,12,14,13,11,12,12,14,14, + 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, + 13,13,14,15,12,13,13,14,15, 9,10,10,12,12,10,11, + 10,13,12,10,11,11,13,13,12,13,12,15,14,12,13,13, + 14,15,11,12,12,14,14,12,13,13,14,14,12,13,13,15, + 14,14,14,14,14,16,14,14,15,16,16,11,12,12,14,14, + 11,12,12,14,14,12,13,13,14,15,13,14,13,16,14,14, + 14,14,16,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, + 10,12,12,11,12,12,14,13,11,12,12,14,14, 9,10,10, + 12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15, + 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, + 10,11,11,13,13,12,13,13,14,14,12,13,13,15,14,11, + 12,12,14,13,12,13,13,15,14,11,12,12,13,14,14,15, + 14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, + 14,15,12,13,12,15,14,14,14,14,16,15,14,15,13,16, + 14, +}; + +static const static_codebook _44u8_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44u8_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u8_p2_0, + 0 +}; + +static const long _vq_quantlist__44u8_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u8_p3_0[] = { + 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, + 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, + 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, + 8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, + 9, 9,10,10,11,10,12,11, 9, 9, 9, 9,10,11,11,11, + 12, +}; + +static const static_codebook _44u8_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44u8_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u8_p3_0, + 0 +}; + +static const long _vq_quantlist__44u8_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u8_p4_0[] = { + 4, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,11,11,11, + 11, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, + 12,12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, + 11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, + 11,11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10, + 10,11,11,12,12, 7, 7, 7, 8, 8, 9, 8,10, 9,10, 9, + 11,10,12,11,13,12, 7, 7, 7, 8, 8, 8, 9, 9,10, 9, + 10,10,11,11,12,12,13, 8, 8, 8, 9, 9, 9, 9,10,10, + 11,10,11,11,12,12,13,13, 8, 8, 8, 9, 9, 9,10,10, + 10,10,11,11,11,12,12,12,13, 8, 9, 9, 9, 9,10, 9, + 11,10,11,11,12,11,13,12,13,13, 8, 9, 9, 9, 9, 9, + 10,10,11,11,11,11,12,12,13,13,13,10,10,10,10,10, + 11,10,11,11,12,11,13,12,13,13,14,13,10,10,10,10, + 10,10,11,11,11,11,12,12,13,13,13,13,14,11,11,11, + 11,11,12,11,12,12,13,12,13,13,14,13,14,14,11,11, + 11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,11, + 12,12,12,12,13,12,13,12,13,13,14,13,14,14,14,14, + 11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14, + 14, +}; + +static const static_codebook _44u8_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44u8_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u8_p4_0, + 0 +}; + +static const long _vq_quantlist__44u8_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u8_p5_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, + 9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, + 10, 8,10,10, 7,10,10, 9,10,12, 9,12,11, 7,10,10, + 9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, + 10,10, 9,11,11, 9,10,11, 7,10,10, 9,11,11,10,12, + 10, +}; + +static const static_codebook _44u8_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44u8_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44u8_p5_0, + 0 +}; + +static const long _vq_quantlist__44u8_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u8_p5_1[] = { + 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 5, 5, 6, 6, + 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, + 8, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, + 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 8, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 9, 9, +}; + +static const static_codebook _44u8_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44u8_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u8_p5_1, + 0 +}; + +static const long _vq_quantlist__44u8_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u8_p6_0[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 6, 7, 7, 7, 8, 8, 8, 8, 9, + 9,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 8,10, 9,11, + 10, 7, 8, 8, 8, 8, 8, 9, 9, 9,10,10,11,11, 7, 8, + 8, 8, 8, 9, 8, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, + 9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, + 9,10,10,11,11, 9, 9, 9, 9,10,10,10,10,10,10,11, + 11,12, 9, 9, 9,10, 9,10,10,10,10,11,10,12,11,10, + 10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, + 11,11,11,11,11,12,11,12,12, +}; + +static const static_codebook _44u8_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u8_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u8_p6_0, + 0 +}; + +static const long _vq_quantlist__44u8_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u8_p6_1[] = { + 3, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44u8_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u8_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u8_p6_1, + 0 +}; + +static const long _vq_quantlist__44u8_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u8_p7_0[] = { + 1, 4, 5, 6, 6, 7, 7, 8, 8,10,10,11,11, 5, 6, 6, + 7, 7, 8, 8, 9, 9,11,10,12,11, 5, 6, 6, 7, 7, 8, + 8, 9, 9,10,11,11,12, 6, 7, 7, 8, 8, 9, 9,10,10, + 11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,12,13, + 12, 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, + 8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, + 11,11,12,12,13,13,14,14, 9, 9, 9,10,10,11,11,12, + 12,13,13,14,14,10,11,11,12,11,13,12,13,13,14,14, + 15,15,10,11,11,11,12,12,13,13,14,14,14,15,15,11, + 12,12,13,13,14,13,15,14,15,15,16,15,11,11,12,13, + 13,13,14,14,14,15,15,15,16, +}; + +static const static_codebook _44u8_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44u8_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44u8_p7_0, + 0 +}; + +static const long _vq_quantlist__44u8_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u8_p7_1[] = { + 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, + 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, + 8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, + 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44u8_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44u8_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u8_p7_1, + 0 +}; + +static const long _vq_quantlist__44u8_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u8_p8_0[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8,10, 9,11,10, 4, + 6, 6, 8, 8,10, 9, 9, 9,10,10,11,10,12,10, 4, 6, + 6, 8, 8,10,10, 9, 9,10,10,11,11,11,12, 7, 8, 8, + 10,10,11,11,11,10,12,11,12,12,13,11, 7, 8, 8,10, + 10,11,11,10,10,11,11,12,12,13,13, 8,10,10,11,11, + 12,11,12,11,13,12,13,12,14,13, 8,10, 9,11,11,12, + 12,12,12,12,12,13,13,14,13, 8, 9, 9,11,10,12,11, + 13,12,13,13,14,13,14,13, 8, 9, 9,10,11,12,12,12, + 12,13,13,14,15,14,14, 9,10,10,12,11,13,12,13,13, + 14,13,14,14,14,14, 9,10,10,12,12,12,12,13,13,14, + 14,14,15,14,14,10,11,11,13,12,13,12,14,14,14,14, + 14,14,15,15,10,11,11,12,12,13,13,14,14,14,15,15, + 14,16,15,11,12,12,13,12,14,14,14,13,15,14,15,15, + 15,17,11,12,12,13,13,14,14,14,15,15,14,15,15,14, + 17, +}; + +static const static_codebook _44u8_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44u8_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44u8_p8_0, + 0 +}; + +static const long _vq_quantlist__44u8_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44u8_p8_1[] = { + 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, + 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, + 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10, 8, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, + 10, 9,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, + 10,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10, 9,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, + 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, + 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10, 9, + 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, + 10, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, + 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10, 9, 9, 9,10, 9,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, + 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44u8_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44u8_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44u8_p8_1, + 0 +}; + +static const long _vq_quantlist__44u8_p9_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u8_p9_0[] = { + 1, 3, 3, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, + 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, + 8, +}; + +static const static_codebook _44u8_p9_0 = { + 2, 81, + (long *)_vq_lengthlist__44u8_p9_0, + 1, -511895552, 1631393792, 4, 0, + (long *)_vq_quantlist__44u8_p9_0, + 0 +}; + +static const long _vq_quantlist__44u8_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__44u8_p9_1[] = { + 1, 4, 4, 7, 7, 8, 7, 8, 6, 9, 7,10, 8,11,10,11, + 11,11,11, 4, 7, 6, 9, 9,10, 9, 9, 9,10,10,11,10, + 11,10,11,11,13,11, 4, 7, 7, 9, 9, 9, 9, 9, 9,10, + 10,11,10,11,11,11,12,11,12, 7, 9, 8,11,11,11,11, + 10,10,11,11,12,12,12,12,12,12,14,13, 7, 8, 9,10, + 11,11,11,10,10,11,11,11,11,12,12,14,12,13,14, 8, + 9, 9,11,11,11,11,11,11,12,12,14,12,15,14,14,14, + 15,14, 8, 9, 9,11,11,11,11,12,11,12,12,13,13,13, + 13,13,13,14,14, 8, 9, 9,11,10,12,11,12,12,13,13, + 13,13,15,14,14,14,16,16, 8, 9, 9,10,11,11,12,12, + 12,13,13,13,14,14,14,15,16,15,15, 9,10,10,11,12, + 12,13,13,13,14,14,16,14,14,16,16,16,16,15, 9,10, + 10,11,11,12,13,13,14,15,14,16,14,15,16,16,16,16, + 15,10,11,11,12,13,13,14,15,15,15,15,15,16,15,16, + 15,16,15,15,10,11,11,13,13,14,13,13,15,14,15,15, + 16,15,15,15,16,15,16,10,12,12,14,14,14,14,14,16, + 16,15,15,15,16,16,16,16,16,16,11,12,12,14,14,14, + 14,15,15,16,15,16,15,16,15,16,16,16,16,12,12,13, + 14,14,15,16,16,16,16,16,16,15,16,16,16,16,16,16, + 12,13,13,14,14,14,14,15,16,15,16,16,16,16,16,16, + 16,16,16,12,13,14,14,14,16,15,16,15,16,16,16,16, + 16,16,16,16,16,16,12,14,13,14,15,15,15,16,15,16, + 16,15,16,16,16,16,16,16,16, +}; + +static const static_codebook _44u8_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__44u8_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__44u8_p9_1, + 0 +}; + +static const long _vq_quantlist__44u8_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44u8_p9_2[] = { + 2, 3, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44u8_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44u8_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44u8_p9_2, + 0 +}; + +static const long _huff_lengthlist__44u9__long[] = { + 3, 9,13,13,14,15,14,14,15,15, 5, 5, 9,10,12,12, + 13,14,16,15,10, 6, 6, 6, 8,11,12,13,16,15,11, 7, + 5, 3, 5, 8,10,12,15,15,10,10, 7, 4, 3, 5, 8,10, + 12,12,12,12, 9, 7, 5, 4, 6, 8,10,13,13,12,11, 9, + 7, 5, 5, 6, 9,12,14,12,12,10, 8, 6, 6, 6, 7,11, + 13,12,14,13,10, 8, 7, 7, 7,10,11,11,12,13,12,11, + 10, 8, 8, 9, +}; + +static const static_codebook _huff_book__44u9__long = { + 2, 100, + (long *)_huff_lengthlist__44u9__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _huff_lengthlist__44u9__short[] = { + 9,16,18,18,17,17,17,17,17,17, 5, 8,11,12,11,12, + 17,17,16,16, 6, 6, 8, 8, 9,10,14,15,16,16, 6, 7, + 7, 4, 6, 9,13,16,16,16, 6, 6, 7, 4, 5, 8,11,15, + 17,16, 7, 6, 7, 6, 6, 8, 9,10,14,16,11, 8, 8, 7, + 6, 6, 3, 4,10,15,14,12,12,10, 5, 6, 3, 3, 8,13, + 15,17,15,11, 6, 8, 6, 6, 9,14,17,15,15,12, 8,10, + 9, 9,12,15, +}; + +static const static_codebook _huff_book__44u9__short = { + 2, 100, + (long *)_huff_lengthlist__44u9__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44u9_p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u9_p1_0[] = { + 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, + 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 7, 9, + 9, 7, 9, 9, 8, 9, 9, 9,10,11, 9,11,11, 7, 9, 9, + 9,11,10, 9,11,11, 5, 7, 7, 7, 9, 9, 8, 9,10, 7, + 9, 9, 9,11,11, 9,10,11, 7, 9,10, 9,11,11, 9,11, + 10, +}; + +static const static_codebook _44u9_p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44u9_p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44u9_p1_0, + 0 +}; + +static const long _vq_quantlist__44u9_p2_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u9_p2_0[] = { + 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, + 9, 9,11,10, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, + 8,10,10, 7, 8, 8, 9,10, 9,10,10,11,11, 9, 9,10, + 11,11, 6, 7, 7, 9, 9, 7, 8, 8,10, 9, 7, 8, 8,10, + 10, 9,10, 9,11,11, 9,10,10,11,11, 8, 9, 9,11,11, + 9,10,10,12,11, 9,10,10,11,12,11,11,11,13,13,11, + 11,11,12,13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10, + 10,12,11,11,12,11,13,12,11,11,12,13,13, 6, 7, 7, + 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, + 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, + 8, 9, 9,10,10,10,11,11,12,12,10,10,11,12,12, 7, + 8, 8,10,10, 8, 9, 8,10,10, 8, 9, 9,10,10,10,11, + 10,12,11,10,10,11,12,12, 9,10,10,11,12,10,11,11, + 12,12,10,11,10,12,12,12,12,12,13,13,11,12,12,13, + 13, 9,10,10,11,11, 9,10,10,12,12,10,11,11,12,13, + 11,12,11,13,12,12,12,12,13,14, 6, 7, 7, 9, 9, 7, + 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,11,11, 9,10, + 10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,10, 8, 8, 9, + 10,10,10,11,10,12,12,10,10,11,11,12, 7, 8, 8,10, + 10, 8, 9, 9,10,10, 8, 9, 9,10,10,10,11,10,12,12, + 10,11,10,12,12, 9,10,10,12,11,10,11,11,12,12, 9, + 10,10,12,12,12,12,12,13,13,11,11,12,12,14, 9,10, + 10,11,12,10,11,11,12,12,10,11,11,12,12,11,12,12, + 14,14,12,12,12,13,13, 8, 9, 9,11,11, 9,10,10,12, + 11, 9,10,10,12,12,11,12,11,13,13,11,11,12,13,13, + 9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12, + 12,12,14,14,12,12,12,13,13, 9,10,10,12,11,10,11, + 10,12,12,10,11,11,12,12,11,12,12,14,13,12,12,12, + 13,14,11,12,11,13,13,11,12,12,13,13,12,12,12,14, + 14,13,13,13,13,15,13,13,14,15,15,11,11,11,13,13, + 11,12,11,13,13,11,12,12,13,13,12,13,12,15,13,13, + 13,14,14,15, 8, 9, 9,11,11, 9,10,10,11,12, 9,10, + 10,11,12,11,12,11,13,13,11,12,12,13,13, 9,10,10, + 11,12,10,11,10,12,12,10,10,11,12,13,12,12,12,14, + 13,11,12,12,13,14, 9,10,10,12,12,10,11,11,12,12, + 10,11,11,12,12,12,12,12,14,13,12,12,12,14,13,11, + 11,11,13,13,11,12,12,14,13,11,11,12,13,13,13,13, + 13,15,14,12,12,13,13,15,11,12,12,13,13,12,12,12, + 13,14,11,12,12,13,13,13,13,14,14,15,13,13,13,14, + 14, +}; + +static const static_codebook _44u9_p2_0 = { + 4, 625, + (long *)_vq_lengthlist__44u9_p2_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u9_p2_0, + 0 +}; + +static const long _vq_quantlist__44u9_p3_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44u9_p3_0[] = { + 3, 4, 4, 5, 5, 7, 7, 8, 8, 4, 5, 5, 6, 6, 7, 7, + 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, + 8, 8, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, + 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,10, 8, + 9, 9,10, 9,10,10,11,11, 8, 9, 9, 9,10,10,10,11, + 11, +}; + +static const static_codebook _44u9_p3_0 = { + 2, 81, + (long *)_vq_lengthlist__44u9_p3_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44u9_p3_0, + 0 +}; + +static const long _vq_quantlist__44u9_p4_0[] = { + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15, + 0, + 16, +}; + +static const long _vq_lengthlist__44u9_p4_0[] = { + 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, + 11,11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, + 10,11,11, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9,10,10, + 11,11,12,11, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,10, + 10,11,11,11,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, + 10,10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, + 9,10,10,11,11,12,12, 8, 8, 8, 8, 8, 9, 8,10, 9, + 10,10,11,10,12,11,13,12, 8, 8, 8, 8, 8, 9, 9, 9, + 10,10,10,10,11,11,12,12,12, 8, 8, 8, 9, 9, 9, 9, + 10,10,11,10,12,11,12,12,13,12, 8, 8, 8, 9, 9, 9, + 9,10,10,10,11,11,11,12,12,12,13, 9, 9, 9,10,10, + 10,10,11,10,11,11,12,11,13,12,13,13, 9, 9,10,10, + 10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10, + 11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10, + 10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11, + 11,11,12,11,12,12,12,12,13,13,13,13,14,13,14,14, + 11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,14, + 14, +}; + +static const static_codebook _44u9_p4_0 = { + 2, 289, + (long *)_vq_lengthlist__44u9_p4_0, + 1, -529530880, 1611661312, 5, 0, + (long *)_vq_quantlist__44u9_p4_0, + 0 +}; + +static const long _vq_quantlist__44u9_p5_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44u9_p5_0[] = { + 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, + 9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, + 10, 8,10,10, 7,10,10, 9,10,12, 9,11,11, 7,10,10, + 9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, + 10,10, 9,12,11, 9,10,11, 7,10,10, 9,11,11,10,12, + 10, +}; + +static const static_codebook _44u9_p5_0 = { + 4, 81, + (long *)_vq_lengthlist__44u9_p5_0, + 1, -529137664, 1618345984, 2, 0, + (long *)_vq_quantlist__44u9_p5_0, + 0 +}; + +static const long _vq_quantlist__44u9_p5_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u9_p5_1[] = { + 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 6, + 7, 7, 7, 7, 8, 7, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, + 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 6, 6, 6, 7, + 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, + 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, + 8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +static const static_codebook _44u9_p5_1 = { + 2, 121, + (long *)_vq_lengthlist__44u9_p5_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u9_p5_1, + 0 +}; + +static const long _vq_quantlist__44u9_p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u9_p6_0[] = { + 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, + 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 5, 6, 7, 7, 8, + 8, 8, 8, 9, 9,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 10,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, + 10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 7, 8, + 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, + 9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, + 9,10,10,11,11, 9, 9, 9,10,10,10,10,10,11,11,11, + 11,12, 9, 9, 9,10,10,10,10,10,10,11,10,12,11,10, + 10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, + 10,11,11,11,11,12,11,12,12, +}; + +static const static_codebook _44u9_p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44u9_p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44u9_p6_0, + 0 +}; + +static const long _vq_quantlist__44u9_p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44u9_p6_1[] = { + 4, 4, 4, 5, 5, 4, 5, 4, 5, 5, 4, 4, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, +}; + +static const static_codebook _44u9_p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44u9_p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44u9_p6_1, + 0 +}; + +static const long _vq_quantlist__44u9_p7_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44u9_p7_0[] = { + 1, 4, 5, 6, 6, 7, 7, 8, 9,10,10,11,11, 5, 6, 6, + 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 8, + 8, 9, 9,10,10,11,11, 6, 7, 7, 8, 8, 9, 9,10,10, + 11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12, + 12, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, + 8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, + 11,11,12,12,13,13,13,13, 9, 9, 9,10,10,11,11,12, + 12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,13, + 15,14,10,10,10,11,11,12,12,13,13,14,14,14,14,11, + 11,12,12,12,13,13,14,14,14,14,15,15,11,11,12,12, + 12,13,13,14,14,14,15,15,15, +}; + +static const static_codebook _44u9_p7_0 = { + 2, 169, + (long *)_vq_lengthlist__44u9_p7_0, + 1, -523206656, 1618345984, 4, 0, + (long *)_vq_quantlist__44u9_p7_0, + 0 +}; + +static const long _vq_quantlist__44u9_p7_1[] = { + 5, + 4, + 6, + 3, + 7, + 2, + 8, + 1, + 9, + 0, + 10, +}; + +static const long _vq_lengthlist__44u9_p7_1[] = { + 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, 7, + 7, 7, 7, 7, 7, 8, 8, 8, 8, +}; + +static const static_codebook _44u9_p7_1 = { + 2, 121, + (long *)_vq_lengthlist__44u9_p7_1, + 1, -531365888, 1611661312, 4, 0, + (long *)_vq_quantlist__44u9_p7_1, + 0 +}; + +static const long _vq_quantlist__44u9_p8_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u9_p8_0[] = { + 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10, 9,11,10, 4, + 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,10,12,10, 4, 6, + 6, 8, 8, 9,10, 9, 9,10,10,11,11,12,12, 7, 8, 8, + 10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, + 10,11,11,10,10,11,11,12,12,12,13, 8,10, 9,11,11, + 12,12,11,11,12,12,13,13,14,13, 8, 9, 9,11,11,12, + 12,11,12,12,12,13,13,14,13, 8, 9, 9,10,10,12,11, + 13,12,13,13,14,13,15,14, 8, 9, 9,10,10,11,12,12, + 12,13,13,13,14,14,14, 9,10,10,12,11,13,12,13,13, + 14,13,14,14,14,15, 9,10,10,11,12,12,12,13,13,14, + 14,14,15,15,15,10,11,11,12,12,13,13,14,14,14,14, + 15,14,16,15,10,11,11,12,12,13,13,13,14,14,14,14, + 14,15,16,11,12,12,13,13,14,13,14,14,15,14,15,16, + 16,16,11,12,12,13,13,14,13,14,14,15,15,15,16,15, + 15, +}; + +static const static_codebook _44u9_p8_0 = { + 2, 225, + (long *)_vq_lengthlist__44u9_p8_0, + 1, -520986624, 1620377600, 4, 0, + (long *)_vq_quantlist__44u9_p8_0, + 0 +}; + +static const long _vq_quantlist__44u9_p8_1[] = { + 10, + 9, + 11, + 8, + 12, + 7, + 13, + 6, + 14, + 5, + 15, + 4, + 16, + 3, + 17, + 2, + 18, + 1, + 19, + 0, + 20, +}; + +static const long _vq_lengthlist__44u9_p8_1[] = { + 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, + 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10, 8, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 10, 9,10, 9,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9,10,10, 9,10,10,10,10,10, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, + 10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, + 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 9, 9, 9, 9,10, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, + 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10, +}; + +static const static_codebook _44u9_p8_1 = { + 2, 441, + (long *)_vq_lengthlist__44u9_p8_1, + 1, -529268736, 1611661312, 5, 0, + (long *)_vq_quantlist__44u9_p8_1, + 0 +}; + +static const long _vq_quantlist__44u9_p9_0[] = { + 7, + 6, + 8, + 5, + 9, + 4, + 10, + 3, + 11, + 2, + 12, + 1, + 13, + 0, + 14, +}; + +static const long _vq_lengthlist__44u9_p9_0[] = { + 1, 3, 3,11,11,11,11,11,11,11,11,11,11,11,11, 4, + 10,11,11,11,11,11,11,11,11,11,11,11,11,11, 4,10, + 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _44u9_p9_0 = { + 2, 225, + (long *)_vq_lengthlist__44u9_p9_0, + 1, -510036736, 1631393792, 4, 0, + (long *)_vq_quantlist__44u9_p9_0, + 0 +}; + +static const long _vq_quantlist__44u9_p9_1[] = { + 9, + 8, + 10, + 7, + 11, + 6, + 12, + 5, + 13, + 4, + 14, + 3, + 15, + 2, + 16, + 1, + 17, + 0, + 18, +}; + +static const long _vq_lengthlist__44u9_p9_1[] = { + 1, 4, 4, 7, 7, 8, 7, 8, 7, 9, 8,10, 9,10,10,11, + 11,12,12, 4, 7, 6, 9, 9,10, 9, 9, 8,10,10,11,10, + 12,10,13,12,13,12, 4, 6, 6, 9, 9, 9, 9, 9, 9,10, + 10,11,11,11,12,12,12,12,12, 7, 9, 8,11,10,10,10, + 11,10,11,11,12,12,13,12,13,13,13,13, 7, 8, 9,10, + 10,11,11,10,10,11,11,11,12,13,13,13,13,14,14, 8, + 9, 9,11,11,12,11,12,12,13,12,12,13,13,14,15,14, + 14,14, 8, 9, 9,10,11,11,11,12,12,13,12,13,13,14, + 14,14,15,14,16, 8, 9, 9,11,10,12,12,12,12,15,13, + 13,13,17,14,15,15,15,14, 8, 9, 9,10,11,11,12,13, + 12,13,13,13,14,15,14,14,14,16,15, 9,11,10,12,12, + 13,13,13,13,14,14,16,15,14,14,14,15,15,17, 9,10, + 10,11,11,13,13,13,14,14,13,15,14,15,14,15,16,15, + 16,10,11,11,12,12,13,14,15,14,15,14,14,15,17,16, + 15,15,17,17,10,12,11,13,12,14,14,13,14,15,15,15, + 15,16,17,17,15,17,16,11,12,12,14,13,15,14,15,16, + 17,15,17,15,17,15,15,16,17,15,11,11,12,14,14,14, + 14,14,15,15,16,15,17,17,17,16,17,16,15,12,12,13, + 14,14,14,15,14,15,15,16,16,17,16,17,15,17,17,16, + 12,14,12,14,14,15,15,15,14,14,16,16,16,15,16,16, + 15,17,15,12,13,13,14,15,14,15,17,15,17,16,17,17, + 17,16,17,16,17,17,12,13,13,14,16,15,15,15,16,15, + 17,17,15,17,15,17,16,16,17, +}; + +static const static_codebook _44u9_p9_1 = { + 2, 361, + (long *)_vq_lengthlist__44u9_p9_1, + 1, -518287360, 1622704128, 5, 0, + (long *)_vq_quantlist__44u9_p9_1, + 0 +}; + +static const long _vq_quantlist__44u9_p9_2[] = { + 24, + 23, + 25, + 22, + 26, + 21, + 27, + 20, + 28, + 19, + 29, + 18, + 30, + 17, + 31, + 16, + 32, + 15, + 33, + 14, + 34, + 13, + 35, + 12, + 36, + 11, + 37, + 10, + 38, + 9, + 39, + 8, + 40, + 7, + 41, + 6, + 42, + 5, + 43, + 4, + 44, + 3, + 45, + 2, + 46, + 1, + 47, + 0, + 48, +}; + +static const long _vq_lengthlist__44u9_p9_2[] = { + 2, 4, 4, 5, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 7, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, +}; + +static const static_codebook _44u9_p9_2 = { + 1, 49, + (long *)_vq_lengthlist__44u9_p9_2, + 1, -526909440, 1611661312, 6, 0, + (long *)_vq_quantlist__44u9_p9_2, + 0 +}; + +static const long _huff_lengthlist__44un1__long[] = { + 5, 6,12, 9,14, 9, 9,19, 6, 1, 5, 5, 8, 7, 9,19, + 12, 4, 4, 7, 7, 9,11,18, 9, 5, 6, 6, 8, 7, 8,17, + 14, 8, 7, 8, 8,10,12,18, 9, 6, 8, 6, 8, 6, 8,18, + 9, 8,11, 8,11, 7, 5,15,16,18,18,18,17,15,11,18, +}; + +static const static_codebook _huff_book__44un1__long = { + 2, 64, + (long *)_huff_lengthlist__44un1__long, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + +static const long _vq_quantlist__44un1__p1_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44un1__p1_0[] = { + 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, + 10,11, 5, 8, 8, 8,11,10, 8,11,10, 4, 9, 9, 8,11, + 11, 8,11,11, 8,12,11,10,12,14,11,13,13, 7,11,11, + 10,13,11,11,13,14, 4, 8, 9, 8,11,11, 8,11,12, 7, + 11,11,11,14,13,10,11,13, 8,11,12,11,13,13,10,14, + 12, +}; + +static const static_codebook _44un1__p1_0 = { + 4, 81, + (long *)_vq_lengthlist__44un1__p1_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44un1__p1_0, + 0 +}; + +static const long _vq_quantlist__44un1__p2_0[] = { + 1, + 0, + 2, +}; + +static const long _vq_lengthlist__44un1__p2_0[] = { + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, + 7, 9, 5, 7, 7, 6, 8, 7, 7, 9, 8, 4, 7, 7, 7, 9, + 8, 7, 8, 8, 7, 9, 8, 8, 8,10, 9,10,10, 6, 8, 8, + 7,10, 8, 9,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, + 8, 8, 9,10,10, 7, 8,10, 6, 8, 9, 9,10,10, 8,10, + 8, +}; + +static const static_codebook _44un1__p2_0 = { + 4, 81, + (long *)_vq_lengthlist__44un1__p2_0, + 1, -535822336, 1611661312, 2, 0, + (long *)_vq_quantlist__44un1__p2_0, + 0 +}; + +static const long _vq_quantlist__44un1__p3_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44un1__p3_0[] = { + 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, + 10, 9,12,12, 9, 9,10,11,12, 6, 8, 8,10,10, 8,10, + 10,11,11, 8, 9,10,11,11,10,11,11,13,13,10,11,11, + 12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10,10,11, + 11,10,11,11,13,12,10,11,11,13,12, 9,11,11,15,13, + 10,12,11,15,13,10,11,11,15,14,12,14,13,16,15,12, + 13,13,17,16, 9,11,11,13,15,10,11,12,14,15,10,11, + 12,14,15,12,13,13,15,16,12,13,13,16,16, 5, 8, 8, + 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, + 14,11,12,12,14,14, 8,11,10,13,12,10,11,12,12,13, + 10,12,12,13,13,12,12,13,13,15,11,12,13,15,14, 7, + 10,10,12,12, 9,12,11,13,12,10,12,12,13,14,12,13, + 12,15,13,11,13,12,14,15,10,12,12,16,14,11,12,12, + 16,15,11,13,12,17,16,13,13,15,15,17,13,15,15,20, + 17,10,12,12,14,16,11,12,12,15,15,11,13,13,15,18, + 13,14,13,15,15,13,15,14,16,16, 5, 8, 8,11,11, 8, + 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, + 12,14,15, 7,10,10,13,12,10,12,12,14,13, 9,10,12, + 12,13,11,13,13,15,15,11,12,13,13,15, 8,10,10,12, + 13,10,12,12,13,13,10,12,11,13,13,11,13,12,15,15, + 12,13,12,15,13,10,12,12,16,14,11,12,12,16,15,10, + 12,12,16,14,14,15,14,18,16,13,13,14,15,16,10,12, + 12,14,16,11,13,13,16,16,11,13,12,14,16,13,15,15, + 18,18,13,15,13,16,14, 8,11,11,16,16,10,13,13,17, + 16,10,12,12,16,15,14,16,15,20,17,13,14,14,17,17, + 9,12,12,16,16,11,13,14,16,17,11,13,13,16,16,15, + 15,19,18, 0,14,15,15,18,18, 9,12,12,17,16,11,13, + 12,17,16,11,12,13,15,17,15,16,15, 0,19,14,15,14, + 19,18,12,14,14, 0,16,13,14,14,19,18,13,15,16,17, + 16,15,15,17,18, 0,14,16,16,19, 0,12,14,14,16,18, + 13,15,13,17,18,13,15,14,17,18,15,18,14,18,18,16, + 17,16, 0,17, 8,11,11,15,15,10,12,12,16,16,10,13, + 13,16,16,13,15,14,17,17,14,15,17,17,18, 9,12,12, + 16,15,11,13,13,16,16,11,12,13,17,17,14,14,15,17, + 17,14,15,16, 0,18, 9,12,12,16,17,11,13,13,16,17, + 11,14,13,18,17,14,16,14,17,17,15,17,17,18,18,12, + 14,14, 0,16,13,15,15,19, 0,12,13,15, 0, 0,14,17, + 16,19, 0,16,15,18,18, 0,12,14,14,17, 0,13,14,14, + 17, 0,13,15,14, 0,18,15,16,16, 0,18,15,18,15, 0, + 17, +}; + +static const static_codebook _44un1__p3_0 = { + 4, 625, + (long *)_vq_lengthlist__44un1__p3_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44un1__p3_0, + 0 +}; + +static const long _vq_quantlist__44un1__p4_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44un1__p4_0[] = { + 3, 5, 5, 9, 9, 5, 6, 6,10, 9, 5, 6, 6, 9,10,10, + 10,10,12,11, 9,10,10,12,12, 5, 7, 7,10,10, 7, 7, + 8,10,11, 7, 7, 8,10,11,10,10,11,11,13,10,10,11, + 11,13, 6, 7, 7,10,10, 7, 8, 7,11,10, 7, 8, 7,10, + 10,10,11, 9,13,11,10,11,10,13,11,10,10,10,14,13, + 10,11,11,14,13,10,10,11,13,14,12,12,13,15,15,12, + 12,13,13,14,10,10,10,12,13,10,11,10,13,13,10,11, + 11,13,13,12,13,12,14,13,12,13,13,14,13, 5, 7, 7, + 10,10, 7, 8, 8,11,10, 7, 8, 8,10,10,11,11,11,13, + 13,10,11,11,12,12, 7, 8, 8,11,11, 7, 8, 9,10,12, + 8, 9, 9,11,11,11,10,12,11,14,11,11,12,13,13, 6, + 8, 8,10,11, 7, 9, 7,12,10, 8, 9,10,11,12,10,12, + 10,14,11,11,12,11,13,13,10,11,11,14,14,10,10,11, + 13,14,11,12,12,15,13,12,11,14,12,16,12,13,14,15, + 16,10,10,11,13,14,10,11,10,14,12,11,12,12,13,14, + 12,13,11,15,12,14,14,14,15,15, 5, 7, 7,10,10, 7, + 8, 8,10,10, 7, 8, 8,10,11,10,11,10,12,12,10,11, + 11,12,13, 6, 8, 8,11,11, 8, 9, 9,12,11, 7, 7, 9, + 10,12,11,11,11,12,13,11,10,12,11,15, 7, 8, 8,11, + 11, 8, 9, 9,11,11, 7, 9, 8,12,10,11,12,11,13,12, + 11,12,10,15,11,10,11,10,14,12,11,12,11,14,13,10, + 10,11,13,14,13,13,13,17,15,12,11,14,12,15,10,10, + 11,13,14,11,12,12,14,14,10,11,10,14,13,13,14,13, + 16,17,12,14,11,16,12, 9,10,10,14,13,10,11,10,14, + 14,10,11,11,13,13,13,14,14,16,15,12,13,13,14,14, + 9,11,10,14,13,10,10,12,13,14,11,12,11,14,13,13, + 14,14,14,15,13,14,14,15,15, 9,10,11,13,14,10,11, + 10,15,13,11,11,12,12,15,13,14,12,15,14,13,13,14, + 14,15,12,13,12,16,14,11,11,12,15,14,13,15,13,16, + 14,13,12,15,12,17,15,16,15,16,16,12,12,13,13,15, + 11,13,11,15,14,13,13,14,15,17,13,14,12, 0,13,14, + 15,14,15, 0, 9,10,10,13,13,10,11,11,13,13,10,11, + 11,13,13,12,13,12,14,14,13,14,14,15,17, 9,10,10, + 13,13,11,12,11,15,12,10,10,11,13,16,13,14,13,15, + 14,13,13,14,15,16,10,10,11,13,14,11,11,12,13,14, + 10,12,11,14,14,13,13,13,14,15,13,15,13,16,15,12, + 13,12,15,13,12,15,13,15,15,11,11,13,14,15,15,15, + 15,15,17,13,12,14,13,17,12,12,14,14,15,13,13,14, + 14,16,11,13,11,16,15,14,16,16,17, 0,14,13,11,16, + 12, +}; + +static const static_codebook _44un1__p4_0 = { + 4, 625, + (long *)_vq_lengthlist__44un1__p4_0, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44un1__p4_0, + 0 +}; + +static const long _vq_quantlist__44un1__p5_0[] = { + 4, + 3, + 5, + 2, + 6, + 1, + 7, + 0, + 8, +}; + +static const long _vq_lengthlist__44un1__p5_0[] = { + 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 7, 8, 8, + 10, 9, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 7, 9, 9, + 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 8, 8, 8, + 9, 9,10,10,11,11, 8, 8, 8, 9, 9,10,10,11,11, 9, + 10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, + 12, +}; + +static const static_codebook _44un1__p5_0 = { + 2, 81, + (long *)_vq_lengthlist__44un1__p5_0, + 1, -531628032, 1611661312, 4, 0, + (long *)_vq_quantlist__44un1__p5_0, + 0 +}; + +static const long _vq_quantlist__44un1__p6_0[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44un1__p6_0[] = { + 1, 4, 4, 6, 6, 8, 8,10,10,11,11,15,15, 4, 5, 5, + 8, 8, 9, 9,11,11,12,12,16,16, 4, 5, 6, 8, 8, 9, + 9,11,11,12,12,14,14, 7, 8, 8, 9, 9,10,10,11,12, + 13,13,16,17, 7, 8, 8, 9, 9,10,10,12,12,12,13,15, + 15, 9,10,10,10,10,11,11,12,12,13,13,15,16, 9, 9, + 9,10,10,11,11,13,12,13,13,17,17,10,11,11,11,12, + 12,12,13,13,14,15, 0,18,10,11,11,12,12,12,13,14, + 13,14,14,17,16,11,12,12,13,13,14,14,14,14,15,16, + 17,16,11,12,12,13,13,14,14,14,14,15,15,17,17,14, + 15,15,16,16,16,17,17,16, 0,17, 0,18,14,15,15,16, + 16, 0,15,18,18, 0,16, 0, 0, +}; + +static const static_codebook _44un1__p6_0 = { + 2, 169, + (long *)_vq_lengthlist__44un1__p6_0, + 1, -526516224, 1616117760, 4, 0, + (long *)_vq_quantlist__44un1__p6_0, + 0 +}; + +static const long _vq_quantlist__44un1__p6_1[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44un1__p6_1[] = { + 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 6, 5, 5, + 6, 5, 6, 6, 5, 6, 6, 6, 6, +}; + +static const static_codebook _44un1__p6_1 = { + 2, 25, + (long *)_vq_lengthlist__44un1__p6_1, + 1, -533725184, 1611661312, 3, 0, + (long *)_vq_quantlist__44un1__p6_1, + 0 +}; + +static const long _vq_quantlist__44un1__p7_0[] = { + 2, + 1, + 3, + 0, + 4, +}; + +static const long _vq_lengthlist__44un1__p7_0[] = { + 1, 5, 3,11,11,11,11,11,11,11, 8,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11, 8,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11, 7,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, +}; + +static const static_codebook _44un1__p7_0 = { + 4, 625, + (long *)_vq_lengthlist__44un1__p7_0, + 1, -518709248, 1626677248, 3, 0, + (long *)_vq_quantlist__44un1__p7_0, + 0 +}; + +static const long _vq_quantlist__44un1__p7_1[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44un1__p7_1[] = { + 1, 4, 4, 6, 6, 6, 6, 9, 8, 9, 8, 8, 8, 5, 7, 7, + 7, 7, 8, 8, 8,10, 8,10, 8, 9, 5, 7, 7, 8, 7, 7, + 8,10,10,11,10,12,11, 7, 8, 8, 9, 9, 9,10,11,11, + 11,11,11,11, 7, 8, 8, 8, 9, 9, 9,10,10,10,11,11, + 12, 7, 8, 8, 9, 9,10,11,11,12,11,12,11,11, 7, 8, + 8, 9, 9,10,10,11,11,11,12,12,11, 8,10,10,10,10, + 11,11,14,11,12,12,12,13, 9,10,10,10,10,12,11,14, + 11,14,11,12,13,10,11,11,11,11,13,11,14,14,13,13, + 13,14,11,11,11,12,11,12,12,12,13,14,14,13,14,12, + 11,12,12,12,12,13,13,13,14,13,14,14,11,12,12,14, + 12,13,13,12,13,13,14,14,14, +}; + +static const static_codebook _44un1__p7_1 = { + 2, 169, + (long *)_vq_lengthlist__44un1__p7_1, + 1, -523010048, 1618608128, 4, 0, + (long *)_vq_quantlist__44un1__p7_1, + 0 +}; + +static const long _vq_quantlist__44un1__p7_2[] = { + 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, + 0, + 12, +}; + +static const long _vq_lengthlist__44un1__p7_2[] = { + 3, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 8, 4, 5, 5, + 6, 6, 8, 8, 9, 8, 9, 9, 9, 9, 4, 5, 5, 7, 6, 8, + 8, 8, 8, 9, 8, 9, 8, 6, 7, 7, 7, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, + 9, 7, 8, 8, 8, 8, 9, 8, 9, 9,10, 9, 9,10, 7, 8, + 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 8, 9, 9, 9, 9, + 9, 9, 9, 9,10,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9,10,10, 9, 9, 9,10, 9, 9,10, 9, 9,10,10, + 10,10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, 9, + 9, 9,10, 9, 9,10,10, 9,10,10,10,10, 9, 9, 9,10, + 9, 9, 9,10,10,10,10,10,10, +}; + +static const static_codebook _44un1__p7_2 = { + 2, 169, + (long *)_vq_lengthlist__44un1__p7_2, + 1, -531103744, 1611661312, 4, 0, + (long *)_vq_quantlist__44un1__p7_2, + 0 +}; + +static const long _huff_lengthlist__44un1__short[] = { + 12,12,14,12,14,14,14,14,12, 6, 6, 8, 9, 9,11,14, + 12, 4, 2, 6, 6, 7,11,14,13, 6, 5, 7, 8, 9,11,14, + 13, 8, 5, 8, 6, 8,12,14,12, 7, 7, 8, 8, 8,10,14, + 12, 6, 3, 4, 4, 4, 7,14,11, 7, 4, 6, 6, 6, 8,14, +}; + +static const static_codebook _huff_book__44un1__short = { + 2, 64, + (long *)_huff_lengthlist__44un1__short, + 0, 0, 0, 0, 0, + NULL, + 0 +}; + diff --git a/libvorbis-1.0.1/lib/codebook.c b/Dependencies/libvorbis/lib/codebook.c similarity index 54% rename from libvorbis-1.0.1/lib/codebook.c rename to Dependencies/libvorbis/lib/codebook.c index ea36032..772eea6 100644 --- a/libvorbis-1.0.1/lib/codebook.c +++ b/Dependencies/libvorbis/lib/codebook.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: basic codebook pack/unpack/code/decode operations - last mod: $Id: codebook.c,v 1.39 2002/06/28 22:19:35 xiphmont Exp $ + last mod: $Id: codebook.c 17030 2010-03-25 06:52:55Z xiphmont $ ********************************************************************/ @@ -38,11 +38,11 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ /* pack the codewords. There are two packings; length ordered and length random. Decide between the two now. */ - + for(i=1;ientries;i++) if(c->lengthlist[i-1]==0 || c->lengthlist[i]lengthlist[i-1])break; if(i==c->entries)ordered=1; - + if(ordered){ /* length ordered. We only need to say how many codewords of each length. The actual codewords are generated @@ -56,19 +56,19 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ long this=c->lengthlist[i]; long last=c->lengthlist[i-1]; if(this>last){ - for(j=last;jentries-count)); - count=i; - } + for(j=last;jentries-count)); + count=i; + } } } oggpack_write(opb,i-count,_ilog(c->entries-count)); - + }else{ /* length random. Again, we don't code the codeword itself, just the length. This time, though, we have to encode each length */ oggpack_write(opb,0,1); /* unordered */ - + /* algortihmic mapping has use for 'unused entries', which we tag here. The algorithmic mapping happens as usual, but the unused entry has no codeword. */ @@ -78,16 +78,16 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ if(i==c->entries){ oggpack_write(opb,0,1); /* no unused entries */ for(i=0;ientries;i++) - oggpack_write(opb,c->lengthlist[i]-1,5); + oggpack_write(opb,c->lengthlist[i]-1,5); }else{ oggpack_write(opb,1,1); /* we have unused entries; thus we tag */ for(i=0;ientries;i++){ - if(c->lengthlist[i]==0){ - oggpack_write(opb,0,1); - }else{ - oggpack_write(opb,1,1); - oggpack_write(opb,c->lengthlist[i]-1,5); - } + if(c->lengthlist[i]==0){ + oggpack_write(opb,0,1); + }else{ + oggpack_write(opb,1,1); + oggpack_write(opb,c->lengthlist[i]-1,5); + } } } } @@ -102,37 +102,37 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ case 1:case 2: /* implicitly populated value mapping */ /* explicitly populated value mapping */ - + if(!c->quantlist){ /* no quantlist? error */ return(-1); } - + /* values that define the dequantization */ oggpack_write(opb,c->q_min,32); oggpack_write(opb,c->q_delta,32); oggpack_write(opb,c->q_quant-1,4); oggpack_write(opb,c->q_sequencep,1); - + { int quantvals; switch(c->maptype){ case 1: - /* a single column of (c->entries/c->dim) quantized values for - building a full value list algorithmically (square lattice) */ - quantvals=_book_maptype1_quantvals(c); - break; + /* a single column of (c->entries/c->dim) quantized values for + building a full value list algorithmically (square lattice) */ + quantvals=_book_maptype1_quantvals(c); + break; case 2: - /* every value (c->entries*c->dim total) specified explicitly */ - quantvals=c->entries*c->dim; - break; + /* every value (c->entries*c->dim total) specified explicitly */ + quantvals=c->entries*c->dim; + break; default: /* NOT_REACHABLE */ - quantvals=-1; + quantvals=-1; } /* quantized values */ for(i=0;iquantlist[i]),c->q_quant); + oggpack_write(opb,labs(c->quantlist[i]),c->q_quant); } break; @@ -146,9 +146,9 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ /* unpacks a codebook from the packet buffer into the codebook struct, readies the codebook auxiliary structures for decode *************/ -int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ +static_codebook *vorbis_staticbook_unpack(oggpack_buffer *opb){ long i,j; - memset(s,0,sizeof(*s)); + static_codebook *s=_ogg_calloc(1,sizeof(*s)); s->allocedp=1; /* make sure alignment is correct */ @@ -159,6 +159,8 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ s->entries=oggpack_read(opb,24); if(s->entries==-1)goto _eofout; + if(_ilog(s->dim)+_ilog(s->entries)>24)goto _eofout; + /* codeword ordering.... length ordered or unordered? */ switch((int)oggpack_read(opb,1)){ case 0: @@ -170,22 +172,22 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ /* yes, unused entries */ for(i=0;ientries;i++){ - if(oggpack_read(opb,1)){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - s->lengthlist[i]=num+1; - }else - s->lengthlist[i]=0; + if(oggpack_read(opb,1)){ + long num=oggpack_read(opb,5); + if(num==-1)goto _eofout; + s->lengthlist[i]=num+1; + }else + s->lengthlist[i]=0; } }else{ /* all entries used; no tagging */ for(i=0;ientries;i++){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - s->lengthlist[i]=num+1; + long num=oggpack_read(opb,5); + if(num==-1)goto _eofout; + s->lengthlist[i]=num+1; } } - + break; case 1: /* ordered */ @@ -194,19 +196,20 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries); for(i=0;ientries;){ - long num=oggpack_read(opb,_ilog(s->entries-i)); - if(num==-1)goto _eofout; - for(j=0;jentries;j++,i++) - s->lengthlist[i]=length; - length++; + long num=oggpack_read(opb,_ilog(s->entries-i)); + if(num==-1)goto _eofout; + if(length>32)goto _errout; + for(j=0;jentries;j++,i++) + s->lengthlist[i]=length; + length++; } } break; default: /* EOF */ - return(-1); + goto _eofout; } - + /* Do we have a mapping to unpack? */ switch((s->maptype=oggpack_read(opb,4))){ case 0: @@ -220,23 +223,24 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ s->q_delta=oggpack_read(opb,32); s->q_quant=oggpack_read(opb,4)+1; s->q_sequencep=oggpack_read(opb,1); + if(s->q_sequencep==-1)goto _eofout; { int quantvals=0; switch(s->maptype){ case 1: - quantvals=_book_maptype1_quantvals(s); - break; + quantvals=(s->dim==0?0:_book_maptype1_quantvals(s)); + break; case 2: - quantvals=s->entries*s->dim; - break; + quantvals=s->entries*s->dim; + break; } - + /* quantized values */ s->quantlist=_ogg_malloc(sizeof(*s->quantlist)*quantvals); for(i=0;iquantlist[i]=oggpack_read(opb,s->q_quant); - + s->quantlist[i]=oggpack_read(opb,s->q_quant); + if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout; } break; @@ -245,51 +249,21 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ } /* all set */ - return(0); - + return(s); + _errout: _eofout: - vorbis_staticbook_clear(s); - return(-1); + vorbis_staticbook_destroy(s); + return(NULL); } /* returns the number of bits ************************************************/ int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){ + if(a<0 || a>=book->c->entries)return(0); oggpack_write(b,book->codelist[a],book->c->lengthlist[a]); return(book->c->lengthlist[a]); } -/* One the encode side, our vector writers are each designed for a -specific purpose, and the encoder is not flexible without modification: - -The LSP vector coder uses a single stage nearest-match with no -interleave, so no step and no error return. This is specced by floor0 -and doesn't change. - -Residue0 encoding interleaves, uses multiple stages, and each stage -peels of a specific amount of resolution from a lattice (thus we want -to match by threshold, not nearest match). Residue doesn't *have* to -be encoded that way, but to change it, one will need to add more -infrastructure on the encode side (decode side is specced and simpler) */ - -/* floor0 LSP (single stage, non interleaved, nearest match) */ -/* returns entry number and *modifies a* to the quantization value *****/ -int vorbis_book_errorv(codebook *book,float *a){ - int dim=book->dim,k; - int best=_best(book,a,1); - for(k=0;kvaluelist+best*dim)[k]; - return(best); -} - -/* returns the number of bits and *modifies a* to the quantization value *****/ -int vorbis_book_encodev(codebook *book,int best,float *a,oggpack_buffer *b){ - int k,dim=book->dim; - for(k=0;kvaluelist+best*dim)[k]; - return(vorbis_book_encode(book,best,b)); -} - /* the 'eliminate the decode tree' optimization actually requires the codewords to be MSb first, not LSb. This is an annoying inelegancy (and one of the first places where carefully thought out design @@ -310,7 +284,7 @@ STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){ int read=book->dec_maxlength; long lo,hi; long lok = oggpack_look(b,book->dec_firsttablen); - + if (lok >= 0) { long entry = book->dec_firsttable[lok]; if(entry&0x80000000UL){ @@ -337,279 +311,156 @@ STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){ while(hi-lo>1){ long p=(hi-lo)>>1; - long test=book->codelist[lo+p]>testword; + long test=book->codelist[lo+p]>testword; lo+=p&(test-1); hi-=p&(-test); - } + } if(book->dec_codelengths[lo]<=read){ oggpack_adv(b, book->dec_codelengths[lo]); return(lo); } } - + oggpack_adv(b, read); + return(-1); } /* Decode side is specced and easier, because we don't need to find matches using different criteria; we simply read and map. There are two things we need to do 'depending': - + We may need to support interleave. We don't really, but it's convenient to do it here rather than rebuild the vector later. Cascades may be additive or multiplicitive; this is not inherent in the codebook, but set in the code using the codebook. Like - interleaving, it's easiest to do it here. + interleaving, it's easiest to do it here. addmul==0 -> declarative (set the value) addmul==1 -> additive addmul==2 -> multiplicitive */ /* returns the [original, not compacted] entry number or -1 on eof *********/ long vorbis_book_decode(codebook *book, oggpack_buffer *b){ - long packed_entry=decode_packed_entry_number(book,b); - if(packed_entry>=0) - return(book->dec_index[packed_entry]); - + if(book->used_entries>0){ + long packed_entry=decode_packed_entry_number(book,b); + if(packed_entry>=0) + return(book->dec_index[packed_entry]); + } + /* if there's no dec_index, the codebook unpacking isn't collapsed */ - return(packed_entry); + return(-1); } /* returns 0 on OK or -1 on eof *************************************/ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){ - int step=n/book->dim; - long *entry = alloca(sizeof(*entry)*step); - float **t = alloca(sizeof(*t)*step); - int i,j,o; - - for (i = 0; i < step; i++) { - entry[i]=decode_packed_entry_number(book,b); - if(entry[i]==-1)return(-1); - t[i] = book->valuelist+entry[i]*book->dim; + if(book->used_entries>0){ + int step=n/book->dim; + long *entry = alloca(sizeof(*entry)*step); + float **t = alloca(sizeof(*t)*step); + int i,j,o; + + for (i = 0; i < step; i++) { + entry[i]=decode_packed_entry_number(book,b); + if(entry[i]==-1)return(-1); + t[i] = book->valuelist+entry[i]*book->dim; + } + for(i=0,o=0;idim;i++,o+=step) + for (j=0;jdim;i++,o+=step) - for (j=0;jused_entries>0){ + int i,j,entry; + float *t; + + if(book->dim>8){ + for(i=0;ivaluelist+entry*book->dim; + for (j=0;jdim;) + a[i++]+=t[j++]; + } + }else{ + for(i=0;ivaluelist+entry*book->dim; + j=0; + switch((int)book->dim){ + case 8: + a[i++]+=t[j++]; + case 7: + a[i++]+=t[j++]; + case 6: + a[i++]+=t[j++]; + case 5: + a[i++]+=t[j++]; + case 4: + a[i++]+=t[j++]; + case 3: + a[i++]+=t[j++]; + case 2: + a[i++]+=t[j++]; + case 1: + a[i++]+=t[j++]; + case 0: + break; + } + } + } + } + return(0); +} + +long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ + if(book->used_entries>0){ + int i,j,entry; + float *t; - if(book->dim>8){ for(i=0;ivaluelist+entry*book->dim; for (j=0;jdim;) - a[i++]+=t[j++]; + a[i++]=t[j++]; } }else{ + int i,j; + for(i=0;ivaluelist+entry*book->dim; - j=0; - switch((int)book->dim){ - case 8: - a[i++]+=t[j++]; - case 7: - a[i++]+=t[j++]; - case 6: - a[i++]+=t[j++]; - case 5: - a[i++]+=t[j++]; - case 4: - a[i++]+=t[j++]; - case 3: - a[i++]+=t[j++]; - case 2: - a[i++]+=t[j++]; - case 1: - a[i++]+=t[j++]; - case 0: - break; - } + for (j=0;jdim;) + a[i++]=0.f; } - } - return(0); -} - -long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ - int i,j,entry; - float *t; - - for(i=0;ivaluelist+entry*book->dim; - for (j=0;jdim;) - a[i++]=t[j++]; } return(0); } long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch, - oggpack_buffer *b,int n){ + oggpack_buffer *b,int n){ + long i,j,entry; int chptr=0; - - for(i=offset/ch;i<(offset+n)/ch;){ - entry = decode_packed_entry_number(book,b); - if(entry==-1)return(-1); - { - const float *t = book->valuelist+entry*book->dim; - for (j=0;jdim;j++){ - a[chptr++][i]+=t[j]; - if(chptr==ch){ - chptr=0; - i++; - } + if(book->used_entries>0){ + for(i=offset/ch;i<(offset+n)/ch;){ + entry = decode_packed_entry_number(book,b); + if(entry==-1)return(-1); + { + const float *t = book->valuelist+entry*book->dim; + for (j=0;jdim;j++){ + a[chptr++][i]+=t[j]; + if(chptr==ch){ + chptr=0; + i++; + } + } } } } return(0); } - -#ifdef _V_SELFTEST -/* Simple enough; pack a few candidate codebooks, unpack them. Code a - number of vectors through (keeping track of the quantized values), - and decode using the unpacked book. quantized version of in should - exactly equal out */ - -#include - -#include "vorbis/book/lsp20_0.vqh" -#include "vorbis/book/res0a_13.vqh" -#define TESTSIZE 40 - -float test1[TESTSIZE]={ - 0.105939f, - 0.215373f, - 0.429117f, - 0.587974f, - - 0.181173f, - 0.296583f, - 0.515707f, - 0.715261f, - - 0.162327f, - 0.263834f, - 0.342876f, - 0.406025f, - - 0.103571f, - 0.223561f, - 0.368513f, - 0.540313f, - - 0.136672f, - 0.395882f, - 0.587183f, - 0.652476f, - - 0.114338f, - 0.417300f, - 0.525486f, - 0.698679f, - - 0.147492f, - 0.324481f, - 0.643089f, - 0.757582f, - - 0.139556f, - 0.215795f, - 0.324559f, - 0.399387f, - - 0.120236f, - 0.267420f, - 0.446940f, - 0.608760f, - - 0.115587f, - 0.287234f, - 0.571081f, - 0.708603f, -}; - -float test3[TESTSIZE]={ - 0,1,-2,3,4,-5,6,7,8,9, - 8,-2,7,-1,4,6,8,3,1,-9, - 10,11,12,13,14,15,26,17,18,19, - 30,-25,-30,-1,-5,-32,4,3,-2,0}; - -static_codebook *testlist[]={&_vq_book_lsp20_0, - &_vq_book_res0a_13,NULL}; -float *testvec[]={test1,test3}; - -int main(){ - oggpack_buffer write; - oggpack_buffer read; - long ptr=0,i; - oggpack_writeinit(&write); - - fprintf(stderr,"Testing codebook abstraction...:\n"); - - while(testlist[ptr]){ - codebook c; - static_codebook s; - float *qv=alloca(sizeof(*qv)*TESTSIZE); - float *iv=alloca(sizeof(*iv)*TESTSIZE); - memcpy(qv,testvec[ptr],sizeof(*qv)*TESTSIZE); - memset(iv,0,sizeof(*iv)*TESTSIZE); - - fprintf(stderr,"\tpacking/coding %ld... ",ptr); - - /* pack the codebook, write the testvector */ - oggpack_reset(&write); - vorbis_book_init_encode(&c,testlist[ptr]); /* get it into memory - we can write */ - vorbis_staticbook_pack(testlist[ptr],&write); - fprintf(stderr,"Codebook size %ld bytes... ",oggpack_bytes(&write)); - for(i=0;i.000001){ - fprintf(stderr,"read (%g) != written (%g) at position (%ld)\n", - iv[i],qv[i],i); - exit(1); - } - - fprintf(stderr,"OK\n"); - ptr++; - } - - /* The above is the trivial stuff; now try unquantizing a log scale codebook */ - - exit(0); -} - -#endif diff --git a/Dependencies/libvorbis/lib/codebook.h b/Dependencies/libvorbis/lib/codebook.h new file mode 100644 index 0000000..94c3005 --- /dev/null +++ b/Dependencies/libvorbis/lib/codebook.h @@ -0,0 +1,119 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: basic shared codebook operations + last mod: $Id: codebook.h 17030 2010-03-25 06:52:55Z xiphmont $ + + ********************************************************************/ + +#ifndef _V_CODEBOOK_H_ +#define _V_CODEBOOK_H_ + +#include + +/* This structure encapsulates huffman and VQ style encoding books; it + doesn't do anything specific to either. + + valuelist/quantlist are nonNULL (and q_* significant) only if + there's entry->value mapping to be done. + + If encode-side mapping must be done (and thus the entry needs to be + hunted), the auxiliary encode pointer will point to a decision + tree. This is true of both VQ and huffman, but is mostly useful + with VQ. + +*/ + +typedef struct static_codebook{ + long dim; /* codebook dimensions (elements per vector) */ + long entries; /* codebook entries */ + long *lengthlist; /* codeword lengths in bits */ + + /* mapping ***************************************************************/ + int maptype; /* 0=none + 1=implicitly populated values from map column + 2=listed arbitrary values */ + + /* The below does a linear, single monotonic sequence mapping. */ + long q_min; /* packed 32 bit float; quant value 0 maps to minval */ + long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ + int q_quant; /* bits: 0 < quant <= 16 */ + int q_sequencep; /* bitflag */ + + long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map + map == 2: list of dim*entries quantized entry vals + */ + int allocedp; +} static_codebook; + +typedef struct codebook{ + long dim; /* codebook dimensions (elements per vector) */ + long entries; /* codebook entries */ + long used_entries; /* populated codebook entries */ + const static_codebook *c; + + /* for encode, the below are entry-ordered, fully populated */ + /* for decode, the below are ordered by bitreversed codeword and only + used entries are populated */ + float *valuelist; /* list of dim*entries actual entry values */ + ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */ + + int *dec_index; /* only used if sparseness collapsed */ + char *dec_codelengths; + ogg_uint32_t *dec_firsttable; + int dec_firsttablen; + int dec_maxlength; + + /* The current encoder uses only centered, integer-only lattice books. */ + int quantvals; + int minval; + int delta; +} codebook; + +extern void vorbis_staticbook_destroy(static_codebook *b); +extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source); +extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); +extern void vorbis_book_clear(codebook *b); + +extern float *_book_unquantize(const static_codebook *b,int n,int *map); +extern float *_book_logdist(const static_codebook *b,float *vals); +extern float _float32_unpack(long val); +extern long _float32_pack(float val); +extern int _best(codebook *book, float *a, int step); +extern int _ilog(unsigned int v); +extern long _book_maptype1_quantvals(const static_codebook *b); + +extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul); +extern long vorbis_book_codeword(codebook *book,int entry); +extern long vorbis_book_codelen(codebook *book,int entry); + + + +extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b); +extern static_codebook *vorbis_staticbook_unpack(oggpack_buffer *b); + +extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b); + +extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); +extern long vorbis_book_decodevs_add(codebook *book, float *a, + oggpack_buffer *b,int n); +extern long vorbis_book_decodev_set(codebook *book, float *a, + oggpack_buffer *b,int n); +extern long vorbis_book_decodev_add(codebook *book, float *a, + oggpack_buffer *b,int n); +extern long vorbis_book_decodevv_add(codebook *book, float **a, + long off,int ch, + oggpack_buffer *b,int n); + + + +#endif diff --git a/libvorbis-1.0.1/lib/codec_internal.h b/Dependencies/libvorbis/lib/codec_internal.h similarity index 74% rename from libvorbis-1.0.1/lib/codec_internal.h rename to Dependencies/libvorbis/lib/codec_internal.h index 8559771..de1bcca 100644 --- a/libvorbis-1.0.1/lib/codec_internal.h +++ b/Dependencies/libvorbis/lib/codec_internal.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: libvorbis codec headers - last mod: $Id: codec_internal.h,v 1.17 2003/08/18 05:34:01 xiphmont Exp $ + last mod: $Id: codec_internal.h 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -23,17 +23,20 @@ #define BLOCKTYPE_IMPULSE 0 #define BLOCKTYPE_PADDING 1 -#define BLOCKTYPE_TRANSITION 0 +#define BLOCKTYPE_TRANSITION 0 #define BLOCKTYPE_LONG 1 #define PACKETBLOBS 15 typedef struct vorbis_block_internal{ - float **pcmdelay; /* this is a pointer into local storage */ + float **pcmdelay; /* this is a pointer into local storage */ float ampmax; int blocktype; - ogg_uint32_t packetblob_markers[PACKETBLOBS]; + oggpack_buffer *packetblob[PACKETBLOBS]; /* initialized, must be freed; + blob [PACKETBLOBS/2] points to + the oggpack_buffer in the + main vorbis_block */ } vorbis_block_internal; typedef void vorbis_look_floor; @@ -57,7 +60,7 @@ typedef void vorbis_info_mapping; typedef struct private_state { /* local lookup storage */ - envelope_lookup *ve; /* envelope lookup */ + envelope_lookup *ve; /* envelope lookup */ int window[2]; vorbis_look_transform **transform[2]; /* block, type */ drft_lookup fft_look[2]; @@ -84,7 +87,7 @@ typedef struct private_state { /* codec_setup_info contains all the setup information specific to the specific compression/decompression mode in progress (eg, psychoacoustic settings, channel setup, options, codebook - etc). + etc). *********************************************************************/ #include "highlevel.h" @@ -124,11 +127,41 @@ typedef struct codec_setup_info { highlevel_encode_setup hi; /* used only by vorbisenc.c. It's a highly redundant structure, but improves clarity of program flow. */ - int halfrate_flag; /* painless downsample for decode */ + int halfrate_flag; /* painless downsample for decode */ } codec_setup_info; extern vorbis_look_psy_global *_vp_global_look(vorbis_info *vi); extern void _vp_global_free(vorbis_look_psy_global *look); -#endif + +typedef struct { + int sorted_index[VIF_POSIT+2]; + int forward_index[VIF_POSIT+2]; + int reverse_index[VIF_POSIT+2]; + + int hineighbor[VIF_POSIT]; + int loneighbor[VIF_POSIT]; + int posts; + + int n; + int quant_q; + vorbis_info_floor1 *vi; + + long phrasebits; + long postbits; + long frames; +} vorbis_look_floor1; + + + +extern int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, + const float *logmdct, /* in */ + const float *logmask); +extern int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, + int *A,int *B, + int del); +extern int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, + vorbis_look_floor1 *look, + int *post,int *ilogmask); +#endif diff --git a/libvorbis-1.0.1/lib/envelope.c b/Dependencies/libvorbis/lib/envelope.c similarity index 77% rename from libvorbis-1.0.1/lib/envelope.c rename to Dependencies/libvorbis/lib/envelope.c index 0199a6d..010c66e 100644 --- a/libvorbis-1.0.1/lib/envelope.c +++ b/Dependencies/libvorbis/lib/envelope.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** - function: PCM data envelope analysis - last mod: $Id: envelope.c,v 1.54 2003/09/05 23:17:49 giles Exp $ + function: PCM data envelope analysis + last mod: $Id: envelope.c 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -67,7 +67,7 @@ void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){ } e->band[j].total=1./e->band[j].total; } - + e->filter=_ogg_calloc(VE_BANDS*ch,sizeof(*e->filter)); e->mark=_ogg_calloc(e->storage,sizeof(*e->mark)); @@ -88,11 +88,10 @@ void _ve_envelope_clear(envelope_lookup *e){ that works better and isn't patented. */ static int _ve_amp(envelope_lookup *ve, - vorbis_info_psy_global *gi, - float *data, - envelope_band *bands, - envelope_filter_state *filters, - long pos){ + vorbis_info_psy_global *gi, + float *data, + envelope_band *bands, + envelope_filter_state *filters){ long n=ve->winlength; int ret=0; long i,j; @@ -111,15 +110,15 @@ static int _ve_amp(envelope_lookup *ve, float penalty=gi->stretch_penalty-(ve->stretch/2-VE_MINSTRETCH); if(penalty<0.f)penalty=0.f; if(penalty>gi->stretch_penalty)penalty=gi->stretch_penalty; - + /*_analysis_output_always("lpcm",seq2,data,n,0,0, totalshift+pos*ve->searchstep);*/ - + /* window and transform */ for(i=0;imdct_win[i]; mdct_forward(&ve->mdct,vec,vec); - + /*_analysis_output_always("mdct",seq2,vec,n/2,0,1,0); */ /* near-DC spreading function; this has nothing to do with @@ -145,7 +144,7 @@ static int _ve_amp(envelope_lookup *ve, if(filters->nearptr>=VE_NEARDC)filters->nearptr=0; decay=todB(&decay)*.5-15.f; } - + /* perform spreading and limiting, also smooth the spectrum. yes, the MDCT results in all real coefficients, but it still *behaves* like real/imaginary pairs */ @@ -159,7 +158,7 @@ static int _ve_amp(envelope_lookup *ve, } /*_analysis_output_always("spread",seq2++,vec,n/4,0,0,0);*/ - + /* perform preecho/postecho triggering by band */ for(j=0;jpostecho_thresh[j]-penalty)ret|=2; } - + return(ret); } @@ -237,10 +236,10 @@ long _ve_envelope_search(vorbis_dsp_state *v){ ve->stretch++; if(ve->stretch>VE_MAXSTRETCH*2) ve->stretch=VE_MAXSTRETCH*2; - + for(i=0;ich;i++){ float *pcm=v->pcm[i]+ve->searchstep*(j); - ret|=_ve_amp(ve,gi,pcm,ve->band,ve->filter+i*VE_BANDS,j); + ret|=_ve_amp(ve,gi,pcm,ve->band,ve->filter+i*VE_BANDS); } ve->mark[j+VE_POST]=0; @@ -266,65 +265,65 @@ long _ve_envelope_search(vorbis_dsp_state *v){ ci->blocksizes[v->W]/4+ ci->blocksizes[1]/2+ ci->blocksizes[0]/4; - + j=ve->cursor; - + while(jcurrent-(ve->searchstep)){/* account for postecho working back one window */ if(j>=testW)return(1); - + ve->cursor=j; if(ve->mark[j/ve->searchstep]){ - if(j>centerW){ - - #if 0 - if(j>ve->curmark){ - float *marker=alloca(v->pcm_current*sizeof(*marker)); - int l,m; - memset(marker,0,sizeof(*marker)*v->pcm_current); - fprintf(stderr,"mark! seq=%d, cursor:%fs time:%fs\n", - seq, - (totalshift+ve->cursor)/44100., - (totalshift+j)/44100.); - _analysis_output_always("pcmL",seq,v->pcm[0],v->pcm_current,0,0,totalshift); - _analysis_output_always("pcmR",seq,v->pcm[1],v->pcm_current,0,0,totalshift); - - _analysis_output_always("markL",seq,v->pcm[0],j,0,0,totalshift); - _analysis_output_always("markR",seq,v->pcm[1],j,0,0,totalshift); - - for(m=0;msearchstep]=ve->filter[m].markers[l]*.1; - _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); - } - - for(m=0;msearchstep]=ve->filter[m+VE_BANDS].markers[l]*.1; - _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); - } - - for(l=0;lsearchstep]=ve->mark[l]*.4; - _analysis_output_always("mark",seq,marker,v->pcm_current,0,0,totalshift); - - - seq++; - - } + if(j>centerW){ + +#if 0 + if(j>ve->curmark){ + float *marker=alloca(v->pcm_current*sizeof(*marker)); + int l,m; + memset(marker,0,sizeof(*marker)*v->pcm_current); + fprintf(stderr,"mark! seq=%d, cursor:%fs time:%fs\n", + seq, + (totalshift+ve->cursor)/44100., + (totalshift+j)/44100.); + _analysis_output_always("pcmL",seq,v->pcm[0],v->pcm_current,0,0,totalshift); + _analysis_output_always("pcmR",seq,v->pcm[1],v->pcm_current,0,0,totalshift); + + _analysis_output_always("markL",seq,v->pcm[0],j,0,0,totalshift); + _analysis_output_always("markR",seq,v->pcm[1],j,0,0,totalshift); + + for(m=0;msearchstep]=ve->filter[m].markers[l]*.1; + _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); + } + + for(m=0;msearchstep]=ve->filter[m+VE_BANDS].markers[l]*.1; + _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); + } + + for(l=0;lsearchstep]=ve->mark[l]*.4; + _analysis_output_always("mark",seq,marker,v->pcm_current,0,0,totalshift); + + + seq++; + + } #endif - ve->curmark=j; - if(j>=testW)return(1); - return(0); - } + ve->curmark=j; + if(j>=testW)return(1); + return(0); + } } j+=ve->searchstep; } } - + return(-1); } @@ -356,27 +355,21 @@ int _ve_envelope_mark(vorbis_dsp_state *v){ void _ve_envelope_shift(envelope_lookup *e,long shift){ int smallsize=e->current/e->searchstep+VE_POST; /* adjust for placing marks - ahead of ve->current */ + ahead of ve->current */ int smallshift=shift/e->searchstep; memmove(e->mark,e->mark+smallshift,(smallsize-smallshift)*sizeof(*e->mark)); - - #if 0 + +#if 0 for(i=0;ich;i++) memmove(e->filter[i].markers, - e->filter[i].markers+smallshift, - (1024-smallshift)*sizeof(*(*e->filter).markers)); + e->filter[i].markers+smallshift, + (1024-smallshift)*sizeof(*(*e->filter).markers)); totalshift+=shift; - #endif +#endif e->current-=shift; if(e->curmark>=0) e->curmark-=shift; e->cursor-=shift; } - - - - - - diff --git a/libvorbis-1.0.1/lib/envelope.h b/Dependencies/libvorbis/lib/envelope.h similarity index 90% rename from libvorbis-1.0.1/lib/envelope.h rename to Dependencies/libvorbis/lib/envelope.h index c6fed3d..fd15fb3 100644 --- a/libvorbis-1.0.1/lib/envelope.h +++ b/Dependencies/libvorbis/lib/envelope.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: PCM data envelope analysis and manipulation - last mod: $Id: envelope.h,v 1.25 2002/07/11 06:40:48 xiphmont Exp $ + last mod: $Id: envelope.h 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -78,4 +78,3 @@ extern int _ve_envelope_mark(vorbis_dsp_state *v); #endif - diff --git a/libvorbis-1.0.1/lib/floor0.c b/Dependencies/libvorbis/lib/floor0.c similarity index 86% rename from libvorbis-1.0.1/lib/floor0.c rename to Dependencies/libvorbis/lib/floor0.c index 4577cbd..1e8bd30 100644 --- a/libvorbis-1.0.1/lib/floor0.c +++ b/Dependencies/libvorbis/lib/floor0.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: floor backend 0 implementation - last mod: $Id: floor0.c,v 1.55 2003/09/05 23:17:49 giles Exp $ + last mod: $Id: floor0.c 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -82,12 +82,12 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ info->ampbits=oggpack_read(opb,6); info->ampdB=oggpack_read(opb,8); info->numbooks=oggpack_read(opb,4)+1; - + if(info->order<1)goto err_out; if(info->rate<1)goto err_out; if(info->barkmap<1)goto err_out; if(info->numbooks<1)goto err_out; - + for(j=0;jnumbooks;j++){ info->books[j]=oggpack_read(opb,8); if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; @@ -108,8 +108,8 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ linear block and mapping sizes */ static void floor0_map_lazy_init(vorbis_block *vb, - vorbis_info_floor *infoX, - vorbis_look_floor0 *look){ + vorbis_info_floor *infoX, + vorbis_look_floor0 *look){ if(!look->linearmap[vb->W]){ vorbis_dsp_state *vd=vb->vd; vorbis_info *vi=vd->vi; @@ -122,7 +122,7 @@ static void floor0_map_lazy_init(vorbis_block *vb, floor(bark(rate/2-1)*C)=mapped-1 floor(bark(rate/2)*C)=mapped */ float scale=look->ln/toBARK(info->rate/2.f); - + /* the mapping from a linear scale to a smaller bark scale is straightforward. We do *not* make sure that the linear mapping does not skip bark-scale bins; the decoder simply skips them and @@ -131,8 +131,8 @@ static void floor0_map_lazy_init(vorbis_block *vb, accurate */ look->linearmap[W]=_ogg_malloc((n+1)*sizeof(**look->linearmap)); for(j=0;jrate/2.f)/n*j) - *scale); /* bark numbers represent band edges */ + int val=floor( toBARK((info->rate/2.f)/n*j) + *scale); /* bark numbers represent band edges */ if(val>=look->ln)val=look->ln-1; /* guard against the approximation */ look->linearmap[W][j]=val; } @@ -142,7 +142,7 @@ static void floor0_map_lazy_init(vorbis_block *vb, } static vorbis_look_floor *floor0_look(vorbis_dsp_state *vd, - vorbis_info_floor *i){ + vorbis_info_floor *i){ vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look)); look->m=info->order; @@ -164,7 +164,7 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ long maxval=(1<ampbits)-1; float amp=(float)ampraw/maxval*info->ampdB; int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks)); - + if(booknum!=-1 && booknumnumbooks){ /* be paranoid */ codec_setup_info *ci=vb->vd->vi->codec_setup; codebook *b=ci->fullbooks+info->books[booknum]; @@ -174,14 +174,14 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ smash; b->dim is provably more than we can overflow the vector */ float *lsp=_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+b->dim+1)); - + for(j=0;jm;j+=b->dim) - if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim)==-1)goto eop; + if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim)==-1)goto eop; for(j=0;jm;){ - for(k=0;kdim;k++,j++)lsp[j]+=last; - last=lsp[j-1]; + for(k=0;kdim;k++,j++)lsp[j]+=last; + last=lsp[j-1]; } - + lsp[look->m]=amp; return(lsp); } @@ -191,10 +191,10 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ } static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, - void *memo,float *out){ + void *memo,float *out){ vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; vorbis_info_floor0 *info=look->vi; - + floor0_map_lazy_init(vb,info,look); if(memo){ @@ -203,10 +203,10 @@ static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, /* take the coefficients back to a spectral envelope curve */ vorbis_lsp_to_curve(out, - look->linearmap[vb->W], - look->n[vb->W], - look->ln, - lsp,look->m,amp,(float)info->ampdB); + look->linearmap[vb->W], + look->n[vb->W], + look->ln, + lsp,look->m,amp,(float)info->ampdB); return(1); } memset(out,0,sizeof(*out)*look->n[vb->W]); @@ -214,10 +214,7 @@ static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, } /* export hooks */ -vorbis_func_floor floor0_exportbundle={ +const vorbis_func_floor floor0_exportbundle={ NULL,&floor0_unpack,&floor0_look,&floor0_free_info, &floor0_free_look,&floor0_inverse1,&floor0_inverse2 }; - - - diff --git a/libvorbis-1.0.1/lib/floor1.c b/Dependencies/libvorbis/lib/floor1.c similarity index 60% rename from libvorbis-1.0.1/lib/floor1.c rename to Dependencies/libvorbis/lib/floor1.c index 28c0f80..cebb40d 100644 --- a/libvorbis-1.0.1/lib/floor1.c +++ b/Dependencies/libvorbis/lib/floor1.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: floor backend 1 implementation - last mod: $Id: floor1.c,v 1.26 2003/02/15 07:10:07 xiphmont Exp $ + last mod: $Id: floor1.c 17079 2010-03-26 06:51:41Z xiphmont $ ********************************************************************/ @@ -30,38 +30,27 @@ #define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ -typedef struct { - int sorted_index[VIF_POSIT+2]; - int forward_index[VIF_POSIT+2]; - int reverse_index[VIF_POSIT+2]; - - int hineighbor[VIF_POSIT]; - int loneighbor[VIF_POSIT]; - int posts; - - int n; - int quant_q; - vorbis_info_floor1 *vi; - - long phrasebits; - long postbits; - long frames; -} vorbis_look_floor1; - typedef struct lsfit_acc{ - long x0; - long x1; - - long xa; - long ya; - long x2a; - long y2a; - long xya; - long an; + int x0; + int x1; + + int xa; + int ya; + int x2a; + int y2a; + int xya; + int an; + + int xb; + int yb; + int x2b; + int y2b; + int xyb; + int bn; } lsfit_acc; /***********************************************/ - + static void floor1_free_info(vorbis_info_floor *i){ vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; if(info){ @@ -74,9 +63,9 @@ static void floor1_free_look(vorbis_look_floor *i){ vorbis_look_floor1 *look=(vorbis_look_floor1 *)i; if(look){ /*fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n", - (float)look->phrasebits/look->frames, - (float)look->postbits/look->frames, - (float)(look->postbits+look->phrasebits)/look->frames);*/ + (float)look->phrasebits/look->frames, + (float)look->postbits/look->frames, + (float)(look->postbits+look->phrasebits)/look->frames);*/ memset(look,0,sizeof(*look)); _ogg_free(look); @@ -127,17 +116,20 @@ static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){ } /* save out the post list */ - oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */ + oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */ oggpack_write(opb,ilog2(maxposit),4); rangebits=ilog2(maxposit); for(j=0,k=0;jpartitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; + count+=info->class_dim[info->partitionclass[j]]; for(;kpostlist[k+2],rangebits); } } +static int icomp(const void *a,const void *b){ + return(**(int **)a-**(int **)b); +} static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ codec_setup_info *ci=vi->codec_setup; @@ -148,6 +140,7 @@ static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ for(j=0;jpartitions;j++){ info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */ + if(info->partitionclass[j]<0)goto err_out; if(maxclasspartitionclass[j])maxclass=info->partitionclass[j]; } @@ -163,38 +156,46 @@ static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ for(k=0;k<(1<class_subs[j]);k++){ info->class_subbook[j][k]=oggpack_read(opb,8)-1; if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books) - goto err_out; + goto err_out; } } /* read the post list */ - info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ + info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ rangebits=oggpack_read(opb,4); + if(rangebits<0)goto err_out; for(j=0,k=0;jpartitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; + count+=info->class_dim[info->partitionclass[j]]; for(;kpostlist[k+2]=oggpack_read(opb,rangebits); if(t<0 || t>=(1<postlist[0]=0; info->postlist[1]=1<postlist+j; + qsort(sortpointer,count+2,sizeof(*sortpointer),icomp); + + for(j=1;jvi=info; look->n=info->postlist[1]; - + /* we drop each position value in-between already decoded values, and use linear interpolation to predict each new value past the edges. The positions are read in the order of the position @@ -225,7 +226,7 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd, for(i=0;ireverse_index[look->forward_index[i]]=i; /* we actually need the post values too */ for(i=0;isorted_index[i]=info->postlist[look->forward_index[i]]; - + /* quantize values to multiplier spec */ switch(info->mult){ case 1: /* 1024 -> 256 */ @@ -253,12 +254,12 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd, for(j=0;jpostlist[j]; if(x>lx && xcurrentx){ - hi=j; - hx=x; + hi=j; + hx=x; } } look->loneighbor[i]=lo; @@ -271,13 +272,13 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd, static int render_point(int x0,int x1,int y0,int y1,int x){ y0&=0x7fff; /* mask off flag */ y1&=0x7fff; - + { int dy=y1-y0; int adx=x1-x0; int ady=abs(dy); int err=ady*(x-x0); - + int off=err/adx; if(dy<0)return(y0-off); return(y0+off); @@ -291,74 +292,74 @@ static int vorbis_dBquant(const float *x){ return i; } -static float FLOOR1_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, +static const float FLOOR1_fromdB_LOOKUP[256]={ + 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, + 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, + 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, + 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, + 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, + 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, + 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, + 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, + 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, + 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, + 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, + 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, + 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, + 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, + 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, + 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, + 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, + 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, + 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, + 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, + 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, + 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, + 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, + 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, + 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, + 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, + 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, + 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, + 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, + 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, + 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, + 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, + 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, + 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, + 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, + 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, + 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, + 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, + 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, + 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, + 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, + 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, + 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, + 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, + 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, + 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, + 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, + 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, + 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, + 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, + 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, + 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, + 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, + 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, + 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, + 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, + 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, + 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, + 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, + 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, + 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, + 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, + 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, + 0.82788260F, 0.88168307F, 0.9389798F, 1.F, }; -static void render_line(int x0,int x1,int y0,int y1,float *d){ +static void render_line(int n, int x0,int x1,int y0,int y1,float *d){ int dy=y1-y0; int adx=x1-x0; int ady=abs(dy); @@ -370,8 +371,12 @@ static void render_line(int x0,int x1,int y0,int y1,float *d){ ady-=abs(base*adx); - d[x]*=FLOOR1_fromdB_LOOKUP[y]; - while(++xx1)n=x1; + + if(x=adx){ err-=adx; @@ -383,7 +388,7 @@ static void render_line(int x0,int x1,int y0,int y1,float *d){ } } -static void render_line0(int x0,int x1,int y0,int y1,int *d){ +static void render_line0(int n, int x0,int x1,int y0,int y1,int *d){ int dy=y1-y0; int adx=x1-x0; int ady=abs(dy); @@ -395,8 +400,12 @@ static void render_line0(int x0,int x1,int y0,int y1,int *d){ ady-=abs(base*adx); - d[x]=y; - while(++xx1)n=x1; + + if(x=adx){ err-=adx; @@ -410,12 +419,11 @@ static void render_line0(int x0,int x1,int y0,int y1,int *d){ /* the floor has already been filtered to only include relevant sections */ static int accumulate_fit(const float *flr,const float *mdct, - int x0, int x1,lsfit_acc *a, - int n,vorbis_info_floor1 *info){ + int x0, int x1,lsfit_acc *a, + int n,vorbis_info_floor1 *info){ long i; - int quantized=vorbis_dBquant(flr+x0); - long xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0; + int xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0; memset(a,0,sizeof(*a)); a->x0=x0; @@ -426,114 +434,103 @@ static int accumulate_fit(const float *flr,const float *mdct, int quantized=vorbis_dBquant(flr+i); if(quantized){ if(mdct[i]+info->twofitatten>=flr[i]){ - xa += i; - ya += quantized; - x2a += i*i; - y2a += quantized*quantized; - xya += i*quantized; - na++; + xa += i; + ya += quantized; + x2a += i*i; + y2a += quantized*quantized; + xya += i*quantized; + na++; }else{ - xb += i; - yb += quantized; - x2b += i*i; - y2b += quantized*quantized; - xyb += i*quantized; - nb++; + xb += i; + yb += quantized; + x2b += i*i; + y2b += quantized*quantized; + xyb += i*quantized; + nb++; } } } - xb+=xa; - yb+=ya; - x2b+=x2a; - y2b+=y2a; - xyb+=xya; - nb+=na; + a->xa=xa; + a->ya=ya; + a->x2a=x2a; + a->y2a=y2a; + a->xya=xya; + a->an=na; - /* weight toward the actually used frequencies if we meet the threshhold */ - { - int weight=nb*info->twofitweight/(na+1); - - a->xa=xa*weight+xb; - a->ya=ya*weight+yb; - a->x2a=x2a*weight+x2b; - a->y2a=y2a*weight+y2b; - a->xya=xya*weight+xyb; - a->an=na*weight+nb; - } + a->xb=xb; + a->yb=yb; + a->x2b=x2b; + a->y2b=y2b; + a->xyb=xyb; + a->bn=nb; return(na); } -static void fit_line(lsfit_acc *a,int fits,int *y0,int *y1){ - long x=0,y=0,x2=0,y2=0,xy=0,an=0,i; - long x0=a[0].x0; - long x1=a[fits-1].x1; +static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1, + vorbis_info_floor1 *info){ + double xb=0,yb=0,x2b=0,y2b=0,xyb=0,bn=0; + int i; + int x0=a[0].x0; + int x1=a[fits-1].x1; for(i=0;itwofitweight/(a[i].an+1)+1.; + + xb+=a[i].xb + a[i].xa * weight; + yb+=a[i].yb + a[i].ya * weight; + x2b+=a[i].x2b + a[i].x2a * weight; + y2b+=a[i].y2b + a[i].y2a * weight; + xyb+=a[i].xyb + a[i].xya * weight; + bn+=a[i].bn + a[i].an * weight; } if(*y0>=0){ - x+= x0; - y+= *y0; - x2+= x0 * x0; - y2+= *y0 * *y0; - xy+= *y0 * x0; - an++; + xb+= x0; + yb+= *y0; + x2b+= x0 * x0; + y2b+= *y0 * *y0; + xyb+= *y0 * x0; + bn++; } if(*y1>=0){ - x+= x1; - y+= *y1; - x2+= x1 * x1; - y2+= *y1 * *y1; - xy+= *y1 * x1; - an++; - } - - if(an){ - /* need 64 bit multiplies, which C doesn't give portably as int */ - double fx=x; - double fy=y; - double fx2=x2; - double fxy=xy; - double denom=1./(an*fx2-fx*fx); - double a=(fy*fx2-fxy*fx)*denom; - double b=(an*fxy-fx*fy)*denom; - *y0=rint(a+b*x0); - *y1=rint(a+b*x1); - - /* limit to our range! */ - if(*y0>1023)*y0=1023; - if(*y1>1023)*y1=1023; - if(*y0<0)*y0=0; - if(*y1<0)*y1=0; - - }else{ - *y0=0; - *y1=0; + xb+= x1; + yb+= *y1; + x2b+= x1 * x1; + y2b+= *y1 * *y1; + xyb+= *y1 * x1; + bn++; } -} -/*static void fit_line_point(lsfit_acc *a,int fits,int *y0,int *y1){ - long y=0; - int i; + { + double denom=(bn*x2b-xb*xb); + + if(denom>0.){ + double a=(yb*x2b-xyb*xb)/denom; + double b=(bn*xyb-xb*yb)/denom; + *y0=rint(a+b*x0); + *y1=rint(a+b*x1); - for(i=0;i1023)*y0=1023; + if(*y1>1023)*y1=1023; + if(*y0<0)*y0=0; + if(*y1<0)*y1=0; + + return 0; + }else{ + *y0=0; + *y1=0; + return 1; + } + } +} static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, - const float *mdct, - vorbis_info_floor1 *info){ + const float *mdct, + vorbis_info_floor1 *info){ int dy=y1-y0; int adx=x1-x0; int ady=abs(dy); @@ -547,7 +544,7 @@ static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, int n=0; ady-=abs(base*adx); - + mse=(y-val); mse*=mse; n++; @@ -570,12 +567,12 @@ static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, n++; if(mdct[x]+info->twofitatten>=mask[x]){ if(val){ - if(y+info->maxovermaxunder>val)return(1); + if(y+info->maxovermaxunder>val)return(1); } } } - + if(info->maxover*info->maxover/n>info->maxerr)return(0); if(info->maxunder*info->maxunder/n>info->maxerr)return(0); if(mse/n>info->maxerr)return(1); @@ -591,11 +588,9 @@ static int post_Y(int *A,int *B,int pos){ return (A[pos]+B[pos])>>1; } -static int seq=0; - int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, - const float *logmdct, /* in */ - const float *logmask){ + const float *logmdct, /* in */ + const float *logmask){ long i,j; vorbis_info_floor1 *info=look->vi; long n=look->n; @@ -606,7 +601,7 @@ int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, int fit_valueB[VIF_POSIT+2]; /* index by range list position */ int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */ - int hineighbor[VIF_POSIT+2]; + int hineighbor[VIF_POSIT+2]; int *output=NULL; int memo[VIF_POSIT+2]; @@ -623,15 +618,15 @@ int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, }else{ for(i=0;isorted_index[i], - look->sorted_index[i+1],fits+i, - n,info); + look->sorted_index[i+1],fits+i, + n,info); } - + if(nonzero){ /* start by fitting the implicit base case.... */ int y0=-200; int y1=-200; - fit_line(fits,posts-1,&y0,&y1); + fit_line(fits,posts-1,&y0,&y1,info); fit_valueA[0]=y0; fit_valueB[0]=y0; @@ -646,70 +641,82 @@ int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, int sortpos=look->reverse_index[i]; int ln=loneighbor[sortpos]; int hn=hineighbor[sortpos]; - + /* eliminate repeat searches of a particular range with a memo */ if(memo[ln]!=hn){ - /* haven't performed this error search yet */ - int lsortpos=look->reverse_index[ln]; - int hsortpos=look->reverse_index[hn]; - memo[ln]=hn; - - { - /* A note: we want to bound/minimize *local*, not global, error */ - int lx=info->postlist[ln]; - int hx=info->postlist[hn]; - int ly=post_Y(fit_valueA,fit_valueB,ln); - int hy=post_Y(fit_valueA,fit_valueB,hn); - - if(ly==-1 || hy==-1){ - exit(1); - } - - if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){ - /* outside error bounds/begin search area. Split it. */ - int ly0=-200; - int ly1=-200; - int hy0=-200; - int hy1=-200; - fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1); - fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1); - - /* store new edge values */ - fit_valueB[ln]=ly0; - if(ln==0)fit_valueA[ln]=ly0; - fit_valueA[i]=ly1; - fit_valueB[i]=hy0; - fit_valueA[hn]=hy1; - if(hn==1)fit_valueB[hn]=hy1; - - if(ly1>=0 || hy0>=0){ - /* store new neighbor values */ - for(j=sortpos-1;j>=0;j--) - if(hineighbor[j]==hn) - hineighbor[j]=i; - else - break; - for(j=sortpos+1;jreverse_index[ln]; + int hsortpos=look->reverse_index[hn]; + memo[ln]=hn; + + { + /* A note: we want to bound/minimize *local*, not global, error */ + int lx=info->postlist[ln]; + int hx=info->postlist[hn]; + int ly=post_Y(fit_valueA,fit_valueB,ln); + int hy=post_Y(fit_valueA,fit_valueB,hn); + + if(ly==-1 || hy==-1){ + exit(1); + } + + if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){ + /* outside error bounds/begin search area. Split it. */ + int ly0=-200; + int ly1=-200; + int hy0=-200; + int hy1=-200; + int ret0=fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1,info); + int ret1=fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1,info); + + if(ret0){ + ly0=ly; + ly1=hy0; + } + if(ret1){ + hy0=ly1; + hy1=hy; + } + + if(ret0 && ret1){ + fit_valueA[i]=-200; + fit_valueB[i]=-200; + }else{ + /* store new edge values */ + fit_valueB[ln]=ly0; + if(ln==0)fit_valueA[ln]=ly0; + fit_valueA[i]=ly1; + fit_valueB[i]=hy0; + fit_valueA[hn]=hy1; + if(hn==1)fit_valueB[hn]=hy1; + + if(ly1>=0 || hy0>=0){ + /* store new neighbor values */ + for(j=sortpos-1;j>=0;j--) + if(hineighbor[j]==hn) + hineighbor[j]=i; + else + break; + for(j=sortpos+1;jpostlist[hn]; int y0=output[ln]; int y1=output[hn]; - + int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); int vx=post_Y(fit_valueA,fit_valueB,i); - - if(vx>=0 && predicted!=vx){ - output[i]=vx; + + if(vx>=0 && predicted!=vx){ + output[i]=vx; }else{ - output[i]= predicted|0x8000; + output[i]= predicted|0x8000; } } } return(output); - + } - + int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, - int *A,int *B, - int del){ + int *A,int *B, + int del){ long i; long posts=look->posts; int *output=NULL; - + if(A && B){ output=_vorbis_block_alloc(vb,sizeof(*output)*posts); - + + /* overly simpleminded--- look again post 1.2 */ for(i=0;i>16; if(A[i]&0x8000 && B[i]&0x8000)output[i]|=0x8000; @@ -757,18 +765,17 @@ int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, } -int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look, - int *post,int *ilogmask){ +int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, + vorbis_look_floor1 *look, + int *post,int *ilogmask){ long i,j; vorbis_info_floor1 *info=look->vi; - long n=look->n; long posts=look->posts; codec_setup_info *ci=vb->vd->vi->codec_setup; int out[VIF_POSIT+2]; static_codebook **sbooks=ci->book_param; codebook *books=ci->fullbooks; - static long seq=0; /* quantize values to multiplier spec */ if(post){ @@ -776,17 +783,17 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look, int val=post[i]&0x7fff; switch(info->mult){ case 1: /* 1024 -> 256 */ - val>>=2; - break; + val>>=2; + break; case 2: /* 1024 -> 128 */ - val>>=3; - break; + val>>=3; + break; case 3: /* 1024 -> 86 */ - val/=12; - break; + val/=12; + break; case 4: /* 1024 -> 64 */ - val>>=4; - break; + val>>=4; + break; } post[i]=val | (post[i]&0x8000); } @@ -802,53 +809,53 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look, int x1=info->postlist[hn]; int y0=post[ln]; int y1=post[hn]; - + int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); - + if((post[i]&0x8000) || (predicted==post[i])){ - post[i]=predicted|0x8000; /* in case there was roundoff jitter - in interpolation */ - out[i]=0; + post[i]=predicted|0x8000; /* in case there was roundoff jitter + in interpolation */ + out[i]=0; }else{ - int headroom=(look->quant_q-predictedquant_q-predicted:predicted); - - int val=post[i]-predicted; - - /* at this point the 'deviation' value is in the range +/- max - range, but the real, unique range can always be mapped to - only [0-maxrange). So we want to wrap the deviation into - this limited range, but do it in the way that least screws - an essentially gaussian probability distribution. */ - - if(val<0) - if(val<-headroom) - val=headroom-val-1; - else - val=-1-(val<<1); - else - if(val>=headroom) - val= val+headroom; - else - val<<=1; - - out[i]=val; - post[ln]&=0x7fff; - post[hn]&=0x7fff; + int headroom=(look->quant_q-predictedquant_q-predicted:predicted); + + int val=post[i]-predicted; + + /* at this point the 'deviation' value is in the range +/- max + range, but the real, unique range can always be mapped to + only [0-maxrange). So we want to wrap the deviation into + this limited range, but do it in the way that least screws + an essentially gaussian probability distribution. */ + + if(val<0) + if(val<-headroom) + val=headroom-val-1; + else + val=-1-(val<<1); + else + if(val>=headroom) + val= val+headroom; + else + val<<=1; + + out[i]=val; + post[ln]&=0x7fff; + post[hn]&=0x7fff; } } - + /* we have everything we need. pack it out */ /* mark nontrivial floor */ - oggpack_write(&vb->opb,1,1); - + oggpack_write(opb,1,1); + /* beginning/end post */ look->frames++; look->postbits+=ilog(look->quant_q-1)*2; - oggpack_write(&vb->opb,out[0],ilog(look->quant_q-1)); - oggpack_write(&vb->opb,out[1],ilog(look->quant_q-1)); - - + oggpack_write(opb,out[0],ilog(look->quant_q-1)); + oggpack_write(opb,out[1],ilog(look->quant_q-1)); + + /* partition by partition */ for(i=0,j=2;ipartitions;i++){ int class=info->partitionclass[i]; @@ -862,98 +869,98 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look, /* generate the partition's first stage cascade value */ if(csubbits){ - int maxval[8]; - for(k=0;kclass_subbook[class][k]; - if(booknum<0){ - maxval[k]=1; - }else{ - maxval[k]=sbooks[info->class_subbook[class][k]]->entries; - } - } - for(k=0;kphrasebits+= - vorbis_book_encode(books+info->class_book[class],cval,&vb->opb); - + int maxval[8]; + for(k=0;kclass_subbook[class][k]; + if(booknum<0){ + maxval[k]=1; + }else{ + maxval[k]=sbooks[info->class_subbook[class][k]]->entries; + } + } + for(k=0;kphrasebits+= + vorbis_book_encode(books+info->class_book[class],cval,opb); + #ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line_%dx%ld_class%d.vqd", - vb->pcmend/2,posts-2,class); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",cval); - fclose(of); - } + { + FILE *of; + char buffer[80]; + sprintf(buffer,"line_%dx%ld_class%d.vqd", + vb->pcmend/2,posts-2,class); + of=fopen(buffer,"a"); + fprintf(of,"%d\n",cval); + fclose(of); + } #endif } - + /* write post values */ for(k=0;kclass_subbook[class][bookas[k]]; - if(book>=0){ - /* hack to allow training with 'bad' books */ - if(out[j+k]<(books+book)->entries) - look->postbits+=vorbis_book_encode(books+book, - out[j+k],&vb->opb); - /*else - fprintf(stderr,"+!");*/ - + int book=info->class_subbook[class][bookas[k]]; + if(book>=0){ + /* hack to allow training with 'bad' books */ + if(out[j+k]<(books+book)->entries) + look->postbits+=vorbis_book_encode(books+book, + out[j+k],opb); + /*else + fprintf(stderr,"+!");*/ + #ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line_%dx%ld_%dsub%d.vqd", - vb->pcmend/2,posts-2,class,bookas[k]); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",out[j+k]); - fclose(of); - } + { + FILE *of; + char buffer[80]; + sprintf(buffer,"line_%dx%ld_%dsub%d.vqd", + vb->pcmend/2,posts-2,class,bookas[k]); + of=fopen(buffer,"a"); + fprintf(of,"%d\n",out[j+k]); + fclose(of); + } #endif - } + } } j+=cdim; } - + { /* generate quantized floor equivalent to what we'd unpack in decode */ /* render the lines */ int hx=0; int lx=0; int ly=post[0]*info->mult; + int n=ci->blocksizes[vb->W]/2; + for(j=1;jposts;j++){ - int current=look->forward_index[j]; - int hy=post[current]&0x7fff; - if(hy==post[current]){ - - hy*=info->mult; - hx=info->postlist[current]; - - render_line0(lx,hx,ly,hy,ilogmask); - - lx=hx; - ly=hy; - } + int current=look->forward_index[j]; + int hy=post[current]&0x7fff; + if(hy==post[current]){ + + hy*=info->mult; + hx=info->postlist[current]; + + render_line0(n,lx,hx,ly,hy,ilogmask); + + lx=hx; + ly=hy; + } } - for(j=hx;jpcmend/2;j++)ilogmask[j]=ly; /* be certain */ - seq++; + for(j=hx;jpcmend/2;j++)ilogmask[j]=ly; /* be certain */ return(1); } }else{ - oggpack_write(&vb->opb,0,1); + oggpack_write(opb,0,1); memset(ilogmask,0,vb->pcmend/2*sizeof(*ilogmask)); - seq++; return(0); } } @@ -962,9 +969,9 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; vorbis_info_floor1 *info=look->vi; codec_setup_info *ci=vb->vd->vi->codec_setup; - + int i,j,k; - codebook *books=ci->fullbooks; + codebook *books=ci->fullbooks; /* unpack wrapped/predicted values from stream */ if(oggpack_read(&vb->opb,1)==1){ @@ -983,20 +990,20 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ /* decode the partition's first stage cascade value */ if(csubbits){ - cval=vorbis_book_decode(books+info->class_book[class],&vb->opb); + cval=vorbis_book_decode(books+info->class_book[class],&vb->opb); - if(cval==-1)goto eop; + if(cval==-1)goto eop; } for(k=0;kclass_subbook[class][cval&(csub-1)]; - cval>>=csubbits; - if(book>=0){ - if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) - goto eop; - }else{ - fit_value[j+k]=0; - } + int book=info->class_subbook[class][cval&(csub-1)]; + cval>>=csubbits; + if(book>=0){ + if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) + goto eop; + }else{ + fit_value[j+k]=0; + } } j+=cdim; } @@ -1004,38 +1011,38 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ /* unwrap positive values and reconsitute via linear interpolation */ for(i=2;iposts;i++){ int predicted=render_point(info->postlist[look->loneighbor[i-2]], - info->postlist[look->hineighbor[i-2]], - fit_value[look->loneighbor[i-2]], - fit_value[look->hineighbor[i-2]], - info->postlist[i]); + info->postlist[look->hineighbor[i-2]], + fit_value[look->loneighbor[i-2]], + fit_value[look->hineighbor[i-2]], + info->postlist[i]); int hiroom=look->quant_q-predicted; int loroom=predicted; int room=(hiroom=room){ - if(hiroom>loroom){ - val = val-loroom; - }else{ - val = -1-(val-hiroom); - } - }else{ - if(val&1){ - val= -((val+1)>>1); - }else{ - val>>=1; - } - } - - fit_value[i]=val+predicted; - fit_value[look->loneighbor[i-2]]&=0x7fff; - fit_value[look->hineighbor[i-2]]&=0x7fff; + if(val>=room){ + if(hiroom>loroom){ + val = val-loroom; + }else{ + val = -1-(val-hiroom); + } + }else{ + if(val&1){ + val= -((val+1)>>1); + }else{ + val>>=1; + } + } + + fit_value[i]=val+predicted; + fit_value[look->loneighbor[i-2]]&=0x7fff; + fit_value[look->hineighbor[i-2]]&=0x7fff; }else{ - fit_value[i]=predicted|0x8000; + fit_value[i]=predicted|0x8000; } - + } return(fit_value); @@ -1045,7 +1052,7 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ } static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, - float *out){ + float *out){ vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; vorbis_info_floor1 *info=look->vi; @@ -1063,17 +1070,17 @@ static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, int current=look->forward_index[j]; int hy=fit_value[current]&0x7fff; if(hy==fit_value[current]){ - - hy*=info->mult; - hx=info->postlist[current]; - - render_line(lx,hx,ly,hy,out); - - lx=hx; - ly=hy; + + hy*=info->mult; + hx=info->postlist[current]; + + render_line(n,lx,hx,ly,hy,out); + + lx=hx; + ly=hy; } } - for(j=hx;j header packets - last mod: $Id: info.c,v 1.62 2003/09/10 01:10:18 xiphmont Exp $ + last mod: $Id: info.c 17080 2010-03-26 06:59:58Z xiphmont $ ********************************************************************/ @@ -31,6 +31,9 @@ #include "misc.h" #include "os.h" +#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.1" +#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20100325 (Everywhere)" + /* helpers */ static int ilog2(unsigned int v){ int ret=0; @@ -42,7 +45,7 @@ static int ilog2(unsigned int v){ return(ret); } -static void _v_writestring(oggpack_buffer *o,char *s, int bytes){ +static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){ while(bytes--){ oggpack_write(o,*s++,8); @@ -59,11 +62,11 @@ void vorbis_comment_init(vorbis_comment *vc){ memset(vc,0,sizeof(*vc)); } -void vorbis_comment_add(vorbis_comment *vc,char *comment){ +void vorbis_comment_add(vorbis_comment *vc,const char *comment){ vc->user_comments=_ogg_realloc(vc->user_comments, - (vc->comments+2)*sizeof(*vc->user_comments)); + (vc->comments+2)*sizeof(*vc->user_comments)); vc->comment_lengths=_ogg_realloc(vc->comment_lengths, - (vc->comments+2)*sizeof(*vc->comment_lengths)); + (vc->comments+2)*sizeof(*vc->comment_lengths)); vc->comment_lengths[vc->comments]=strlen(comment); vc->user_comments[vc->comments]=_ogg_malloc(vc->comment_lengths[vc->comments]+1); strcpy(vc->user_comments[vc->comments], comment); @@ -71,7 +74,7 @@ void vorbis_comment_add(vorbis_comment *vc,char *comment){ vc->user_comments[vc->comments]=NULL; } -void vorbis_comment_add_tag(vorbis_comment *vc, char *tag, char *contents){ +void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){ char *comment=alloca(strlen(tag)+strlen(contents)+2); /* +2 for = and \0 */ strcpy(comment, tag); strcat(comment, "="); @@ -91,7 +94,7 @@ static int tagcompare(const char *s1, const char *s2, int n){ return 0; } -char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){ +char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){ long i; int found = 0; int taglen = strlen(tag)+1; /* +1 for the = we append */ @@ -99,20 +102,20 @@ char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){ strcpy(fulltag, tag); strcat(fulltag, "="); - + for(i=0;icomments;i++){ if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ if(count == found) - /* We return a pointer to the data, not a copy */ - return vc->user_comments[i] + taglen; + /* We return a pointer to the data, not a copy */ + return vc->user_comments[i] + taglen; else - found++; + found++; } } return NULL; /* didn't find anything */ } -int vorbis_comment_query_count(vorbis_comment *vc, char *tag){ +int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){ int i,count=0; int taglen = strlen(tag)+1; /* +1 for the = we append */ char *fulltag = alloca(taglen+1); @@ -130,16 +133,18 @@ int vorbis_comment_query_count(vorbis_comment *vc, char *tag){ void vorbis_comment_clear(vorbis_comment *vc){ if(vc){ long i; - for(i=0;icomments;i++) - if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); - if(vc->user_comments)_ogg_free(vc->user_comments); - if(vc->comment_lengths)_ogg_free(vc->comment_lengths); + if(vc->user_comments){ + for(i=0;icomments;i++) + if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); + _ogg_free(vc->user_comments); + } + if(vc->comment_lengths)_ogg_free(vc->comment_lengths); if(vc->vendor)_ogg_free(vc->vendor); + memset(vc,0,sizeof(*vc)); } - memset(vc,0,sizeof(*vc)); } -/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long. +/* blocksize 0 is guaranteed to be short, 1 is guaranteed to be long. They may be equal, but short will never ge greater than long */ int vorbis_info_blocksize(vorbis_info *vi,int zo){ codec_setup_info *ci = vi->codec_setup; @@ -162,25 +167,34 @@ void vorbis_info_clear(vorbis_info *vi){ if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); for(i=0;imaps;i++) /* unpack does the range checking */ - _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); + if(ci->map_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); for(i=0;ifloors;i++) /* unpack does the range checking */ - _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); - + if(ci->floor_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); + for(i=0;iresidues;i++) /* unpack does the range checking */ - _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); + if(ci->residue_param[i]) /* this may be cleaning up an aborted + unpack, in which case the below type + cannot be trusted */ + _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); for(i=0;ibooks;i++){ if(ci->book_param[i]){ - /* knows if the book was not alloced */ - vorbis_staticbook_destroy(ci->book_param[i]); + /* knows if the book was not alloced */ + vorbis_staticbook_destroy(ci->book_param[i]); } if(ci->fullbooks) - vorbis_book_clear(ci->fullbooks+i); + vorbis_book_clear(ci->fullbooks+i); } if(ci->fullbooks) - _ogg_free(ci->fullbooks); - + _ogg_free(ci->fullbooks); + for(i=0;ipsys;i++) _vi_psy_free(ci->psy_param[i]); @@ -208,12 +222,13 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ ci->blocksizes[0]=1<blocksizes[1]=1<rate<1)goto err_out; if(vi->channels<1)goto err_out; - if(ci->blocksizes[0]<8)goto err_out; + if(ci->blocksizes[0]<64)goto err_out; if(ci->blocksizes[1]blocksizes[0])goto err_out; - + if(ci->blocksizes[1]>8192)goto err_out; + if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ return(0); @@ -226,20 +241,24 @@ static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ int i; int vendorlen=oggpack_read(opb,32); if(vendorlen<0)goto err_out; + if(vendorlen>opb->storage-8)goto err_out; vc->vendor=_ogg_calloc(vendorlen+1,1); _v_readstring(opb,vc->vendor,vendorlen); - vc->comments=oggpack_read(opb,32); - if(vc->comments<0)goto err_out; + i=oggpack_read(opb,32); + if(i<0)goto err_out; + if(i>((opb->storage-oggpack_bytes(opb))>>2))goto err_out; + vc->comments=i; vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments)); vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths)); - + for(i=0;icomments;i++){ int len=oggpack_read(opb,32); if(len<0)goto err_out; - vc->comment_lengths[i]=len; + if(len>opb->storage-oggpack_bytes(opb))goto err_out; + vc->comment_lengths[i]=len; vc->user_comments[i]=_ogg_calloc(len+1,1); _v_readstring(opb,vc->user_comments[i],len); - } + } if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ return(0); @@ -257,15 +276,16 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ /* codebooks */ ci->books=oggpack_read(opb,8)+1; - /*ci->book_param=_ogg_calloc(ci->books,sizeof(*ci->book_param));*/ + if(ci->books<=0)goto err_out; for(i=0;ibooks;i++){ - ci->book_param[i]=_ogg_calloc(1,sizeof(*ci->book_param[i])); - if(vorbis_staticbook_unpack(opb,ci->book_param[i]))goto err_out; + ci->book_param[i]=vorbis_staticbook_unpack(opb); + if(!ci->book_param[i])goto err_out; } /* time backend settings; hooks are unused */ { int times=oggpack_read(opb,6)+1; + if(times<=0)goto err_out; for(i=0;i=VI_TIMEB)goto err_out; @@ -274,8 +294,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ /* floor backend settings */ ci->floors=oggpack_read(opb,6)+1; - /*ci->floor_type=_ogg_malloc(ci->floors*sizeof(*ci->floor_type));*/ - /*ci->floor_param=_ogg_calloc(ci->floors,sizeof(void *));*/ + if(ci->floors<=0)goto err_out; for(i=0;ifloors;i++){ ci->floor_type[i]=oggpack_read(opb,16); if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; @@ -285,8 +304,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ /* residue backend settings */ ci->residues=oggpack_read(opb,6)+1; - /*ci->residue_type=_ogg_malloc(ci->residues*sizeof(*ci->residue_type));*/ - /*ci->residue_param=_ogg_calloc(ci->residues,sizeof(void *));*/ + if(ci->residues<=0)goto err_out; for(i=0;iresidues;i++){ ci->residue_type[i]=oggpack_read(opb,16); if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out; @@ -296,18 +314,17 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ /* map backend settings */ ci->maps=oggpack_read(opb,6)+1; - /*ci->map_type=_ogg_malloc(ci->maps*sizeof(*ci->map_type));*/ - /*ci->map_param=_ogg_calloc(ci->maps,sizeof(void *));*/ + if(ci->maps<=0)goto err_out; for(i=0;imaps;i++){ ci->map_type[i]=oggpack_read(opb,16); if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out; ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb); if(!ci->map_param[i])goto err_out; } - + /* mode settings */ ci->modes=oggpack_read(opb,6)+1; - /*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/ + if(ci->modes<=0)goto err_out; for(i=0;imodes;i++){ ci->mode_param[i]=_ogg_calloc(1,sizeof(*ci->mode_param[i])); ci->mode_param[i]->blockflag=oggpack_read(opb,1); @@ -318,8 +335,9 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out; if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out; if(ci->mode_param[i]->mapping>=ci->maps)goto err_out; + if(ci->mode_param[i]->mapping<0)goto err_out; } - + if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ return(0); @@ -328,6 +346,31 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ return(OV_EBADHEADER); } +/* Is this packet a vorbis ID header? */ +int vorbis_synthesis_idheader(ogg_packet *op){ + oggpack_buffer opb; + char buffer[6]; + + if(op){ + oggpack_readinit(&opb,op->packet,op->bytes); + + if(!op->b_o_s) + return(0); /* Not the initial packet */ + + if(oggpack_read(&opb,8) != 1) + return 0; /* not an ID header */ + + memset(buffer,0,6); + _v_readstring(&opb,buffer,6); + if(memcmp(buffer,"vorbis",6)) + return 0; /* not vorbis */ + + return 1; + } + + return 0; +} + /* The Vorbis header is in three packets; the initial small packet in the first page that identifies basic parameters, a second packet with bitstream comments and a third packet that holds the @@ -335,7 +378,7 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ oggpack_buffer opb; - + if(op){ oggpack_readinit(&opb,op->packet,op->bytes); @@ -347,42 +390,42 @@ int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op) memset(buffer,0,6); _v_readstring(&opb,buffer,6); if(memcmp(buffer,"vorbis",6)){ - /* not a vorbis header */ - return(OV_ENOTVORBIS); + /* not a vorbis header */ + return(OV_ENOTVORBIS); } switch(packtype){ case 0x01: /* least significant *bit* is read first */ - if(!op->b_o_s){ - /* Not the initial packet */ - return(OV_EBADHEADER); - } - if(vi->rate!=0){ - /* previously initialized info header */ - return(OV_EBADHEADER); - } + if(!op->b_o_s){ + /* Not the initial packet */ + return(OV_EBADHEADER); + } + if(vi->rate!=0){ + /* previously initialized info header */ + return(OV_EBADHEADER); + } - return(_vorbis_unpack_info(vi,&opb)); + return(_vorbis_unpack_info(vi,&opb)); case 0x03: /* least significant *bit* is read first */ - if(vi->rate==0){ - /* um... we didn't get the initial header */ - return(OV_EBADHEADER); - } + if(vi->rate==0){ + /* um... we didn't get the initial header */ + return(OV_EBADHEADER); + } - return(_vorbis_unpack_comment(vc,&opb)); + return(_vorbis_unpack_comment(vc,&opb)); case 0x05: /* least significant *bit* is read first */ - if(vi->rate==0 || vc->vendor==NULL){ - /* um... we didn;t get the initial header or comments yet */ - return(OV_EBADHEADER); - } + if(vi->rate==0 || vc->vendor==NULL){ + /* um... we didn;t get the initial header or comments yet */ + return(OV_EBADHEADER); + } - return(_vorbis_unpack_books(vi,&opb)); + return(_vorbis_unpack_books(vi,&opb)); default: - /* Not a valid vorbis header type */ - return(OV_EBADHEADER); - break; + /* Not a valid vorbis header type */ + return(OV_EBADHEADER); + break; } } } @@ -395,7 +438,7 @@ static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ codec_setup_info *ci=vi->codec_setup; if(!ci)return(OV_EFAULT); - /* preamble */ + /* preamble */ oggpack_write(opb,0x01,8); _v_writestring(opb,"vorbis", 6); @@ -416,17 +459,16 @@ static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ } static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - char temp[]="Xiph.Org libVorbis I 20030909"; - int bytes = strlen(temp); + int bytes = strlen(ENCODE_VENDOR_STRING); - /* preamble */ + /* preamble */ oggpack_write(opb,0x03,8); _v_writestring(opb,"vorbis", 6); /* vendor */ oggpack_write(opb,bytes,32); - _v_writestring(opb,temp, bytes); - + _v_writestring(opb,ENCODE_VENDOR_STRING, bytes); + /* comments */ oggpack_write(opb,vc->comments,32); @@ -434,10 +476,10 @@ static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ int i; for(i=0;icomments;i++){ if(vc->user_comments[i]){ - oggpack_write(opb,vc->comment_lengths[i],32); - _v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]); + oggpack_write(opb,vc->comment_lengths[i],32); + _v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]); }else{ - oggpack_write(opb,0,32); + oggpack_write(opb,0,32); } } } @@ -445,7 +487,7 @@ static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ return(0); } - + static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){ codec_setup_info *ci=vi->codec_setup; int i; @@ -500,10 +542,10 @@ static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){ return(0); err_out: return(-1); -} +} int vorbis_commentheader_out(vorbis_comment *vc, - ogg_packet *op){ + ogg_packet *op){ oggpack_buffer opb; @@ -517,15 +559,16 @@ int vorbis_commentheader_out(vorbis_comment *vc, op->b_o_s=0; op->e_o_s=0; op->granulepos=0; + op->packetno=1; return 0; } int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code){ + vorbis_comment *vc, + ogg_packet *op, + ogg_packet *op_comm, + ogg_packet *op_code){ int ret=OV_EIMPL; vorbis_info *vi=v->vi; oggpack_buffer opb; @@ -550,6 +593,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, op->b_o_s=1; op->e_o_s=0; op->granulepos=0; + op->packetno=0; /* second header packet (comments) **********************************/ @@ -564,6 +608,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, op_comm->b_o_s=0; op_comm->e_o_s=0; op_comm->granulepos=0; + op_comm->packetno=1; /* third header packet (modes/codebooks) ****************************/ @@ -578,21 +623,24 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, op_code->b_o_s=0; op_code->e_o_s=0; op_code->granulepos=0; + op_code->packetno=2; oggpack_writeclear(&opb); return(0); err_out: - oggpack_writeclear(&opb); memset(op,0,sizeof(*op)); memset(op_comm,0,sizeof(*op_comm)); memset(op_code,0,sizeof(*op_code)); - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - b->header=NULL; - b->header1=NULL; - b->header2=NULL; + if(b){ + oggpack_writeclear(&opb); + if(b->header)_ogg_free(b->header); + if(b->header1)_ogg_free(b->header1); + if(b->header2)_ogg_free(b->header2); + b->header=NULL; + b->header1=NULL; + b->header2=NULL; + } return(ret); } @@ -601,3 +649,7 @@ double vorbis_granule_time(vorbis_dsp_state *v,ogg_int64_t granulepos){ return((double)granulepos/v->vi->rate); return(-1); } + +const char *vorbis_version_string(void){ + return GENERAL_VENDOR_STRING; +} diff --git a/libvorbis-1.0.1/lib/lookup.c b/Dependencies/libvorbis/lib/lookup.c similarity index 90% rename from libvorbis-1.0.1/lib/lookup.c rename to Dependencies/libvorbis/lib/lookup.c index de145de..3321ed3 100644 --- a/libvorbis-1.0.1/lib/lookup.c +++ b/Dependencies/libvorbis/lib/lookup.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: lookup based functions - last mod: $Id: lookup.c,v 1.9 2002/01/22 08:06:07 xiphmont Exp $ + last mod: $Id: lookup.c 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -56,16 +56,16 @@ float vorbis_fromdBlook(float a){ #ifdef INT_LOOKUP /* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in - 16.16 format + 16.16 format returns in m.8 format */ long vorbis_invsqlook_i(long a,long e){ - long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); + long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); long d=(a&INVSQ_LOOKUP_I_MASK)<<(16-INVSQ_LOOKUP_I_SHIFT); /* 0.16 */ long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ (((INVSQ_LOOKUP_I[i]-INVSQ_LOOKUP_I[i+1])* /* 0.16 */ d)>>16); /* result 1.16 */ - + e+=32; if(e&1)val=(val*5792)>>13; /* multiply val by 1/sqrt(2) */ e=(e>>1)-8; @@ -88,7 +88,7 @@ long vorbis_coslook_i(long a){ int i=a>>COS_LOOKUP_I_SHIFT; int d=a&COS_LOOKUP_I_MASK; return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> - COS_LOOKUP_I_SHIFT); + COS_LOOKUP_I_SHIFT); } #endif diff --git a/libvorbis-1.0.1/lib/lookup.h b/Dependencies/libvorbis/lib/lookup.h similarity index 84% rename from libvorbis-1.0.1/lib/lookup.h rename to Dependencies/libvorbis/lib/lookup.h index c77e41d..f8b5b82 100644 --- a/libvorbis-1.0.1/lib/lookup.h +++ b/Dependencies/libvorbis/lib/lookup.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: lookup based functions - last mod: $Id: lookup.h,v 1.7 2002/07/11 06:40:49 xiphmont Exp $ + last mod: $Id: lookup.h 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -27,6 +27,6 @@ extern float vorbis_fromdBlook(float a); extern long vorbis_invsqlook_i(long a,long e); extern long vorbis_coslook_i(long a); extern float vorbis_fromdBlook_i(long a); -#endif +#endif #endif diff --git a/Dependencies/libvorbis/lib/lookup_data.h b/Dependencies/libvorbis/lib/lookup_data.h new file mode 100644 index 0000000..2424a1b --- /dev/null +++ b/Dependencies/libvorbis/lib/lookup_data.h @@ -0,0 +1,192 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: lookup data; generated by lookups.pl; edit there + last mod: $Id: lookup_data.h 16037 2009-05-26 21:10:58Z xiphmont $ + + ********************************************************************/ + +#ifndef _V_LOOKUP_DATA_H_ + +#ifdef FLOAT_LOOKUP +#define COS_LOOKUP_SZ 128 +static const float COS_LOOKUP[COS_LOOKUP_SZ+1]={ + +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f, + +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f, + +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f, + +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f, + +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f, + +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f, + +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f, + +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f, + +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f, + +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f, + +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f, + +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f, + +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f, + +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f, + +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f, + +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f, + +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f, + -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f, + -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f, + -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f, + -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f, + -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f, + -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f, + -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f, + -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f, + -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f, + -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f, + -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f, + -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f, + -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f, + -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f, + -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f, + -1.0000000000000f, +}; + +#define INVSQ_LOOKUP_SZ 32 +static const float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ + 1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f, + 1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f, + 1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f, + 1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f, + 1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f, + 1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f, + 1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f, + 1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f, + 1.000000000000f, +}; + +#define INVSQ2EXP_LOOKUP_MIN (-32) +#define INVSQ2EXP_LOOKUP_MAX 32 +static const float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ + INVSQ2EXP_LOOKUP_MIN+1]={ + 65536.f, 46340.95001f, 32768.f, 23170.47501f, + 16384.f, 11585.2375f, 8192.f, 5792.618751f, + 4096.f, 2896.309376f, 2048.f, 1448.154688f, + 1024.f, 724.0773439f, 512.f, 362.038672f, + 256.f, 181.019336f, 128.f, 90.50966799f, + 64.f, 45.254834f, 32.f, 22.627417f, + 16.f, 11.3137085f, 8.f, 5.656854249f, + 4.f, 2.828427125f, 2.f, 1.414213562f, + 1.f, 0.7071067812f, 0.5f, 0.3535533906f, + 0.25f, 0.1767766953f, 0.125f, 0.08838834765f, + 0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f, + 0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f, + 0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f, + 0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f, + 0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f, + 6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f, + 1.525878906e-05f, +}; + +#endif + +#define FROMdB_LOOKUP_SZ 35 +#define FROMdB2_LOOKUP_SZ 32 +#define FROMdB_SHIFT 5 +#define FROMdB2_SHIFT 3 +#define FROMdB2_MASK 31 + +#ifdef FLOAT_LOOKUP +static const float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ + 1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f, + 0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f, + 0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f, + 0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f, + 0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f, + 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f, + 1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f, + 2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f, + 3.981071706e-07f,2.511886432e-07f,1.584893192e-07f, +}; + +static const float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ + 0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f, + 0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f, + 0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f, + 0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f, + 0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f, + 0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f, + 0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f, + 0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f, +}; +#endif + +#ifdef INT_LOOKUP + +#define INVSQ_LOOKUP_I_SHIFT 10 +#define INVSQ_LOOKUP_I_MASK 1023 +static const long INVSQ_LOOKUP_I[64+1]={ + 92682l, 91966l, 91267l, 90583l, + 89915l, 89261l, 88621l, 87995l, + 87381l, 86781l, 86192l, 85616l, + 85051l, 84497l, 83953l, 83420l, + 82897l, 82384l, 81880l, 81385l, + 80899l, 80422l, 79953l, 79492l, + 79039l, 78594l, 78156l, 77726l, + 77302l, 76885l, 76475l, 76072l, + 75674l, 75283l, 74898l, 74519l, + 74146l, 73778l, 73415l, 73058l, + 72706l, 72359l, 72016l, 71679l, + 71347l, 71019l, 70695l, 70376l, + 70061l, 69750l, 69444l, 69141l, + 68842l, 68548l, 68256l, 67969l, + 67685l, 67405l, 67128l, 66855l, + 66585l, 66318l, 66054l, 65794l, + 65536l, +}; + +#define COS_LOOKUP_I_SHIFT 9 +#define COS_LOOKUP_I_MASK 511 +#define COS_LOOKUP_I_SZ 128 +static const long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ + 16384l, 16379l, 16364l, 16340l, + 16305l, 16261l, 16207l, 16143l, + 16069l, 15986l, 15893l, 15791l, + 15679l, 15557l, 15426l, 15286l, + 15137l, 14978l, 14811l, 14635l, + 14449l, 14256l, 14053l, 13842l, + 13623l, 13395l, 13160l, 12916l, + 12665l, 12406l, 12140l, 11866l, + 11585l, 11297l, 11003l, 10702l, + 10394l, 10080l, 9760l, 9434l, + 9102l, 8765l, 8423l, 8076l, + 7723l, 7366l, 7005l, 6639l, + 6270l, 5897l, 5520l, 5139l, + 4756l, 4370l, 3981l, 3590l, + 3196l, 2801l, 2404l, 2006l, + 1606l, 1205l, 804l, 402l, + 0l, -401l, -803l, -1204l, + -1605l, -2005l, -2403l, -2800l, + -3195l, -3589l, -3980l, -4369l, + -4755l, -5138l, -5519l, -5896l, + -6269l, -6638l, -7004l, -7365l, + -7722l, -8075l, -8422l, -8764l, + -9101l, -9433l, -9759l, -10079l, + -10393l, -10701l, -11002l, -11296l, + -11584l, -11865l, -12139l, -12405l, + -12664l, -12915l, -13159l, -13394l, + -13622l, -13841l, -14052l, -14255l, + -14448l, -14634l, -14810l, -14977l, + -15136l, -15285l, -15425l, -15556l, + -15678l, -15790l, -15892l, -15985l, + -16068l, -16142l, -16206l, -16260l, + -16304l, -16339l, -16363l, -16378l, + -16383l, +}; + +#endif + +#endif diff --git a/libvorbis-1.0.1/lib/lookups.pl b/Dependencies/libvorbis/lib/lookups.pl similarity index 95% rename from libvorbis-1.0.1/lib/lookups.pl rename to Dependencies/libvorbis/lib/lookups.pl index f8d2a50..bd92df7 100755 --- a/libvorbis-1.0.1/lib/lookups.pl +++ b/Dependencies/libvorbis/lib/lookups.pl @@ -7,13 +7,13 @@ print <<'EOD'; * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: lookup data; generated by lookups.pl; edit there - last mod: $Id: lookups.pl,v 1.7 2002/07/11 06:40:49 xiphmont Exp $ + last mod: $Id: lookups.pl 13293 2007-07-24 00:09:47Z xiphmont $ ********************************************************************/ diff --git a/libvorbis-1.0.1/lib/lpc.c b/Dependencies/libvorbis/lib/lpc.c similarity index 85% rename from libvorbis-1.0.1/lib/lpc.c rename to Dependencies/libvorbis/lib/lpc.c index 7fabe84..f5199ec 100644 --- a/libvorbis-1.0.1/lib/lpc.c +++ b/Dependencies/libvorbis/lib/lpc.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: LPC low level routines - last mod: $Id: lpc.c,v 1.37 2003/03/08 07:15:32 xiphmont Exp $ + last mod: $Id: lpc.c 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -62,6 +62,7 @@ float vorbis_lpc_from_data(float *data,float *lpci,int n,int m){ double *aut=alloca(sizeof(*aut)*(m+1)); double *lpc=alloca(sizeof(*lpc)*(m)); double error; + double epsilon; int i,j; /* autocorrelation, p+1 lag coefficients */ @@ -71,17 +72,19 @@ float vorbis_lpc_from_data(float *data,float *lpci,int n,int m){ for(i=j;i>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; + if(!(shift=MLOOP_2[(pi|qi)>>19])) + shift=MLOOP_3[(pi|qi)>>16]; qi=(qi>>shift)*labs(ilsp[j-1]-wi); pi=(pi>>shift)*labs(ilsp[j]-wi); qexp+=shift; } if(!(shift=MLOOP_1[(pi|qi)>>25])) if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; + shift=MLOOP_3[(pi|qi)>>16]; /* pi,qi normalized collectively, both tracked using qexp */ @@ -181,9 +182,9 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, qexp+=shift; if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - + if(!(shift=MLOOP_2[(pi|qi)>>19])) + shift=MLOOP_3[(pi|qi)>>16]; + pi>>=shift; qi>>=shift; qexp+=shift-14*((m+1)>>1); @@ -199,8 +200,8 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, /* even order filter; still symmetric */ /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't - worth tracking step by step */ - + worth tracking step by step */ + pi>>=shift; qi>>=shift; qexp+=shift-7*m; @@ -208,36 +209,36 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, pi=((pi*pi)>>16); qi=((qi*qi)>>16); qexp=qexp*2+m; - + pi*=(1<<14)-wi; qi*=(1<<14)+wi; qi=(qi+pi)>>14; - + } - + /* we've let the normalization drift because it wasn't important; however, for the lookup, things must be normalized again. We need at most one right shift or a number of left shifts */ if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ - qi>>=1; qexp++; + qi>>=1; qexp++; }else while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ - qi<<=1; qexp--; + qi<<=1; qexp--; } amp=vorbis_fromdBlook_i(ampi* /* n.4 */ - vorbis_invsqlook_i(qi,qexp)- - /* m.8, m+n<=8 */ - ampoffseti); /* 8.12[0] */ + vorbis_invsqlook_i(qi,qexp)- + /* m.8, m+n<=8 */ + ampoffseti); /* 8.12[0] */ curve[i]*=amp; while(map[++i]==k)curve[i]*=amp; } } -#else +#else /* old, nonoptimized but simple version for any poor sap who needs to figure out what the hell this code does, or wants the other @@ -245,7 +246,7 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, /* side effect: changes *lsp to cosines of lsp */ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ + float amp,float ampoffset){ int i; float wdel=M_PI/ln; for(i=0;i= i; j--) { g[j-2] -= g[j]; - g[j] += g[j]; + g[j] += g[j]; } } } @@ -318,25 +319,25 @@ static int Laguerre_With_Deflation(float *a,int ord,float *r){ /* iterate a root */ while(1){ double p=defl[m],pp=0.f,ppp=0.f,denom; - + /* eval the polynomial and its first two derivatives */ for(i=m;i>0;i--){ - ppp = new*ppp + pp; - pp = new*pp + p; - p = new*p + defl[i-1]; + ppp = new*ppp + pp; + pp = new*pp + p; + p = new*p + defl[i-1]; } - + /* Laguerre's method */ denom=(m-1) * ((m-1)*pp*pp - m*p*ppp); if(denom<0) - return(-1); /* complex root! The LPC generator handed us a bad filter */ + return(-1); /* complex root! The LPC generator handed us a bad filter */ if(pp>0){ - denom = pp + sqrt(denom); - if(denom-(EPSILON))denom=-(EPSILON); + denom = pp - sqrt(denom); + if(denom>-(EPSILON))denom=-(EPSILON); } delta = m*p/denom; @@ -344,14 +345,14 @@ static int Laguerre_With_Deflation(float *a,int ord,float *r){ if(delta<0.f)delta*=-1; - if(fabs(delta/new)<10e-12)break; + if(fabs(delta/new)<10e-12)break; lastdelta=delta; } r[m-1]=new; /* forward deflation */ - + for(i=m;i>0;i--) defl[i-1]+=new*defl[i]; defl++; @@ -368,27 +369,27 @@ static int Newton_Raphson(float *a,int ord,float *r){ double *root=alloca(ord*sizeof(*root)); for(i=0; i1e-20){ error=0; - + for(i=0; i= 0; k--) { - pp= pp* rooti + p; - p = p * rooti + a[k]; + pp= pp* rooti + p; + p = p * rooti + a[k]; } delta = p/pp; root[i] -= delta; error+= delta*delta; } - + if(count>40)return(-1); - + count++; } @@ -418,12 +419,12 @@ int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m){ /* Compute the first half of K & R F1 & F2 polynomials. */ /* Compute half of the symmetric and antisymmetric polynomials. */ /* Remove the roots at +1 and -1. */ - + g1[g1_order] = 1.f; for(i=1;i<=g1_order;i++) g1[g1_order-i] = lpc[i-1]+lpc[m-i]; g2[g2_order] = 1.f; for(i=1;i<=g2_order;i++) g2[g2_order-i] = lpc[i-1]-lpc[m-i]; - + if(g1_order>g2_order){ for(i=2; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+2]; }else{ diff --git a/libvorbis-1.0.1/lib/lsp.h b/Dependencies/libvorbis/lib/lsp.h similarity index 75% rename from libvorbis-1.0.1/lib/lsp.h rename to Dependencies/libvorbis/lib/lsp.h index a2a064b..bacfb09 100644 --- a/libvorbis-1.0.1/lib/lsp.h +++ b/Dependencies/libvorbis/lib/lsp.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: LSP (also called LSF) conversion routines - last mod: $Id: lsp.h,v 1.11 2002/07/11 06:40:49 xiphmont Exp $ + last mod: $Id: lsp.h 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -22,7 +22,7 @@ extern int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m); extern void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln, - float *lsp,int m, - float amp,float ampoffset); - + float *lsp,int m, + float amp,float ampoffset); + #endif diff --git a/Dependencies/libvorbis/lib/mapping0.c b/Dependencies/libvorbis/lib/mapping0.c new file mode 100644 index 0000000..7d279a8 --- /dev/null +++ b/Dependencies/libvorbis/lib/mapping0.c @@ -0,0 +1,816 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: channel mapping 0 implementation + last mod: $Id: mapping0.c 17022 2010-03-25 03:45:42Z xiphmont $ + + ********************************************************************/ + +#include +#include +#include +#include +#include +#include "vorbis/codec.h" +#include "codec_internal.h" +#include "codebook.h" +#include "window.h" +#include "registry.h" +#include "psy.h" +#include "misc.h" + +/* simplistic, wasteful way of doing this (unique lookup for each + mode/submapping); there should be a central repository for + identical lookups. That will require minor work, so I'm putting it + off as low priority. + + Why a lookup for each backend in a given mode? Because the + blocksize is set by the mode, and low backend lookups may require + parameters from other areas of the mode/mapping */ + +static void mapping0_free_info(vorbis_info_mapping *i){ + vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i; + if(info){ + memset(info,0,sizeof(*info)); + _ogg_free(info); + } +} + +static int ilog(unsigned int v){ + int ret=0; + if(v)--v; + while(v){ + ret++; + v>>=1; + } + return(ret); +} + +static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm, + oggpack_buffer *opb){ + int i; + vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; + + /* another 'we meant to do it this way' hack... up to beta 4, we + packed 4 binary zeros here to signify one submapping in use. We + now redefine that to mean four bitflags that indicate use of + deeper features; bit0:submappings, bit1:coupling, + bit2,3:reserved. This is backward compatable with all actual uses + of the beta code. */ + + if(info->submaps>1){ + oggpack_write(opb,1,1); + oggpack_write(opb,info->submaps-1,4); + }else + oggpack_write(opb,0,1); + + if(info->coupling_steps>0){ + oggpack_write(opb,1,1); + oggpack_write(opb,info->coupling_steps-1,8); + + for(i=0;icoupling_steps;i++){ + oggpack_write(opb,info->coupling_mag[i],ilog(vi->channels)); + oggpack_write(opb,info->coupling_ang[i],ilog(vi->channels)); + } + }else + oggpack_write(opb,0,1); + + oggpack_write(opb,0,2); /* 2,3:reserved */ + + /* we don't write the channel submappings if we only have one... */ + if(info->submaps>1){ + for(i=0;ichannels;i++) + oggpack_write(opb,info->chmuxlist[i],4); + } + for(i=0;isubmaps;i++){ + oggpack_write(opb,0,8); /* time submap unused */ + oggpack_write(opb,info->floorsubmap[i],8); + oggpack_write(opb,info->residuesubmap[i],8); + } +} + +/* also responsible for range checking */ +static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ + int i,b; + vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info)); + codec_setup_info *ci=vi->codec_setup; + memset(info,0,sizeof(*info)); + + b=oggpack_read(opb,1); + if(b<0)goto err_out; + if(b){ + info->submaps=oggpack_read(opb,4)+1; + if(info->submaps<=0)goto err_out; + }else + info->submaps=1; + + b=oggpack_read(opb,1); + if(b<0)goto err_out; + if(b){ + info->coupling_steps=oggpack_read(opb,8)+1; + if(info->coupling_steps<=0)goto err_out; + for(i=0;icoupling_steps;i++){ + int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels)); + int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels)); + + if(testM<0 || + testA<0 || + testM==testA || + testM>=vi->channels || + testA>=vi->channels) goto err_out; + } + + } + + if(oggpack_read(opb,2)!=0)goto err_out; /* 2,3:reserved */ + + if(info->submaps>1){ + for(i=0;ichannels;i++){ + info->chmuxlist[i]=oggpack_read(opb,4); + if(info->chmuxlist[i]>=info->submaps || info->chmuxlist[i]<0)goto err_out; + } + } + for(i=0;isubmaps;i++){ + oggpack_read(opb,8); /* time submap unused */ + info->floorsubmap[i]=oggpack_read(opb,8); + if(info->floorsubmap[i]>=ci->floors || info->floorsubmap[i]<0)goto err_out; + info->residuesubmap[i]=oggpack_read(opb,8); + if(info->residuesubmap[i]>=ci->residues || info->residuesubmap[i]<0)goto err_out; + } + + return info; + + err_out: + mapping0_free_info(info); + return(NULL); +} + +#include "os.h" +#include "lpc.h" +#include "lsp.h" +#include "envelope.h" +#include "mdct.h" +#include "psy.h" +#include "scales.h" + +#if 0 +static long seq=0; +static ogg_int64_t total=0; +static float FLOOR1_fromdB_LOOKUP[256]={ + 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, + 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, + 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, + 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, + 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, + 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, + 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, + 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, + 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, + 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, + 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, + 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, + 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, + 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, + 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, + 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, + 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, + 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, + 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, + 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, + 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, + 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, + 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, + 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, + 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, + 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, + 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, + 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, + 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, + 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, + 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, + 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, + 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, + 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, + 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, + 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, + 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, + 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, + 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, + 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, + 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, + 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, + 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, + 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, + 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, + 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, + 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, + 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, + 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, + 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, + 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, + 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, + 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, + 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, + 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, + 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, + 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, + 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, + 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, + 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, + 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, + 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, + 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, + 0.82788260F, 0.88168307F, 0.9389798F, 1.F, +}; + +#endif + + +static int mapping0_forward(vorbis_block *vb){ + vorbis_dsp_state *vd=vb->vd; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=vi->codec_setup; + private_state *b=vb->vd->backend_state; + vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; + int n=vb->pcmend; + int i,j,k; + + int *nonzero = alloca(sizeof(*nonzero)*vi->channels); + float **gmdct = _vorbis_block_alloc(vb,vi->channels*sizeof(*gmdct)); + int **iwork = _vorbis_block_alloc(vb,vi->channels*sizeof(*iwork)); + int ***floor_posts = _vorbis_block_alloc(vb,vi->channels*sizeof(*floor_posts)); + + float global_ampmax=vbi->ampmax; + float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels); + int blocktype=vbi->blocktype; + + int modenumber=vb->W; + vorbis_info_mapping0 *info=ci->map_param[modenumber]; + vorbis_look_psy *psy_look=b->psy+blocktype+(vb->W?2:0); + + vb->mode=modenumber; + + for(i=0;ichannels;i++){ + float scale=4.f/n; + float scale_dB; + + float *pcm =vb->pcm[i]; + float *logfft =pcm; + + iwork[i]=_vorbis_block_alloc(vb,n/2*sizeof(**iwork)); + gmdct[i]=_vorbis_block_alloc(vb,n/2*sizeof(**gmdct)); + + scale_dB=todB(&scale) + .345; /* + .345 is a hack; the original + todB estimation used on IEEE 754 + compliant machines had a bug that + returned dB values about a third + of a decibel too high. The bug + was harmless because tunings + implicitly took that into + account. However, fixing the bug + in the estimator requires + changing all the tunings as well. + For now, it's easier to sync + things back up here, and + recalibrate the tunings in the + next major model upgrade. */ + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("pcmL",seq,pcm,n,0,0,total-n/2); + else + _analysis_output("pcmR",seq,pcm,n,0,0,total-n/2); + }else{ + _analysis_output("pcm",seq,pcm,n,0,0,total-n/2); + } +#endif + + /* window the PCM data */ + _vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW); + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("windowedL",seq,pcm,n,0,0,total-n/2); + else + _analysis_output("windowedR",seq,pcm,n,0,0,total-n/2); + }else{ + _analysis_output("windowed",seq,pcm,n,0,0,total-n/2); + } +#endif + + /* transform the PCM data */ + /* only MDCT right now.... */ + mdct_forward(b->transform[vb->W][0],pcm,gmdct[i]); + + /* FFT yields more accurate tonal estimation (not phase sensitive) */ + drft_forward(&b->fft_look[vb->W],pcm); + logfft[0]=scale_dB+todB(pcm) + .345; /* + .345 is a hack; the + original todB estimation used on + IEEE 754 compliant machines had a + bug that returned dB values about + a third of a decibel too high. + The bug was harmless because + tunings implicitly took that into + account. However, fixing the bug + in the estimator requires + changing all the tunings as well. + For now, it's easier to sync + things back up here, and + recalibrate the tunings in the + next major model upgrade. */ + local_ampmax[i]=logfft[0]; + for(j=1;j>1]=scale_dB+.5f*todB(&temp) + .345; /* + + .345 is a hack; the original todB + estimation used on IEEE 754 + compliant machines had a bug that + returned dB values about a third + of a decibel too high. The bug + was harmless because tunings + implicitly took that into + account. However, fixing the bug + in the estimator requires + changing all the tunings as well. + For now, it's easier to sync + things back up here, and + recalibrate the tunings in the + next major model upgrade. */ + if(temp>local_ampmax[i])local_ampmax[i]=temp; + } + + if(local_ampmax[i]>0.f)local_ampmax[i]=0.f; + if(local_ampmax[i]>global_ampmax)global_ampmax=local_ampmax[i]; + +#if 0 + if(vi->channels==2){ + if(i==0){ + _analysis_output("fftL",seq,logfft,n/2,1,0,0); + }else{ + _analysis_output("fftR",seq,logfft,n/2,1,0,0); + } + }else{ + _analysis_output("fft",seq,logfft,n/2,1,0,0); + } +#endif + + } + + { + float *noise = _vorbis_block_alloc(vb,n/2*sizeof(*noise)); + float *tone = _vorbis_block_alloc(vb,n/2*sizeof(*tone)); + + for(i=0;ichannels;i++){ + /* the encoder setup assumes that all the modes used by any + specific bitrate tweaking use the same floor */ + + int submap=info->chmuxlist[i]; + + /* the following makes things clearer to *me* anyway */ + float *mdct =gmdct[i]; + float *logfft =vb->pcm[i]; + + float *logmdct =logfft+n/2; + float *logmask =logfft; + + vb->mode=modenumber; + + floor_posts[i]=_vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts)); + memset(floor_posts[i],0,sizeof(**floor_posts)*PACKETBLOBS); + + for(j=0;jchannels==2){ + if(i==0) + _analysis_output("mdctL",seq,logmdct,n/2,1,0,0); + else + _analysis_output("mdctR",seq,logmdct,n/2,1,0,0); + }else{ + _analysis_output("mdct",seq,logmdct,n/2,1,0,0); + } +#endif + + /* first step; noise masking. Not only does 'noise masking' + give us curves from which we can decide how much resolution + to give noise parts of the spectrum, it also implicitly hands + us a tonality estimate (the larger the value in the + 'noise_depth' vector, the more tonal that area is) */ + + _vp_noisemask(psy_look, + logmdct, + noise); /* noise does not have by-frequency offset + bias applied yet */ +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("noiseL",seq,noise,n/2,1,0,0); + else + _analysis_output("noiseR",seq,noise,n/2,1,0,0); + }else{ + _analysis_output("noise",seq,noise,n/2,1,0,0); + } +#endif + + /* second step: 'all the other crap'; all the stuff that isn't + computed/fit for bitrate management goes in the second psy + vector. This includes tone masking, peak limiting and ATH */ + + _vp_tonemask(psy_look, + logfft, + tone, + global_ampmax, + local_ampmax[i]); + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("toneL",seq,tone,n/2,1,0,0); + else + _analysis_output("toneR",seq,tone,n/2,1,0,0); + }else{ + _analysis_output("tone",seq,tone,n/2,1,0,0); + } +#endif + + /* third step; we offset the noise vectors, overlay tone + masking. We then do a floor1-specific line fit. If we're + performing bitrate management, the line fit is performed + multiple times for up/down tweakage on demand. */ + +#if 0 + { + float aotuv[psy_look->n]; +#endif + + _vp_offset_and_mix(psy_look, + noise, + tone, + 1, + logmask, + mdct, + logmdct); + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("aotuvM1_L",seq,aotuv,psy_look->n,1,1,0); + else + _analysis_output("aotuvM1_R",seq,aotuv,psy_look->n,1,1,0); + }else{ + _analysis_output("aotuvM1",seq,aotuv,psy_look->n,1,1,0); + } + } +#endif + + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("mask1L",seq,logmask,n/2,1,0,0); + else + _analysis_output("mask1R",seq,logmask,n/2,1,0,0); + }else{ + _analysis_output("mask1",seq,logmask,n/2,1,0,0); + } +#endif + + /* this algorithm is hardwired to floor 1 for now; abort out if + we're *not* floor1. This won't happen unless someone has + broken the encode setup lib. Guard it anyway. */ + if(ci->floor_type[info->floorsubmap[submap]]!=1)return(-1); + + floor_posts[i][PACKETBLOBS/2]= + floor1_fit(vb,b->flr[info->floorsubmap[submap]], + logmdct, + logmask); + + /* are we managing bitrate? If so, perform two more fits for + later rate tweaking (fits represent hi/lo) */ + if(vorbis_bitrate_managed(vb) && floor_posts[i][PACKETBLOBS/2]){ + /* higher rate by way of lower noise curve */ + + _vp_offset_and_mix(psy_look, + noise, + tone, + 2, + logmask, + mdct, + logmdct); + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("mask2L",seq,logmask,n/2,1,0,0); + else + _analysis_output("mask2R",seq,logmask,n/2,1,0,0); + }else{ + _analysis_output("mask2",seq,logmask,n/2,1,0,0); + } +#endif + + floor_posts[i][PACKETBLOBS-1]= + floor1_fit(vb,b->flr[info->floorsubmap[submap]], + logmdct, + logmask); + + /* lower rate by way of higher noise curve */ + _vp_offset_and_mix(psy_look, + noise, + tone, + 0, + logmask, + mdct, + logmdct); + +#if 0 + if(vi->channels==2){ + if(i==0) + _analysis_output("mask0L",seq,logmask,n/2,1,0,0); + else + _analysis_output("mask0R",seq,logmask,n/2,1,0,0); + }else{ + _analysis_output("mask0",seq,logmask,n/2,1,0,0); + } +#endif + + floor_posts[i][0]= + floor1_fit(vb,b->flr[info->floorsubmap[submap]], + logmdct, + logmask); + + /* we also interpolate a range of intermediate curves for + intermediate rates */ + for(k=1;kflr[info->floorsubmap[submap]], + floor_posts[i][0], + floor_posts[i][PACKETBLOBS/2], + k*65536/(PACKETBLOBS/2)); + for(k=PACKETBLOBS/2+1;kflr[info->floorsubmap[submap]], + floor_posts[i][PACKETBLOBS/2], + floor_posts[i][PACKETBLOBS-1], + (k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2)); + } + } + } + vbi->ampmax=global_ampmax; + + /* + the next phases are performed once for vbr-only and PACKETBLOB + times for bitrate managed modes. + + 1) encode actual mode being used + 2) encode the floor for each channel, compute coded mask curve/res + 3) normalize and couple. + 4) encode residue + 5) save packet bytes to the packetblob vector + + */ + + /* iterate over the many masking curve fits we've created */ + + { + int **couple_bundle=alloca(sizeof(*couple_bundle)*vi->channels); + int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); + + for(k=(vorbis_bitrate_managed(vb)?0:PACKETBLOBS/2); + k<=(vorbis_bitrate_managed(vb)?PACKETBLOBS-1:PACKETBLOBS/2); + k++){ + oggpack_buffer *opb=vbi->packetblob[k]; + + /* start out our new packet blob with packet type and mode */ + /* Encode the packet type */ + oggpack_write(opb,0,1); + /* Encode the modenumber */ + /* Encode frame mode, pre,post windowsize, then dispatch */ + oggpack_write(opb,modenumber,b->modebits); + if(vb->W){ + oggpack_write(opb,vb->lW,1); + oggpack_write(opb,vb->nW,1); + } + + /* encode floor, compute masking curve, sep out residue */ + for(i=0;ichannels;i++){ + int submap=info->chmuxlist[i]; + int *ilogmask=iwork[i]; + + nonzero[i]=floor1_encode(opb,vb,b->flr[info->floorsubmap[submap]], + floor_posts[i][k], + ilogmask); +#if 0 + { + char buf[80]; + sprintf(buf,"maskI%c%d",i?'R':'L',k); + float work[n/2]; + for(j=0;jpsy_g_param, + psy_look, + info, + gmdct, + iwork, + nonzero, + ci->psy_g_param.sliding_lowpass[vb->W][k], + vi->channels); + +#if 0 + for(i=0;ichannels;i++){ + char buf[80]; + sprintf(buf,"res%c%d",i?'R':'L',k); + float work[n/2]; + for(j=0;jsubmaps;i++){ + int ch_in_bundle=0; + long **classifications; + int resnum=info->residuesubmap[i]; + + for(j=0;jchannels;j++){ + if(info->chmuxlist[j]==i){ + zerobundle[ch_in_bundle]=0; + if(nonzero[j])zerobundle[ch_in_bundle]=1; + couple_bundle[ch_in_bundle++]=iwork[j]; + } + } + + classifications=_residue_P[ci->residue_type[resnum]]-> + class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle); + + ch_in_bundle=0; + for(j=0;jchannels;j++) + if(info->chmuxlist[j]==i) + couple_bundle[ch_in_bundle++]=iwork[j]; + + _residue_P[ci->residue_type[resnum]]-> + forward(opb,vb,b->residue[resnum], + couple_bundle,zerobundle,ch_in_bundle,classifications,i); + } + + /* ok, done encoding. Next protopacket. */ + } + + } + +#if 0 + seq++; + total+=ci->blocksizes[vb->W]/4+ci->blocksizes[vb->nW]/4; +#endif + return(0); +} + +static int mapping0_inverse(vorbis_block *vb,vorbis_info_mapping *l){ + vorbis_dsp_state *vd=vb->vd; + vorbis_info *vi=vd->vi; + codec_setup_info *ci=vi->codec_setup; + private_state *b=vd->backend_state; + vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)l; + + int i,j; + long n=vb->pcmend=ci->blocksizes[vb->W]; + + float **pcmbundle=alloca(sizeof(*pcmbundle)*vi->channels); + int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); + + int *nonzero =alloca(sizeof(*nonzero)*vi->channels); + void **floormemo=alloca(sizeof(*floormemo)*vi->channels); + + /* recover the spectral envelope; store it in the PCM vector for now */ + for(i=0;ichannels;i++){ + int submap=info->chmuxlist[i]; + floormemo[i]=_floor_P[ci->floor_type[info->floorsubmap[submap]]]-> + inverse1(vb,b->flr[info->floorsubmap[submap]]); + if(floormemo[i]) + nonzero[i]=1; + else + nonzero[i]=0; + memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2); + } + + /* channel coupling can 'dirty' the nonzero listing */ + for(i=0;icoupling_steps;i++){ + if(nonzero[info->coupling_mag[i]] || + nonzero[info->coupling_ang[i]]){ + nonzero[info->coupling_mag[i]]=1; + nonzero[info->coupling_ang[i]]=1; + } + } + + /* recover the residue into our working vectors */ + for(i=0;isubmaps;i++){ + int ch_in_bundle=0; + for(j=0;jchannels;j++){ + if(info->chmuxlist[j]==i){ + if(nonzero[j]) + zerobundle[ch_in_bundle]=1; + else + zerobundle[ch_in_bundle]=0; + pcmbundle[ch_in_bundle++]=vb->pcm[j]; + } + } + + _residue_P[ci->residue_type[info->residuesubmap[i]]]-> + inverse(vb,b->residue[info->residuesubmap[i]], + pcmbundle,zerobundle,ch_in_bundle); + } + + /* channel coupling */ + for(i=info->coupling_steps-1;i>=0;i--){ + float *pcmM=vb->pcm[info->coupling_mag[i]]; + float *pcmA=vb->pcm[info->coupling_ang[i]]; + + for(j=0;j0) + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag-ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag+ang; + } + else + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag+ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag-ang; + } + } + } + + /* compute and apply spectral envelope */ + for(i=0;ichannels;i++){ + float *pcm=vb->pcm[i]; + int submap=info->chmuxlist[i]; + _floor_P[ci->floor_type[info->floorsubmap[submap]]]-> + inverse2(vb,b->flr[info->floorsubmap[submap]], + floormemo[i],pcm); + } + + /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ + /* only MDCT right now.... */ + for(i=0;ichannels;i++){ + float *pcm=vb->pcm[i]; + mdct_backward(b->transform[vb->W][0],pcm,pcm); + } + + /* all done! */ + return(0); +} + +/* export hooks */ +const vorbis_func_mapping mapping0_exportbundle={ + &mapping0_pack, + &mapping0_unpack, + &mapping0_free_info, + &mapping0_forward, + &mapping0_inverse +}; diff --git a/Dependencies/libvorbis/lib/masking.h b/Dependencies/libvorbis/lib/masking.h new file mode 100644 index 0000000..3576ab7 --- /dev/null +++ b/Dependencies/libvorbis/lib/masking.h @@ -0,0 +1,785 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: masking curve data for psychoacoustics + last mod: $Id: masking.h 16227 2009-07-08 06:58:46Z xiphmont $ + + ********************************************************************/ + +#ifndef _V_MASKING_H_ +#define _V_MASKING_H_ + +/* more detailed ATH; the bass if flat to save stressing the floor + overly for only a bin or two of savings. */ + +#define MAX_ATH 88 +static const float ATH[]={ + /*15*/ -51, -52, -53, -54, -55, -56, -57, -58, + /*31*/ -59, -60, -61, -62, -63, -64, -65, -66, + /*63*/ -67, -68, -69, -70, -71, -72, -73, -74, + /*125*/ -75, -76, -77, -78, -80, -81, -82, -83, + /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, + /*500*/ -90, -91, -91, -92, -93, -94, -95, -96, + /*1k*/ -96, -97, -98, -98, -99, -99,-100,-100, + /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107, + /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96, + /*8k*/ -95, -95, -96, -97, -96, -95, -93, -90, + /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30 +}; + +/* The tone masking curves from Ehmer's and Fielder's papers have been + replaced by an empirically collected data set. The previously + published values were, far too often, simply on crack. */ + +#define EHMER_OFFSET 16 +#define EHMER_MAX 56 + +/* masking tones from -50 to 0dB, 62.5 through 16kHz at half octaves + test tones from -2 octaves to +5 octaves sampled at eighth octaves */ +/* (Vorbis 0dB, the loudest possible tone, is assumed to be ~100dB SPL + for collection of these curves) */ + +static const float tonemasks[P_BANDS][6][EHMER_MAX]={ + /* 62.5 Hz */ + {{ -60, -60, -60, -60, -60, -60, -60, -60, + -60, -60, -60, -60, -62, -62, -65, -73, + -69, -68, -68, -67, -70, -70, -72, -74, + -75, -79, -79, -80, -83, -88, -93, -100, + -110, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -48, -48, -48, -48, -48, -48, -48, -48, + -48, -48, -48, -48, -48, -53, -61, -66, + -66, -68, -67, -70, -76, -76, -72, -73, + -75, -76, -78, -79, -83, -88, -93, -100, + -110, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -37, -37, -37, -37, -37, -37, -37, -37, + -38, -40, -42, -46, -48, -53, -55, -62, + -65, -58, -56, -56, -61, -60, -65, -67, + -69, -71, -77, -77, -78, -80, -82, -84, + -88, -93, -98, -106, -112, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -25, -25, -25, -25, -25, -25, -25, -25, + -25, -26, -27, -29, -32, -38, -48, -52, + -52, -50, -48, -48, -51, -52, -54, -60, + -67, -67, -66, -68, -69, -73, -73, -76, + -80, -81, -81, -85, -85, -86, -88, -93, + -100, -110, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -16, -16, -16, -16, -16, -16, -16, -16, + -17, -19, -20, -22, -26, -28, -31, -40, + -47, -39, -39, -40, -42, -43, -47, -51, + -57, -52, -55, -55, -60, -58, -62, -63, + -70, -67, -69, -72, -73, -77, -80, -82, + -83, -87, -90, -94, -98, -104, -115, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -10, -11, -15, -19, -25, -30, + -34, -31, -30, -31, -29, -32, -35, -42, + -48, -42, -44, -46, -50, -50, -51, -52, + -59, -54, -55, -55, -58, -62, -63, -66, + -72, -73, -76, -75, -78, -80, -80, -81, + -84, -88, -90, -94, -98, -101, -106, -110}}, + /* 88Hz */ + {{ -66, -66, -66, -66, -66, -66, -66, -66, + -66, -66, -66, -66, -66, -67, -67, -67, + -76, -72, -71, -74, -76, -76, -75, -78, + -79, -79, -81, -83, -86, -89, -93, -97, + -100, -105, -110, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -48, -51, -55, -59, -66, + -66, -66, -67, -66, -68, -69, -70, -74, + -79, -77, -77, -78, -80, -81, -82, -84, + -86, -88, -91, -95, -100, -108, -116, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -36, -36, -36, -36, -36, -36, -36, -36, + -36, -37, -37, -41, -44, -48, -51, -58, + -62, -60, -57, -59, -59, -60, -63, -65, + -72, -71, -70, -72, -74, -77, -76, -78, + -81, -81, -80, -83, -86, -91, -96, -100, + -105, -110, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -28, -28, -28, -28, -28, -28, -28, -28, + -28, -30, -32, -32, -33, -35, -41, -49, + -50, -49, -47, -48, -48, -52, -51, -57, + -65, -61, -59, -61, -64, -69, -70, -74, + -77, -77, -78, -81, -84, -85, -87, -90, + -92, -96, -100, -107, -112, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -19, -19, -19, -19, -19, -19, -19, -19, + -20, -21, -23, -27, -30, -35, -36, -41, + -46, -44, -42, -40, -41, -41, -43, -48, + -55, -53, -52, -53, -56, -59, -58, -60, + -67, -66, -69, -71, -72, -75, -79, -81, + -84, -87, -90, -93, -97, -101, -107, -114, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -9, -9, -9, -9, -9, -9, -9, -9, + -11, -12, -12, -15, -16, -20, -23, -30, + -37, -34, -33, -34, -31, -32, -32, -38, + -47, -44, -41, -40, -47, -49, -46, -46, + -58, -50, -50, -54, -58, -62, -64, -67, + -67, -70, -72, -76, -79, -83, -87, -91, + -96, -100, -104, -110, -999, -999, -999, -999}}, + /* 125 Hz */ + {{ -62, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -63, -64, -66, -67, -66, -68, + -75, -72, -76, -75, -76, -78, -79, -82, + -84, -85, -90, -94, -101, -110, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -59, -59, -59, -59, -59, -59, -59, -59, + -59, -59, -59, -60, -60, -61, -63, -66, + -71, -68, -70, -70, -71, -72, -72, -75, + -81, -78, -79, -82, -83, -86, -90, -97, + -103, -113, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -53, -53, -53, -53, -53, -53, -53, -53, + -53, -54, -55, -57, -56, -57, -55, -61, + -65, -60, -60, -62, -63, -63, -66, -68, + -74, -73, -75, -75, -78, -80, -80, -82, + -85, -90, -96, -101, -108, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -47, -47, -47, -47, -48, -51, + -57, -51, -49, -50, -51, -53, -54, -59, + -66, -60, -62, -67, -67, -70, -72, -75, + -76, -78, -81, -85, -88, -94, -97, -104, + -112, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -36, -36, -36, -36, -36, -36, -36, -36, + -39, -41, -42, -42, -39, -38, -41, -43, + -52, -44, -40, -39, -37, -37, -40, -47, + -54, -50, -48, -50, -55, -61, -59, -62, + -66, -66, -66, -69, -69, -73, -74, -74, + -75, -77, -79, -82, -87, -91, -95, -100, + -108, -115, -999, -999, -999, -999, -999, -999}, + { -28, -26, -24, -22, -20, -20, -23, -29, + -30, -31, -28, -27, -28, -28, -28, -35, + -40, -33, -32, -29, -30, -30, -30, -37, + -45, -41, -37, -38, -45, -47, -47, -48, + -53, -49, -48, -50, -49, -49, -51, -52, + -58, -56, -57, -56, -60, -61, -62, -70, + -72, -74, -78, -83, -88, -93, -100, -106}}, + /* 177 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -110, -105, -100, -95, -91, -87, -83, + -80, -78, -76, -78, -78, -81, -83, -85, + -86, -85, -86, -87, -90, -97, -107, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -110, -105, -100, -95, -90, + -85, -81, -77, -73, -70, -67, -67, -68, + -75, -73, -70, -69, -70, -72, -75, -79, + -84, -83, -84, -86, -88, -89, -89, -93, + -98, -105, -112, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-105, -100, -95, -90, -85, -80, -76, -71, + -68, -68, -65, -63, -63, -62, -62, -64, + -65, -64, -61, -62, -63, -64, -66, -68, + -73, -73, -74, -75, -76, -81, -83, -85, + -88, -89, -92, -95, -100, -108, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -80, -75, -71, -68, -65, -63, -62, -61, + -61, -61, -61, -59, -56, -57, -53, -50, + -58, -52, -50, -50, -52, -53, -54, -58, + -67, -63, -67, -68, -72, -75, -78, -80, + -81, -81, -82, -85, -89, -90, -93, -97, + -101, -107, -114, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + { -65, -61, -59, -57, -56, -55, -55, -56, + -56, -57, -55, -53, -52, -47, -44, -44, + -50, -44, -41, -39, -39, -42, -40, -46, + -51, -49, -50, -53, -54, -63, -60, -61, + -62, -66, -66, -66, -70, -73, -74, -75, + -76, -75, -79, -85, -89, -91, -96, -102, + -110, -999, -999, -999, -999, -999, -999, -999}, + { -52, -50, -49, -49, -48, -48, -48, -49, + -50, -50, -49, -46, -43, -39, -35, -33, + -38, -36, -32, -29, -32, -32, -32, -35, + -44, -39, -38, -38, -46, -50, -45, -46, + -53, -50, -50, -50, -54, -54, -53, -53, + -56, -57, -59, -66, -70, -72, -74, -79, + -83, -85, -90, -97, -114, -999, -999, -999}}, + /* 250 Hz */ + {{-999, -999, -999, -999, -999, -999, -110, -105, + -100, -95, -90, -86, -80, -75, -75, -79, + -80, -79, -80, -81, -82, -88, -95, -103, + -110, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -108, -103, -98, -93, + -88, -83, -79, -78, -75, -71, -67, -68, + -73, -73, -72, -73, -75, -77, -80, -82, + -88, -93, -100, -107, -114, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -110, -105, -101, -96, -90, + -86, -81, -77, -73, -69, -66, -61, -62, + -66, -64, -62, -65, -66, -70, -72, -76, + -81, -80, -84, -90, -95, -102, -110, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -107, -103, -97, -92, -88, + -83, -79, -74, -70, -66, -59, -53, -58, + -62, -55, -54, -54, -54, -58, -61, -62, + -72, -70, -72, -75, -78, -80, -81, -80, + -83, -83, -88, -93, -100, -107, -115, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -105, -100, -95, -90, -85, + -80, -75, -70, -66, -62, -56, -48, -44, + -48, -46, -46, -43, -46, -48, -48, -51, + -58, -58, -59, -60, -62, -62, -61, -61, + -65, -64, -65, -68, -70, -74, -75, -78, + -81, -86, -95, -110, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -105, -100, -95, -90, -85, -80, + -75, -70, -65, -61, -55, -49, -39, -33, + -40, -35, -32, -38, -40, -33, -35, -37, + -46, -41, -45, -44, -46, -42, -45, -46, + -52, -50, -50, -50, -54, -54, -55, -57, + -62, -64, -66, -68, -70, -76, -81, -90, + -100, -110, -999, -999, -999, -999, -999, -999}}, + /* 354 hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -105, -98, -90, -85, -82, -83, -80, -78, + -84, -79, -80, -83, -87, -89, -91, -93, + -99, -106, -117, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -105, -98, -90, -85, -80, -75, -70, -68, + -74, -72, -74, -77, -80, -82, -85, -87, + -92, -89, -91, -95, -100, -106, -112, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -105, -98, -90, -83, -75, -71, -63, -64, + -67, -62, -64, -67, -70, -73, -77, -81, + -84, -83, -85, -89, -90, -93, -98, -104, + -109, -114, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -103, -96, -88, -81, -75, -68, -58, -54, + -56, -54, -56, -56, -58, -60, -63, -66, + -74, -69, -72, -72, -75, -74, -77, -81, + -81, -82, -84, -87, -93, -96, -99, -104, + -110, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -108, -102, -96, + -91, -85, -80, -74, -68, -60, -51, -46, + -48, -46, -43, -45, -47, -47, -49, -48, + -56, -53, -55, -58, -57, -63, -58, -60, + -66, -64, -67, -70, -70, -74, -77, -84, + -86, -89, -91, -93, -94, -101, -109, -118, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -108, -103, -98, -93, -88, + -83, -78, -73, -68, -60, -53, -44, -35, + -38, -38, -34, -34, -36, -40, -41, -44, + -51, -45, -46, -47, -46, -54, -50, -49, + -50, -50, -50, -51, -54, -57, -58, -60, + -66, -66, -66, -64, -65, -68, -77, -82, + -87, -95, -110, -999, -999, -999, -999, -999}}, + /* 500 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -107, -102, -97, -92, -87, -83, -78, -75, + -82, -79, -83, -85, -89, -92, -95, -98, + -101, -105, -109, -113, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -106, + -100, -95, -90, -86, -81, -78, -74, -69, + -74, -74, -76, -79, -83, -84, -86, -89, + -92, -97, -93, -100, -103, -107, -110, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -106, -100, + -95, -90, -87, -83, -80, -75, -69, -60, + -66, -66, -68, -70, -74, -78, -79, -81, + -81, -83, -84, -87, -93, -96, -99, -103, + -107, -110, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -108, -103, -98, + -93, -89, -85, -82, -78, -71, -62, -55, + -58, -58, -54, -54, -55, -59, -61, -62, + -70, -66, -66, -67, -70, -72, -75, -78, + -84, -84, -84, -88, -91, -90, -95, -98, + -102, -103, -106, -110, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -108, -103, -98, -94, + -90, -87, -82, -79, -73, -67, -58, -47, + -50, -45, -41, -45, -48, -44, -44, -49, + -54, -51, -48, -47, -49, -50, -51, -57, + -58, -60, -63, -69, -70, -69, -71, -74, + -78, -82, -90, -95, -101, -105, -110, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -105, -101, -97, -93, -90, + -85, -80, -77, -72, -65, -56, -48, -37, + -40, -36, -34, -40, -50, -47, -38, -41, + -47, -38, -35, -39, -38, -43, -40, -45, + -50, -45, -44, -47, -50, -55, -48, -48, + -52, -66, -70, -76, -82, -90, -97, -105, + -110, -999, -999, -999, -999, -999, -999, -999}}, + /* 707 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -108, -103, -98, -93, -86, -79, -76, + -83, -81, -85, -87, -89, -93, -98, -102, + -107, -112, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -108, -103, -98, -93, -86, -79, -71, + -77, -74, -77, -79, -81, -84, -85, -90, + -92, -93, -92, -98, -101, -108, -112, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -108, -103, -98, -93, -87, -78, -68, -65, + -66, -62, -65, -67, -70, -73, -75, -78, + -82, -82, -83, -84, -91, -93, -98, -102, + -106, -110, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -105, -100, -95, -90, -82, -74, -62, -57, + -58, -56, -51, -52, -52, -54, -54, -58, + -66, -59, -60, -63, -66, -69, -73, -79, + -83, -84, -80, -81, -81, -82, -88, -92, + -98, -105, -113, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -107, + -102, -97, -92, -84, -79, -69, -57, -47, + -52, -47, -44, -45, -50, -52, -42, -42, + -53, -43, -43, -48, -51, -56, -55, -52, + -57, -59, -61, -62, -67, -71, -78, -83, + -86, -94, -98, -103, -110, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -105, -100, + -95, -90, -84, -78, -70, -61, -51, -41, + -40, -38, -40, -46, -52, -51, -41, -40, + -46, -40, -38, -38, -41, -46, -41, -46, + -47, -43, -43, -45, -41, -45, -56, -67, + -68, -83, -87, -90, -95, -102, -107, -113, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 1000 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -109, -105, -101, -96, -91, -84, -77, + -82, -82, -85, -89, -94, -100, -106, -110, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -106, -103, -98, -92, -85, -80, -71, + -75, -72, -76, -80, -84, -86, -89, -93, + -100, -107, -113, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -107, + -104, -101, -97, -92, -88, -84, -80, -64, + -66, -63, -64, -66, -69, -73, -77, -83, + -83, -86, -91, -98, -104, -111, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -107, + -104, -101, -97, -92, -90, -84, -74, -57, + -58, -52, -55, -54, -50, -52, -50, -52, + -63, -62, -69, -76, -77, -78, -78, -79, + -82, -88, -94, -100, -106, -111, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -106, -102, + -98, -95, -90, -85, -83, -78, -70, -50, + -50, -41, -44, -49, -47, -50, -50, -44, + -55, -46, -47, -48, -48, -54, -49, -49, + -58, -62, -71, -81, -87, -92, -97, -102, + -108, -114, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -106, -102, + -98, -95, -90, -85, -83, -78, -70, -45, + -43, -41, -47, -50, -51, -50, -49, -45, + -47, -41, -44, -41, -39, -43, -38, -37, + -40, -41, -44, -50, -58, -65, -73, -79, + -85, -92, -97, -101, -105, -109, -113, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 1414 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -107, -100, -95, -87, -81, + -85, -83, -88, -93, -100, -107, -114, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -107, -101, -95, -88, -83, -76, + -73, -72, -79, -84, -90, -95, -100, -105, + -110, -115, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -104, -98, -92, -87, -81, -70, + -65, -62, -67, -71, -74, -80, -85, -91, + -95, -99, -103, -108, -111, -114, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -103, -97, -90, -85, -76, -60, + -56, -54, -60, -62, -61, -56, -63, -65, + -73, -74, -77, -75, -78, -81, -86, -87, + -88, -91, -94, -98, -103, -110, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -105, + -100, -97, -92, -86, -81, -79, -70, -57, + -51, -47, -51, -58, -60, -56, -53, -50, + -58, -52, -50, -50, -53, -55, -64, -69, + -71, -85, -82, -78, -81, -85, -95, -102, + -112, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -105, + -100, -97, -92, -85, -83, -79, -72, -49, + -40, -43, -43, -54, -56, -51, -50, -40, + -43, -38, -36, -35, -37, -38, -37, -44, + -54, -60, -57, -60, -70, -75, -84, -92, + -103, -112, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 2000 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -102, -95, -89, -82, + -83, -84, -90, -92, -99, -107, -113, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -107, -101, -95, -89, -83, -72, + -74, -78, -85, -88, -88, -90, -92, -98, + -105, -111, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -109, -103, -97, -93, -87, -81, -70, + -70, -67, -75, -73, -76, -79, -81, -83, + -88, -89, -97, -103, -110, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -107, -100, -94, -88, -83, -75, -63, + -59, -59, -63, -66, -60, -62, -67, -67, + -77, -76, -81, -88, -86, -92, -96, -102, + -109, -116, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -105, -98, -92, -86, -81, -73, -56, + -52, -47, -55, -60, -58, -52, -51, -45, + -49, -50, -53, -54, -61, -71, -70, -69, + -78, -79, -87, -90, -96, -104, -112, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -103, -96, -90, -86, -78, -70, -51, + -42, -47, -48, -55, -54, -54, -53, -42, + -35, -28, -33, -38, -37, -44, -47, -49, + -54, -63, -68, -78, -82, -89, -94, -99, + -104, -109, -114, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 2828 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -110, -100, -90, -79, + -85, -81, -82, -82, -89, -94, -99, -103, + -109, -115, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -105, -97, -85, -72, + -74, -70, -70, -70, -76, -85, -91, -93, + -97, -103, -109, -115, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -112, -93, -81, -68, + -62, -60, -60, -57, -63, -70, -77, -82, + -90, -93, -98, -104, -109, -113, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -113, -100, -93, -84, -63, + -58, -48, -53, -54, -52, -52, -57, -64, + -66, -76, -83, -81, -85, -85, -90, -95, + -98, -101, -103, -106, -108, -111, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -105, -95, -86, -74, -53, + -50, -38, -43, -49, -43, -42, -39, -39, + -46, -52, -57, -56, -72, -69, -74, -81, + -87, -92, -94, -97, -99, -102, -105, -108, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -108, -99, -90, -76, -66, -45, + -43, -41, -44, -47, -43, -47, -40, -30, + -31, -31, -39, -33, -40, -41, -43, -53, + -59, -70, -73, -77, -79, -82, -84, -87, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 4000 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -91, -76, + -75, -85, -93, -98, -104, -110, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -91, -70, + -70, -75, -86, -89, -94, -98, -101, -106, + -110, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -110, -95, -80, -60, + -65, -64, -74, -83, -88, -91, -95, -99, + -103, -107, -110, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -110, -95, -80, -58, + -55, -49, -66, -68, -71, -78, -78, -80, + -88, -85, -89, -97, -100, -105, -110, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -110, -95, -80, -53, + -52, -41, -59, -59, -49, -58, -56, -63, + -86, -79, -90, -93, -98, -103, -107, -112, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -97, -91, -73, -45, + -40, -33, -53, -61, -49, -54, -50, -50, + -60, -52, -67, -74, -81, -92, -96, -100, + -105, -110, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 5657 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -113, -106, -99, -92, -77, + -80, -88, -97, -106, -115, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -116, -109, -102, -95, -89, -74, + -72, -88, -87, -95, -102, -109, -116, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -116, -109, -102, -95, -89, -75, + -66, -74, -77, -78, -86, -87, -90, -96, + -105, -115, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -115, -108, -101, -94, -88, -66, + -56, -61, -70, -65, -78, -72, -83, -84, + -93, -98, -105, -110, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -110, -105, -95, -89, -82, -57, + -52, -52, -59, -56, -59, -58, -69, -67, + -88, -82, -82, -89, -94, -100, -108, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -110, -101, -96, -90, -83, -77, -54, + -43, -38, -50, -48, -52, -48, -42, -42, + -51, -52, -53, -59, -65, -71, -78, -85, + -95, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 8000 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -120, -105, -86, -68, + -78, -79, -90, -100, -110, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -120, -105, -86, -66, + -73, -77, -88, -96, -105, -115, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -120, -105, -92, -80, -61, + -64, -68, -80, -87, -92, -100, -110, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -120, -104, -91, -79, -52, + -60, -54, -64, -69, -77, -80, -82, -84, + -85, -87, -88, -90, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -118, -100, -87, -77, -49, + -50, -44, -58, -61, -61, -67, -65, -62, + -62, -62, -65, -68, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -115, -98, -84, -62, -49, + -44, -38, -46, -49, -49, -46, -39, -37, + -39, -40, -42, -43, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 11314 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -88, -74, + -77, -82, -82, -85, -90, -94, -99, -104, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -88, -66, + -70, -81, -80, -81, -84, -88, -91, -93, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -88, -61, + -63, -70, -71, -74, -77, -80, -83, -85, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -110, -86, -62, + -63, -62, -62, -58, -52, -50, -50, -52, + -54, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -118, -108, -84, -53, + -50, -50, -50, -55, -47, -45, -40, -40, + -40, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -118, -100, -73, -43, + -37, -42, -43, -53, -38, -37, -35, -35, + -38, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}}, + /* 16000 Hz */ + {{-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -91, -84, -74, + -80, -80, -80, -80, -80, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -91, -84, -74, + -68, -68, -68, -68, -68, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -86, -78, -70, + -60, -45, -30, -21, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -87, -78, -67, + -48, -38, -29, -21, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -86, -69, -56, + -45, -35, -33, -29, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}, + {-999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -110, -100, -83, -71, -48, + -27, -38, -37, -34, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999, + -999, -999, -999, -999, -999, -999, -999, -999}} +}; + +#endif diff --git a/libvorbis-1.0.1/lib/mdct.c b/Dependencies/libvorbis/lib/mdct.c similarity index 64% rename from libvorbis-1.0.1/lib/mdct.c rename to Dependencies/libvorbis/lib/mdct.c index f98209c..0816331 100644 --- a/libvorbis-1.0.1/lib/mdct.c +++ b/Dependencies/libvorbis/lib/mdct.c @@ -5,14 +5,14 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: normalized modified discrete cosine transform power of two length transform only [64 <= n ] - last mod: $Id: mdct.c,v 1.32 2002/10/16 02:43:48 xiphmont Exp $ + last mod: $Id: mdct.c 16227 2009-07-08 06:58:46Z xiphmont $ Original algorithm adapted long ago from _The use of multirate filter banks for coding of high quality digital audio_, by T. Sporer, @@ -52,7 +52,7 @@ void mdct_init(mdct_lookup *lookup,int n){ int *bitrev=_ogg_malloc(sizeof(*bitrev)*(n/4)); DATA_TYPE *T=_ogg_malloc(sizeof(*T)*(n+n/4)); - + int i; int n2=n>>1; int log2n=lookup->log2n=rint(log((float)n)/log(2.f)); @@ -81,7 +81,7 @@ void mdct_init(mdct_lookup *lookup,int n){ for(i=0;i>j;j++) - if((msb>>j)&i)acc|=1<>j)&i)acc|=1<>1) - 8; REG_TYPE r0; REG_TYPE r1; do{ - + r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]); - x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]); - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]); - x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]); - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]); - x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]); - + r1 = x1[7] - x2[7]; + x1[6] += x2[6]; + x1[7] += x2[7]; + x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); + x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); + + r0 = x1[4] - x2[4]; + r1 = x1[5] - x2[5]; + x1[4] += x2[4]; + x1[5] += x2[5]; + x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]); + x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]); + + r0 = x1[2] - x2[2]; + r1 = x1[3] - x2[3]; + x1[2] += x2[2]; + x1[3] += x2[3]; + x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]); + x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]); + + r0 = x1[0] - x2[0]; + r1 = x1[1] - x2[1]; + x1[0] += x2[0]; + x1[1] += x2[1]; + x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]); + x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]); + x1-=8; x2-=8; T+=16; @@ -262,52 +262,52 @@ STIN void mdct_butterfly_first(DATA_TYPE *T, /* N/stage point generic N stage butterfly (in place, 2 register) */ STIN void mdct_butterfly_generic(DATA_TYPE *T, - DATA_TYPE *x, - int points, - int trigint){ - + DATA_TYPE *x, + int points, + int trigint){ + DATA_TYPE *x1 = x + points - 8; DATA_TYPE *x2 = x + (points>>1) - 8; REG_TYPE r0; REG_TYPE r1; do{ - + r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; + r1 = x1[7] - x2[7]; + x1[6] += x2[6]; + x1[7] += x2[7]; + x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); + x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); + + T+=trigint; + + r0 = x1[4] - x2[4]; + r1 = x1[5] - x2[5]; + x1[4] += x2[4]; + x1[5] += x2[5]; + x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]); + x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]); + + T+=trigint; + + r0 = x1[2] - x2[2]; + r1 = x1[3] - x2[3]; + x1[2] += x2[2]; + x1[3] += x2[3]; + x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]); + x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]); + + T+=trigint; + + r0 = x1[0] - x2[0]; + r1 = x1[1] - x2[1]; + x1[0] += x2[0]; + x1[1] += x2[1]; + x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]); + x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]); + + T+=trigint; x1-=8; x2-=8; @@ -315,13 +315,13 @@ STIN void mdct_butterfly_generic(DATA_TYPE *T, } STIN void mdct_butterflies(mdct_lookup *init, - DATA_TYPE *x, - int points){ - + DATA_TYPE *x, + int points){ + DATA_TYPE *T=init->trig; int stages=init->log2n-5; int i,j; - + if(--stages>0){ mdct_butterfly_first(T,x,points); } @@ -344,8 +344,8 @@ void mdct_clear(mdct_lookup *l){ } } -STIN void mdct_bitreverse(mdct_lookup *init, - DATA_TYPE *x){ +STIN void mdct_bitreverse(mdct_lookup *init, + DATA_TYPE *x){ int n = init->n; int *bit = init->bitrev; DATA_TYPE *w0 = x; @@ -361,15 +361,15 @@ STIN void mdct_bitreverse(mdct_lookup *init, REG_TYPE r2 = MULT_NORM(r1 * T[0] + r0 * T[1]); REG_TYPE r3 = MULT_NORM(r1 * T[1] - r0 * T[0]); - w1 -= 4; + w1 -= 4; r0 = HALVE(x0[1] + x1[1]); r1 = HALVE(x0[0] - x1[0]); - - w0[0] = r0 + r2; - w1[2] = r0 - r2; - w0[1] = r1 + r3; - w1[3] = r3 - r1; + + w0[0] = r0 + r2; + w1[2] = r0 - r2; + w0[1] = r1 + r3; + w1[3] = r3 - r1; x0 = x+bit[2]; x1 = x+bit[3]; @@ -381,15 +381,15 @@ STIN void mdct_bitreverse(mdct_lookup *init, r0 = HALVE(x0[1] + x1[1]); r1 = HALVE(x0[0] - x1[0]); - - w0[2] = r0 + r2; - w1[0] = r0 - r2; - w0[3] = r1 + r3; - w1[1] = r3 - r1; - T += 4; - bit += 4; - w0 += 4; + w0[2] = r0 + r2; + w1[0] = r0 - r2; + w0[3] = r1 + r3; + w1[1] = r3 - r1; + + T += 4; + bit += 4; + w0 += 4; }while(w0trig+n2; - + do{ oX1-=4; @@ -501,44 +501,44 @@ void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ /* rotate */ /* window + rotate + step 1 */ - + REG_TYPE r0; REG_TYPE r1; DATA_TYPE *x0=in+n2+n4; DATA_TYPE *x1=x0+1; DATA_TYPE *T=init->trig+n2; - + int i=0; - + for(i=0;i #include @@ -41,13 +45,18 @@ # define M_PI (3.1415926536f) #endif -#ifdef _WIN32 +#if defined(_WIN32) && !defined(__SYMBIAN32__) # include -# define rint(x) (floor((x)+0.5f)) +# define rint(x) (floor((x)+0.5f)) # define NO_FLOAT_MATH_LIB # define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) #endif +#if defined(__SYMBIAN32__) && defined(__WINS__) +void *_alloca(size_t size); +# define alloca _alloca +#endif + #ifndef FAST_HYPOT # define FAST_HYPOT hypot #endif @@ -70,6 +79,8 @@ # define max(x,y) ((x)<(y)?(y):(x)) #endif + +/* Special i386 GCC implementation */ #if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) # define VORBIS_FPU_CONTROL /* both GCC and MSVC are kinda stupid about rounding/casting to int. @@ -85,10 +96,10 @@ static inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ ogg_int16_t ret; ogg_int16_t temp; __asm__ __volatile__("fnstcw %0\n\t" - "movw %0,%%dx\n\t" - "orw $62463,%%dx\n\t" - "movw %%dx,%1\n\t" - "fldcw %1\n\t":"=m"(ret):"m"(temp): "dx"); + "movw %0,%%dx\n\t" + "andw $62463,%%dx\n\t" + "movw %%dx,%1\n\t" + "fldcw %1\n\t":"=m"(ret):"m"(temp): "dx"); *fpu=ret; } @@ -104,21 +115,23 @@ static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise, __asm__("fistl %0": "=m"(i) : "t"(f)); return(i); } -#endif +#endif /* Special i386 GCC implementation */ -#if defined(_WIN32) && !defined(__GNUC__) && !defined(__BORLANDC__) +/* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the + * 64 bit compiler */ +#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_WIN32_WCE) # define VORBIS_FPU_CONTROL typedef ogg_int16_t vorbis_fpu_control; static __inline int vorbis_ftoi(double f){ - int i; - __asm{ - fld f - fistp i - } - return i; + int i; + __asm{ + fld f + fistp i + } + return i; } static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ @@ -127,21 +140,47 @@ static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ } -#endif +#endif /* Special MSVC 32 bit implementation */ + + +/* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be + done safely because all x86_64 CPUs supports SSE2. */ +#if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__x86_64__)) +# define VORBIS_FPU_CONTROL + +typedef ogg_int16_t vorbis_fpu_control; + +#include +static __inline int vorbis_ftoi(double f){ + return _mm_cvtsd_si32(_mm_load_sd(&f)); +} + +static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ +} + +static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ +} + +#endif /* Special MSVC x64 implementation */ +/* If no special implementation was found for the current compiler / platform, + use the default implementation here: */ #ifndef VORBIS_FPU_CONTROL typedef int vorbis_fpu_control; static int vorbis_ftoi(double f){ - return (int)(f+.5); + /* Note: MSVC and GCC (at least on some systems) round towards zero, thus, + the floor() call is required to ensure correct roudning of + negative numbers */ + return (int)floor(f+.5); } /* We don't have special code for this compiler/arch, so do it the slow way */ # define vorbis_fpu_setround(vorbis_fpu_control) {} # define vorbis_fpu_restore(vorbis_fpu_control) {} -#endif +#endif /* default implementation */ #endif /* _OS_H */ diff --git a/Dependencies/libvorbis/lib/psy.c b/Dependencies/libvorbis/lib/psy.c new file mode 100644 index 0000000..4a8e81e --- /dev/null +++ b/Dependencies/libvorbis/lib/psy.c @@ -0,0 +1,1195 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: psychoacoustics not including preecho + last mod: $Id: psy.c 17077 2010-03-26 06:22:19Z xiphmont $ + + ********************************************************************/ + +#include +#include +#include +#include "vorbis/codec.h" +#include "codec_internal.h" + +#include "masking.h" +#include "psy.h" +#include "os.h" +#include "lpc.h" +#include "smallft.h" +#include "scales.h" +#include "misc.h" + +#define NEGINF -9999.f +static const double stereo_threshholds[]={0.0, .5, 1.0, 1.5, 2.5, 4.5, 8.5, 16.5, 9e10}; +static const double stereo_threshholds_limited[]={0.0, .5, 1.0, 1.5, 2.0, 2.5, 4.5, 8.5, 9e10}; + +vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){ + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy_global *gi=&ci->psy_g_param; + vorbis_look_psy_global *look=_ogg_calloc(1,sizeof(*look)); + + look->channels=vi->channels; + + look->ampmax=-9999.; + look->gi=gi; + return(look); +} + +void _vp_global_free(vorbis_look_psy_global *look){ + if(look){ + memset(look,0,sizeof(*look)); + _ogg_free(look); + } +} + +void _vi_gpsy_free(vorbis_info_psy_global *i){ + if(i){ + memset(i,0,sizeof(*i)); + _ogg_free(i); + } +} + +void _vi_psy_free(vorbis_info_psy *i){ + if(i){ + memset(i,0,sizeof(*i)); + _ogg_free(i); + } +} + +static void min_curve(float *c, + float *c2){ + int i; + for(i=0;ic[i])c[i]=c2[i]; +} + +static void attenuate_curve(float *c,float att){ + int i; + for(i=0;iATH[j+k+ath_offset])min=ATH[j+k+ath_offset]; + }else{ + if(min>ATH[MAX_ATH-1])min=ATH[MAX_ATH-1]; + } + ath[j]=min; + } + + /* copy curves into working space, replicate the 50dB curve to 30 + and 40, replicate the 100dB curve to 110 */ + for(j=0;j<6;j++) + memcpy(workc[i][j+2],tonemasks[i][j],EHMER_MAX*sizeof(*tonemasks[i][j])); + memcpy(workc[i][0],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); + memcpy(workc[i][1],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); + + /* apply centered curve boost/decay */ + for(j=0;j0)adj=0.; + if(adj>0. && center_boost<0)adj=0.; + workc[i][j][k]+=adj; + } + } + + /* normalize curves so the driving amplitude is 0dB */ + /* make temp curves with the ATH overlayed */ + for(j=0;j an eighth of an octave and that the eighth + octave values may also be composited. */ + + /* which octave curves will we be compositing? */ + bin=floor(fromOC(i*.5)/binHz); + lo_curve= ceil(toOC(bin*binHz+1)*2); + hi_curve= floor(toOC((bin+1)*binHz)*2); + if(lo_curve>i)lo_curve=i; + if(lo_curve<0)lo_curve=0; + if(hi_curve>=P_BANDS)hi_curve=P_BANDS-1; + + for(m=0;mn)lo_bin=n; + if(lo_binn)hi_bin=n; + + for(;lworkc[k][m][j]) + brute_buffer[l]=workc[k][m][j]; + } + + for(;lworkc[k][m][EHMER_MAX-1]) + brute_buffer[l]=workc[k][m][EHMER_MAX-1]; + + } + + /* be equally paranoid about being valid up to next half ocatve */ + if(i+1n)lo_bin=n; + if(lo_binn)hi_bin=n; + + for(;lworkc[k][m][j]) + brute_buffer[l]=workc[k][m][j]; + } + + for(;lworkc[k][m][EHMER_MAX-1]) + brute_buffer[l]=workc[k][m][EHMER_MAX-1]; + + } + + + for(j=0;j=n){ + ret[i][m][j+2]=-999.; + }else{ + ret[i][m][j+2]=brute_buffer[bin]; + } + } + } + + /* add fenceposts */ + for(j=0;j-200.f)break; + ret[i][m][0]=j; + + for(j=EHMER_MAX-1;j>EHMER_OFFSET+1;j--) + if(ret[i][m][j+2]>-200.f) + break; + ret[i][m][1]=j; + + } + } + + return(ret); +} + +void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, + vorbis_info_psy_global *gi,int n,long rate){ + long i,j,lo=-99,hi=1; + long maxoc; + memset(p,0,sizeof(*p)); + + p->eighth_octave_lines=gi->eighth_octave_lines; + p->shiftoc=rint(log(gi->eighth_octave_lines*8.f)/log(2.f))-1; + + p->firstoc=toOC(.25f*rate*.5/n)*(1<<(p->shiftoc+1))-gi->eighth_octave_lines; + maxoc=toOC((n+.25f)*rate*.5/n)*(1<<(p->shiftoc+1))+.5f; + p->total_octave_lines=maxoc-p->firstoc+1; + p->ath=_ogg_malloc(n*sizeof(*p->ath)); + + p->octave=_ogg_malloc(n*sizeof(*p->octave)); + p->bark=_ogg_malloc(n*sizeof(*p->bark)); + p->vi=vi; + p->n=n; + p->rate=rate; + + /* AoTuV HF weighting */ + p->m_val = 1.; + if(rate < 26000) p->m_val = 0; + else if(rate < 38000) p->m_val = .94; /* 32kHz */ + else if(rate > 46000) p->m_val = 1.275; /* 48kHz */ + + /* set up the lookups for a given blocksize and sample rate */ + + for(i=0,j=0;iath[j]=base+100.; + base+=delta; + } + } + } + + for(;jath[j]=p->ath[j-1]; + } + + for(i=0;inoisewindowlominnoisewindowlo);lo++); + + for(;hi<=n && (hinoisewindowhimin || + toBARK(rate/(2*n)*hi)<(bark+vi->noisewindowhi));hi++); + + p->bark[i]=((lo-1)<<16)+(hi-1); + + } + + for(i=0;ioctave[i]=toOC((i+.25f)*.5*rate/n)*(1<<(p->shiftoc+1))+.5f; + + p->tonecurves=setup_tone_curves(vi->toneatt,rate*.5/n,n, + vi->tone_centerboost,vi->tone_decay); + + /* set up rolling noise median */ + p->noiseoffset=_ogg_malloc(P_NOISECURVES*sizeof(*p->noiseoffset)); + for(i=0;inoiseoffset[i]=_ogg_malloc(n*sizeof(**p->noiseoffset)); + + for(i=0;i=P_BANDS-1)halfoc=P_BANDS-1; + inthalfoc=(int)halfoc; + del=halfoc-inthalfoc; + + for(j=0;jnoiseoffset[j][i]= + p->vi->noiseoff[j][inthalfoc]*(1.-del) + + p->vi->noiseoff[j][inthalfoc+1]*del; + + } +#if 0 + { + static int ls=0; + _analysis_output_always("noiseoff0",ls,p->noiseoffset[0],n,1,0,0); + _analysis_output_always("noiseoff1",ls,p->noiseoffset[1],n,1,0,0); + _analysis_output_always("noiseoff2",ls++,p->noiseoffset[2],n,1,0,0); + } +#endif +} + +void _vp_psy_clear(vorbis_look_psy *p){ + int i,j; + if(p){ + if(p->ath)_ogg_free(p->ath); + if(p->octave)_ogg_free(p->octave); + if(p->bark)_ogg_free(p->bark); + if(p->tonecurves){ + for(i=0;itonecurves[i][j]); + } + _ogg_free(p->tonecurves[i]); + } + _ogg_free(p->tonecurves); + } + if(p->noiseoffset){ + for(i=0;inoiseoffset[i]); + } + _ogg_free(p->noiseoffset); + } + memset(p,0,sizeof(*p)); + } +} + +/* octave/(8*eighth_octave_lines) x scale and dB y scale */ +static void seed_curve(float *seed, + const float **curves, + float amp, + int oc, int n, + int linesper,float dBoffset){ + int i,post1; + int seedptr; + const float *posts,*curve; + + int choice=(int)((amp+dBoffset-P_LEVEL_0)*.1f); + choice=max(choice,0); + choice=min(choice,P_LEVELS-1); + posts=curves[choice]; + curve=posts+2; + post1=(int)posts[1]; + seedptr=oc+(posts[0]-EHMER_OFFSET)*linesper-(linesper>>1); + + for(i=posts[0];i0){ + float lin=amp+curve[i]; + if(seed[seedptr]=n)break; + } +} + +static void seed_loop(vorbis_look_psy *p, + const float ***curves, + const float *f, + const float *flr, + float *seed, + float specmax){ + vorbis_info_psy *vi=p->vi; + long n=p->n,i; + float dBoffset=vi->max_curve_dB-specmax; + + /* prime the working vector with peak values */ + + for(i=0;ioctave[i]; + while(i+1octave[i+1]==oc){ + i++; + if(f[i]>max)max=f[i]; + } + + if(max+6.f>flr[i]){ + oc=oc>>p->shiftoc; + + if(oc>=P_BANDS)oc=P_BANDS-1; + if(oc<0)oc=0; + + seed_curve(seed, + curves[oc], + max, + p->octave[i]-p->firstoc, + p->total_octave_lines, + p->eighth_octave_lines, + dBoffset); + } + } +} + +static void seed_chase(float *seeds, int linesper, long n){ + long *posstack=alloca(n*sizeof(*posstack)); + float *ampstack=alloca(n*sizeof(*ampstack)); + long stack=0; + long pos=0; + long i; + + for(i=0;i1 && ampstack[stack-1]<=ampstack[stack-2] && + iampstack[i]){ + endpos=posstack[i+1]; + }else{ + endpos=posstack[i]+linesper+1; /* +1 is important, else bin 0 is + discarded in short frames */ + } + if(endpos>n)endpos=n; + for(;pos +static void max_seeds(vorbis_look_psy *p, + float *seed, + float *flr){ + long n=p->total_octave_lines; + int linesper=p->eighth_octave_lines; + long linpos=0; + long pos; + + seed_chase(seed,linesper,n); /* for masking */ + + pos=p->octave[0]-p->firstoc-(linesper>>1); + + while(linpos+1n){ + float minV=seed[pos]; + long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc; + if(minV>p->vi->tone_abs_limit)minV=p->vi->tone_abs_limit; + while(pos+1<=end){ + pos++; + if((seed[pos]>NEGINF && seed[pos]firstoc; + for(;linposn && p->octave[linpos]<=end;linpos++) + if(flr[linpos]total_octave_lines-1]; + for(;linposn;linpos++) + if(flr[linpos]> 16; + if( lo>=0 ) break; + hi = b[i] & 0xffff; + + tN = N[hi] + N[-lo]; + tX = X[hi] - X[-lo]; + tXX = XX[hi] + XX[-lo]; + tY = Y[hi] + Y[-lo]; + tXY = XY[hi] - XY[-lo]; + + A = tY * tXX - tX * tXY; + B = tN * tXY - tX * tY; + D = tN * tXX - tX * tX; + R = (A + x * B) / D; + if (R < 0.f) + R = 0.f; + + noise[i] = R - offset; + } + + for ( ;; i++, x += 1.f) { + + lo = b[i] >> 16; + hi = b[i] & 0xffff; + if(hi>=n)break; + + tN = N[hi] - N[lo]; + tX = X[hi] - X[lo]; + tXX = XX[hi] - XX[lo]; + tY = Y[hi] - Y[lo]; + tXY = XY[hi] - XY[lo]; + + A = tY * tXX - tX * tXY; + B = tN * tXY - tX * tY; + D = tN * tXX - tX * tX; + R = (A + x * B) / D; + if (R < 0.f) R = 0.f; + + noise[i] = R - offset; + } + for ( ; i < n; i++, x += 1.f) { + + R = (A + x * B) / D; + if (R < 0.f) R = 0.f; + + noise[i] = R - offset; + } + + if (fixed <= 0) return; + + for (i = 0, x = 0.f;; i++, x += 1.f) { + hi = i + fixed / 2; + lo = hi - fixed; + if(lo>=0)break; + + tN = N[hi] + N[-lo]; + tX = X[hi] - X[-lo]; + tXX = XX[hi] + XX[-lo]; + tY = Y[hi] + Y[-lo]; + tXY = XY[hi] - XY[-lo]; + + + A = tY * tXX - tX * tXY; + B = tN * tXY - tX * tY; + D = tN * tXX - tX * tX; + R = (A + x * B) / D; + + if (R - offset < noise[i]) noise[i] = R - offset; + } + for ( ;; i++, x += 1.f) { + + hi = i + fixed / 2; + lo = hi - fixed; + if(hi>=n)break; + + tN = N[hi] - N[lo]; + tX = X[hi] - X[lo]; + tXX = XX[hi] - XX[lo]; + tY = Y[hi] - Y[lo]; + tXY = XY[hi] - XY[lo]; + + A = tY * tXX - tX * tXY; + B = tN * tXY - tX * tY; + D = tN * tXX - tX * tX; + R = (A + x * B) / D; + + if (R - offset < noise[i]) noise[i] = R - offset; + } + for ( ; i < n; i++, x += 1.f) { + R = (A + x * B) / D; + if (R - offset < noise[i]) noise[i] = R - offset; + } +} + +void _vp_noisemask(vorbis_look_psy *p, + float *logmdct, + float *logmask){ + + int i,n=p->n; + float *work=alloca(n*sizeof(*work)); + + bark_noise_hybridmp(n,p->bark,logmdct,logmask, + 140.,-1); + + for(i=0;ibark,work,logmask,0., + p->vi->noisewindowfixed); + + for(i=0;i=NOISE_COMPAND_LEVELS)dB=NOISE_COMPAND_LEVELS-1; + if(dB<0)dB=0; + logmask[i]= work[i]+p->vi->noisecompand[dB]; + } + +} + +void _vp_tonemask(vorbis_look_psy *p, + float *logfft, + float *logmask, + float global_specmax, + float local_specmax){ + + int i,n=p->n; + + float *seed=alloca(sizeof(*seed)*p->total_octave_lines); + float att=local_specmax+p->vi->ath_adjatt; + for(i=0;itotal_octave_lines;i++)seed[i]=NEGINF; + + /* set the ATH (floating below localmax, not global max by a + specified att) */ + if(attvi->ath_maxatt)att=p->vi->ath_maxatt; + + for(i=0;iath[i]+att; + + /* tone masking */ + seed_loop(p,(const float ***)p->tonecurves,logfft,logmask,seed,global_specmax); + max_seeds(p,seed,logmask); + +} + +void _vp_offset_and_mix(vorbis_look_psy *p, + float *noise, + float *tone, + int offset_select, + float *logmask, + float *mdct, + float *logmdct){ + int i,n=p->n; + float de, coeffi, cx;/* AoTuV */ + float toneatt=p->vi->tone_masteratt[offset_select]; + + cx = p->m_val; + + for(i=0;inoiseoffset[offset_select][i]; + if(val>p->vi->noisemaxsupp)val=p->vi->noisemaxsupp; + logmask[i]=max(val,tone[i]+toneatt); + + + /* AoTuV */ + /** @ M1 ** + The following codes improve a noise problem. + A fundamental idea uses the value of masking and carries out + the relative compensation of the MDCT. + However, this code is not perfect and all noise problems cannot be solved. + by Aoyumi @ 2004/04/18 + */ + + if(offset_select == 1) { + coeffi = -17.2; /* coeffi is a -17.2dB threshold */ + val = val - logmdct[i]; /* val == mdct line value relative to floor in dB */ + + if(val > coeffi){ + /* mdct value is > -17.2 dB below floor */ + + de = 1.0-((val-coeffi)*0.005*cx); + /* pro-rated attenuation: + -0.00 dB boost if mdct value is -17.2dB (relative to floor) + -0.77 dB boost if mdct value is 0dB (relative to floor) + -1.64 dB boost if mdct value is +17.2dB (relative to floor) + etc... */ + + if(de < 0) de = 0.0001; + }else + /* mdct value is <= -17.2 dB below floor */ + + de = 1.0-((val-coeffi)*0.0003*cx); + /* pro-rated attenuation: + +0.00 dB atten if mdct value is -17.2dB (relative to floor) + +0.45 dB atten if mdct value is -34.4dB (relative to floor) + etc... */ + + mdct[i] *= de; + + } + } +} + +float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ + vorbis_info *vi=vd->vi; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy_global *gi=&ci->psy_g_param; + + int n=ci->blocksizes[vd->W]/2; + float secs=(float)n/vi->rate; + + amp+=secs*gi->ampmax_att_per_sec; + if(amp<-9999)amp=-9999; + return(amp); +} + +static float FLOOR1_fromdB_LOOKUP[256]={ + 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, + 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, + 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, + 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, + 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, + 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, + 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, + 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, + 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, + 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, + 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, + 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, + 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, + 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, + 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, + 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, + 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, + 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, + 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, + 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, + 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, + 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, + 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, + 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, + 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, + 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, + 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, + 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, + 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, + 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, + 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, + 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, + 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, + 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, + 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, + 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, + 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, + 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, + 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, + 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, + 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, + 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, + 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, + 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, + 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, + 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, + 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, + 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, + 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, + 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, + 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, + 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, + 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, + 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, + 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, + 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, + 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, + 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, + 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, + 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, + 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, + 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, + 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, + 0.82788260F, 0.88168307F, 0.9389798F, 1.F, +}; + +/* this is for per-channel noise normalization */ +static int apsort(const void *a, const void *b){ + float f1=**(float**)a; + float f2=**(float**)b; + return (f1f2); +} + +static void flag_lossless(int limit, float prepoint, float postpoint, float *mdct, + float *floor, int *flag, int i, int jn){ + int j; + for(j=0;j=limit-i ? postpoint : prepoint; + float r = fabs(mdct[j])/floor[j]; + if(rvi; + float **sort = alloca(n*sizeof(*sort)); + int j,count=0; + int start = (vi->normal_p ? vi->normal_start-i : n); + if(start>n)start=n; + + /* force classic behavior where only energy in the current band is considered */ + acc=0.f; + + /* still responsible for populating *out where noise norm not in + effect. There's no need to [re]populate *q in these areas */ + for(j=0;j pointlimit */ + if(ve<.25f && (!flags || j>=limit-i)){ + acc += ve; + sort[count++]=q+j; /* q is fabs(r) for unflagged element */ + }else{ + /* For now: no acc adjustment for nonzero quantization. populate *out and q as this value is final. */ + if(r[j]<0) + out[j] = -rint(sqrt(ve)); + else + out[j] = rint(sqrt(ve)); + q[j] = out[j]*out[j]*f[j]; + } + }/* else{ + again, no energy adjustment for error in nonzero quant-- for now + }*/ + } + + if(count){ + /* noise norm to do */ + qsort(sort,count,sizeof(*sort),apsort); + for(j=0;j=vi->normal_thresh){ + out[k]=unitnorm(r[k]); + acc-=1.f; + q[k]=f[k]; + }else{ + out[k]=0; + q[k]=0.f; + } + } + } + + return acc; +} + +/* Noise normalization, quantization and coupling are not wholly + seperable processes in depth>1 coupling. */ +void _vp_couple_quantize_normalize(int blobno, + vorbis_info_psy_global *g, + vorbis_look_psy *p, + vorbis_info_mapping0 *vi, + float **mdct, + int **iwork, + int *nonzero, + int sliding_lowpass, + int ch){ + + int i; + int n = p->n; + int partition=(p->vi->normal_p ? p->vi->normal_partition : 16); + int limit = g->coupling_pointlimit[p->vi->blockflag][blobno]; + float prepoint=stereo_threshholds[g->coupling_prepointamp[blobno]]; + float postpoint=stereo_threshholds[g->coupling_postpointamp[blobno]]; + float de=0.1*p->m_val; /* a blend of the AoTuV M2 and M3 code here and below */ + + /* mdct is our raw mdct output, floor not removed. */ + /* inout passes in the ifloor, passes back quantized result */ + + /* unquantized energy (negative indicates amplitude has negative sign) */ + float **raw = alloca(ch*sizeof(*raw)); + + /* dual pupose; quantized energy (if flag set), othersize fabs(raw) */ + float **quant = alloca(ch*sizeof(*quant)); + + /* floor energy */ + float **floor = alloca(ch*sizeof(*floor)); + + /* flags indicating raw/quantized status of elements in raw vector */ + int **flag = alloca(ch*sizeof(*flag)); + + /* non-zero flag working vector */ + int *nz = alloca(ch*sizeof(*nz)); + + /* energy surplus/defecit tracking */ + float *acc = alloca((ch+vi->coupling_steps)*sizeof(*acc)); + + /* The threshold of a stereo is changed with the size of n */ + if(n > 1000) + postpoint=stereo_threshholds_limited[g->coupling_postpointamp[blobno]]; + + raw[0] = alloca(ch*partition*sizeof(**raw)); + quant[0] = alloca(ch*partition*sizeof(**quant)); + floor[0] = alloca(ch*partition*sizeof(**floor)); + flag[0] = alloca(ch*partition*sizeof(**flag)); + + for(i=1;icoupling_steps;i++) + acc[i]=0.f; + + for(i=0;i n-i ? n-i : partition; + int step,track = 0; + + memcpy(nz,nonzero,sizeof(*nz)*ch); + + /* prefill */ + memset(flag[0],0,ch*partition*sizeof(**flag)); + for(k=0;kcoupling_steps;step++){ + int Mi = vi->coupling_mag[step]; + int Ai = vi->coupling_ang[step]; + int *iM = &iwork[Mi][i]; + int *iA = &iwork[Ai][i]; + float *reM = raw[Mi]; + float *reA = raw[Ai]; + float *qeM = quant[Mi]; + float *qeA = quant[Ai]; + float *floorM = floor[Mi]; + float *floorA = floor[Ai]; + int *fM = flag[Mi]; + int *fA = flag[Ai]; + + if(nz[Mi] || nz[Ai]){ + nz[Mi] = nz[Ai] = 1; + + for(j=0;jabs(B)){ + iA[j]=(A>0?A-B:B-A); + }else{ + iA[j]=(B>0?A-B:B-A); + iM[j]=B; + } + + /* collapse two equivalent tuples to one */ + if(iA[j]>=abs(iM[j])*2){ + iA[j]= -iA[j]; + iM[j]= -iM[j]; + } + + } + + }else{ + /* lossy (point) coupling */ + if(jcoupling_steps;i++){ + /* make sure coupling a zero and a nonzero channel results in two + nonzero channels. */ + if(nonzero[vi->coupling_mag[i]] || + nonzero[vi->coupling_ang[i]]){ + nonzero[vi->coupling_mag[i]]=1; + nonzero[vi->coupling_ang[i]]=1; + } + } +} diff --git a/libvorbis-1.0.1/lib/psy.h b/Dependencies/libvorbis/lib/psy.h similarity index 62% rename from libvorbis-1.0.1/lib/psy.h rename to Dependencies/libvorbis/lib/psy.h index ed361a1..c1ea824 100644 --- a/libvorbis-1.0.1/lib/psy.h +++ b/Dependencies/libvorbis/lib/psy.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: random psychoacoustics (not including preecho) - last mod: $Id: psy.h,v 1.32 2002/07/13 06:12:47 xiphmont Exp $ + last mod: $Id: psy.h 16946 2010-03-03 16:12:40Z xiphmont $ ********************************************************************/ @@ -57,8 +57,7 @@ typedef struct vorbis_info_psy{ float max_curve_dB; - int normal_channel_p; - int normal_point_p; + int normal_p; int normal_start; int normal_partition; double normal_thresh; @@ -76,11 +75,11 @@ typedef struct{ float ampmax_att_per_sec; /* channel coupling config */ - int coupling_pkHz[PACKETBLOBS]; - int coupling_pointlimit[2][PACKETBLOBS]; - int coupling_prepointamp[PACKETBLOBS]; - int coupling_postpointamp[PACKETBLOBS]; - int sliding_lowpass[2][PACKETBLOBS]; + int coupling_pkHz[PACKETBLOBS]; + int coupling_pointlimit[2][PACKETBLOBS]; + int coupling_prepointamp[PACKETBLOBS]; + int coupling_postpointamp[PACKETBLOBS]; + int sliding_lowpass[2][PACKETBLOBS]; } vorbis_info_psy_global; @@ -89,7 +88,7 @@ typedef struct { int channels; vorbis_info_psy_global *gi; - int coupling_pointlimit[2][P_NOISECURVES]; + int coupling_pointlimit[2][P_NOISECURVES]; } vorbis_look_psy_global; @@ -107,69 +106,49 @@ typedef struct { long firstoc; long shiftoc; int eighth_octave_lines; /* power of two, please */ - int total_octave_lines; + int total_octave_lines; long rate; /* cache it */ + + float m_val; /* Masking compensation value */ + } vorbis_look_psy; extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, - vorbis_info_psy_global *gi,int n,long rate); + vorbis_info_psy_global *gi,int n,long rate); extern void _vp_psy_clear(vorbis_look_psy *p); extern void *_vi_psy_dup(void *source); extern void _vi_psy_free(vorbis_info_psy *i); extern vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i); -extern void _vp_remove_floor(vorbis_look_psy *p, - float *mdct, - int *icodedflr, - float *residue, - int sliding_lowpass); - extern void _vp_noisemask(vorbis_look_psy *p, - float *logmdct, - float *logmask); + float *logmdct, + float *logmask); extern void _vp_tonemask(vorbis_look_psy *p, - float *logfft, - float *logmask, - float global_specmax, - float local_specmax); + float *logfft, + float *logmask, + float global_specmax, + float local_specmax); extern void _vp_offset_and_mix(vorbis_look_psy *p, - float *noise, - float *tone, - int offset_select, - float *logmask); + float *noise, + float *tone, + int offset_select, + float *logmask, + float *mdct, + float *logmdct); extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd); -extern float **_vp_quantize_couple_memo(vorbis_block *vb, - vorbis_info_psy_global *g, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mdct); - -extern void _vp_couple(int blobno, - vorbis_info_psy_global *g, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **res, - float **mag_memo, - int **mag_sort, - int **ifloor, - int *nonzero, - int sliding_lowpass); - -extern void _vp_noise_normalize(vorbis_look_psy *p, - float *in,float *out,int *sortedindex); - -extern void _vp_noise_normalize_sort(vorbis_look_psy *p, - float *magnitudes,int *sortedindex); - -extern int **_vp_quantize_couple_sort(vorbis_block *vb, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mags); +extern void _vp_couple_quantize_normalize(int blobno, + vorbis_info_psy_global *g, + vorbis_look_psy *p, + vorbis_info_mapping0 *vi, + float **mdct, + int **iwork, + int *nonzero, + int sliding_lowpass, + int ch); #endif - diff --git a/libvorbis-1.0.1/lib/psytune.c b/Dependencies/libvorbis/lib/psytune.c similarity index 57% rename from libvorbis-1.0.1/lib/psytune.c rename to Dependencies/libvorbis/lib/psytune.c index 7f2b553..64c1317 100644 --- a/libvorbis-1.0.1/lib/psytune.c +++ b/Dependencies/libvorbis/lib/psytune.c @@ -5,17 +5,20 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: simple utility that runs audio through the psychoacoustics without encoding - last mod: $Id: psytune.c,v 1.20 2003/03/04 21:22:11 xiphmont Exp $ + last mod: $Id: psytune.c 16037 2009-05-26 21:10:58Z xiphmont $ ********************************************************************/ +/* NB: this is dead code, retained purely for doc and reference value + don't try to compile it */ + #include #include #include @@ -155,43 +158,43 @@ static vorbis_info_psy _psy_set0={ }; static vorbis_info_floor1 _floor_set0={1, - {0}, - - {32}, - {0}, - {0}, - {{-1}}, - - 2, - {0,1024, - - 88,31,243, - - 14,54,143,460, - - 6,3,10, 22,18,26, 41,36,47, - 69,61,78, 112,99,126, 185,162,211, - 329,282,387, 672,553,825 - }, - - 60,30,400, - 20,8,1,18., - 20,600, - 960}; + {0}, + + {32}, + {0}, + {0}, + {{-1}}, + + 2, + {0,1024, + + 88,31,243, + + 14,54,143,460, + + 6,3,10, 22,18,26, 41,36,47, + 69,61,78, 112,99,126, 185,162,211, + 329,282,387, 672,553,825 + }, + + 60,30,400, + 20,8,1,18., + 20,600, + 960}; static vorbis_info_mapping0 mapping_info={1,{0,1},{0},{0},{0},0, 1, {0},{1}}; static codec_setup_info codec_setup0={ {0,0}, - 1,1,1,1,1,0,1, - {NULL}, - {0},{&mapping_info}, - {0},{NULL}, - {1},{&_floor_set0}, - {2},{NULL}, - {NULL}, - {&_psy_set0}, - &_psy_set0G}; - + 1,1,1,1,1,0,1, + {NULL}, + {0},{&mapping_info}, + {0},{NULL}, + {1},{&_floor_set0}, + {2},{NULL}, + {NULL}, + {&_psy_set0}, + &_psy_set0G}; + static int noisy=0; void analysis(char *base,int i,float *v,int n,int bark,int dB){ if(noisy){ @@ -203,18 +206,18 @@ void analysis(char *base,int i,float *v,int n,int bark,int dB){ for(j=0;j>1]=todB(&temp); - if(temp>local_ampmax[i])local_ampmax[i]=temp; - } - if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i]; - - mdct_forward(&m_look,pcm[i],mdct); - for(j=0;j>1]=todB(&temp); + if(temp>local_ampmax[i])local_ampmax[i]=temp; + } + if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i]; + + mdct_forward(&m_look,pcm[i],mdct); + for(j=0;jforward(&vb,floor_look, - mdct, - logmdct, - mask, - logmax, - - flr[i]); - } - - _vp_remove_floor(&p_look, - pg_look, - logmdct, - mdct, - flr[i], - pcm[i], - local_ampmax[i]); - - for(j=0;j1500) - fprintf(stderr,"%ld ",frameno+i); - - analysis("res",frameno+i,pcm[i],framesize/2,1,0); - analysis("codedflr",frameno+i,flr[i],framesize/2,1,1); + float amp; + float *fft=work[i]; + float *logmax=fft; + float *mdct=pcm[i]; + float *logmdct=mdct+framesize/2; + float *mask=fft+framesize/2; + + /* floor psychoacoustics */ + _vp_compute_mask(&p_look, + pg_look, + i, + fft, + logmdct, + mask, + ampmax, + local_ampmax[i], + framesize/2); + + analysis("mask",frameno+i,mask,framesize/2,1,0); + + { + vorbis_block vb; + vorbis_dsp_state vd; + memset(&vd,0,sizeof(vd)); + vd.vi=&vi; + vb.vd=&vd; + vb.pcmend=framesize; + + /* floor quantization/application */ + nonzero[i]=_floor_P[1]->forward(&vb,floor_look, + mdct, + logmdct, + mask, + logmax, + + flr[i]); + } + + _vp_remove_floor(&p_look, + pg_look, + logmdct, + mdct, + flr[i], + pcm[i], + local_ampmax[i]); + + for(j=0;j1500) + fprintf(stderr,"%ld ",frameno+i); + + analysis("res",frameno+i,pcm[i],framesize/2,1,0); + analysis("codedflr",frameno+i,flr[i],framesize/2,1,1); } /* residue prequantization */ _vp_partition_prequant(&p_look, - &vi, - pcm, - nonzero); - + &vi, + pcm, + nonzero); + for(i=0;i<2;i++) - analysis("quant",frameno+i,pcm[i],framesize/2,1,0); + analysis("quant",frameno+i,pcm[i],framesize/2,1,0); /* channel coupling / stereo quantization */ _vp_couple(&p_look, - &mapping_info, - pcm, - nonzero); + &mapping_info, + pcm, + nonzero); for(i=0;i<2;i++) - analysis("coupled",frameno+i,pcm[i],framesize/2,1,0); + analysis("coupled",frameno+i,pcm[i],framesize/2,1,0); /* decoupling */ for(i=mapping_info.coupling_steps-1;i>=0;i--){ - float *pcmM=pcm[mapping_info.coupling_mag[i]]; - float *pcmA=pcm[mapping_info.coupling_ang[i]]; - - for(j=0;j0) - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag-ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag+ang; - } - else - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag+ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag-ang; - } - } + float *pcmM=pcm[mapping_info.coupling_mag[i]]; + float *pcmA=pcm[mapping_info.coupling_ang[i]]; + + for(j=0;j0) + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag-ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag+ang; + } + else + if(ang>0){ + pcmM[j]=mag; + pcmA[j]=mag+ang; + }else{ + pcmA[j]=mag; + pcmM[j]=mag-ang; + } + } } for(i=0;i<2;i++) - analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0); + analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0); for(i=0;i<2;i++){ - float amp; + float amp; - for(j=0;j32767){ - if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); - flag=1; - val=32767; - } - if(val<-32768){ - if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); - flag=1; - val=-32768; - } - ptr[0]=val&0xff; - ptr[1]=(val>>8)&0xff; - ptr+=4; - } + char *ptr=buffer+i*2; + float *mono=out[i]; + int flag=0; + for(j=0;j32767){ + if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); + flag=1; + val=32767; + } + if(val<-32768){ + if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); + flag=1; + val=-32768; + } + ptr[0]=val&0xff; + ptr[1]=(val>>8)&0xff; + ptr+=4; + } } fprintf(stderr,"*"); @@ -506,8 +509,8 @@ int main(int argc,char *argv[]){ memmove(buffer,buffer2,framesize*2); for(i=0;i<2;i++){ - for(j=0,k=framesize/2;j -#endif +#endif typedef struct { vorbis_info_residue0 *info; - + int parts; int stages; codebook *fullbooks; @@ -51,13 +54,14 @@ typedef struct { long phrasebits; long frames; -#ifdef TRAIN_RES +#if defined(TRAIN_RES) || defined(TRAIN_RESAUX) int train_seq; long *training_data[8][64]; float training_max[8][64]; float training_min[8][64]; float tmin; float tmax; + int submap; #endif } vorbis_look_residue0; @@ -80,58 +84,59 @@ void res0_free_look(vorbis_look_residue *i){ { int j,k,l; for(j=0;jparts;j++){ - /*fprintf(stderr,"partition %d: ",j);*/ - for(k=0;k<8;k++) - if(look->training_data[k][j]){ - char buffer[80]; - FILE *of; - codebook *statebook=look->partbooks[j][k]; - - /* long and short into the same bucket by current convention */ - sprintf(buffer,"res_part%d_pass%d.vqd",j,k); - of=fopen(buffer,"a"); - - for(l=0;lentries;l++) - fprintf(of,"%d:%ld\n",l,look->training_data[k][j][l]); - - fclose(of); - - /*fprintf(stderr,"%d(%.2f|%.2f) ",k, - look->training_min[k][j],look->training_max[k][j]);*/ - - _ogg_free(look->training_data[k][j]); - } - /*fprintf(stderr,"\n");*/ + /*fprintf(stderr,"partition %d: ",j);*/ + for(k=0;k<8;k++) + if(look->training_data[k][j]){ + char buffer[80]; + FILE *of; + codebook *statebook=look->partbooks[j][k]; + + /* long and short into the same bucket by current convention */ + sprintf(buffer,"res_sub%d_part%d_pass%d.vqd",look->submap,j,k); + of=fopen(buffer,"a"); + + for(l=0;lentries;l++) + fprintf(of,"%d:%ld\n",l,look->training_data[k][j][l]); + + fclose(of); + + /*fprintf(stderr,"%d(%.2f|%.2f) ",k, + look->training_min[k][j],look->training_max[k][j]);*/ + + _ogg_free(look->training_data[k][j]); + look->training_data[k][j]=NULL; + } + /*fprintf(stderr,"\n");*/ } } fprintf(stderr,"min/max residue: %g::%g\n",look->tmin,look->tmax); /*fprintf(stderr,"residue bit usage %f:%f (%f total)\n", - (float)look->phrasebits/look->frames, - (float)look->postbits/look->frames, - (float)(look->postbits+look->phrasebits)/look->frames);*/ + (float)look->phrasebits/look->frames, + (float)look->postbits/look->frames, + (float)(look->postbits+look->phrasebits)/look->frames);*/ #endif /*vorbis_info_residue0 *info=look->info; fprintf(stderr, - "%ld frames encoded in %ld phrasebits and %ld residue bits " - "(%g/frame) \n",look->frames,look->phrasebits, - look->resbitsflat, - (look->phrasebits+look->resbitsflat)/(float)look->frames); - + "%ld frames encoded in %ld phrasebits and %ld residue bits " + "(%g/frame) \n",look->frames,look->phrasebits, + look->resbitsflat, + (look->phrasebits+look->resbitsflat)/(float)look->frames); + for(j=0;jparts;j++){ long acc=0; fprintf(stderr,"\t[%d] == ",j); for(k=0;kstages;k++) - if((info->secondstages[j]>>k)&1){ - fprintf(stderr,"%ld,",look->resbits[j][k]); - acc+=look->resbits[j][k]; - } + if((info->secondstages[j]>>k)&1){ + fprintf(stderr,"%ld,",look->resbits[j][k]); + acc+=look->resbits[j][k]; + } fprintf(stderr,":: (%ld vals) %1.2fbits/sample\n",look->resvals[j], - acc?(float)acc/(look->resvals[j]*info->grouping):0); + acc?(float)acc/(look->resvals[j]*info->grouping):0); } fprintf(stderr,"\n");*/ @@ -172,8 +177,8 @@ void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){ oggpack_write(opb,info->begin,24); oggpack_write(opb,info->end,24); - oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and - code with a partitioned book */ + oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and + code with a partitioned book */ oggpack_write(opb,info->partitions-1,6); /* possible partition choices */ oggpack_write(opb,info->groupbook,8); /* group huffman book */ @@ -183,9 +188,9 @@ void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){ for(j=0;jpartitions;j++){ if(ilog(info->secondstages[j])>3){ /* yes, this is a minor hack due to not thinking ahead */ - oggpack_write(opb,info->secondstages[j],3); + oggpack_write(opb,info->secondstages[j],3); oggpack_write(opb,1,1); - oggpack_write(opb,info->secondstages[j]>>3,5); + oggpack_write(opb,info->secondstages[j]>>3,5); }else oggpack_write(opb,info->secondstages[j],4); /* trailing zero */ acc+=icount(info->secondstages[j]); @@ -207,20 +212,51 @@ vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ info->partitions=oggpack_read(opb,6)+1; info->groupbook=oggpack_read(opb,8); + /* check for premature EOP */ + if(info->groupbook<0)goto errout; + for(j=0;jpartitions;j++){ int cascade=oggpack_read(opb,3); - if(oggpack_read(opb,1)) - cascade|=(oggpack_read(opb,5)<<3); + int cflag=oggpack_read(opb,1); + if(cflag<0) goto errout; + if(cflag){ + int c=oggpack_read(opb,5); + if(c<0) goto errout; + cascade|=(c<<3); + } info->secondstages[j]=cascade; acc+=icount(cascade); } - for(j=0;jbooklist[j]=oggpack_read(opb,8); + for(j=0;jbooklist[j]=book; + } if(info->groupbook>=ci->books)goto errout; - for(j=0;jbooklist[j]>=ci->books)goto errout; + if(ci->book_param[info->booklist[j]]->maptype==0)goto errout; + } + + /* verify the phrasebook is not specifying an impossible or + inconsistent partitioning scheme. */ + /* modify the phrasebook ranging check from r16327; an early beta + encoder had a bug where it used an oversized phrasebook by + accident. These files should continue to be playable, but don't + allow an exploit */ + { + int entries = ci->book_param[info->groupbook]->entries; + int dim = ci->book_param[info->groupbook]->dim; + int partvals = 1; + while(dim>0){ + partvals *= info->partitions; + if(partvals > entries) goto errout; + dim--; + } + info->partvals = partvals; + } return(info); errout: @@ -229,7 +265,7 @@ vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ } vorbis_look_residue *res0_look(vorbis_dsp_state *vd, - vorbis_info_residue *vr){ + vorbis_info_residue *vr){ vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; vorbis_look_residue0 *look=_ogg_calloc(1,sizeof(*look)); codec_setup_info *ci=vd->vi->codec_setup; @@ -252,17 +288,20 @@ vorbis_look_residue *res0_look(vorbis_dsp_state *vd, if(stages>maxstage)maxstage=stages; look->partbooks[j]=_ogg_calloc(stages,sizeof(*look->partbooks[j])); for(k=0;ksecondstages[j]&(1<partbooks[j][k]=ci->fullbooks+info->booklist[acc++]; + if(info->secondstages[j]&(1<partbooks[j][k]=ci->fullbooks+info->booklist[acc++]; #ifdef TRAIN_RES - look->training_data[k][j]=calloc(look->partbooks[j][k]->entries, - sizeof(***look->training_data)); + look->training_data[k][j]=_ogg_calloc(look->partbooks[j][k]->entries, + sizeof(***look->training_data)); #endif - } + } } } - look->partvals=rint(pow((float)look->parts,(float)dim)); + look->partvals=1; + for(j=0;jpartvals*=look->parts; + look->stages=maxstage; look->decodemap=_ogg_malloc(look->partvals*sizeof(*look->decodemap)); for(j=0;jpartvals;j++){ @@ -276,7 +315,7 @@ vorbis_look_residue *res0_look(vorbis_dsp_state *vd, look->decodemap[j][k]=deco; } } -#ifdef TRAIN_RES +#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) { static int train_seq=0; look->train_seq=train_seq++; @@ -286,66 +325,72 @@ vorbis_look_residue *res0_look(vorbis_dsp_state *vd, } /* break an abstraction and copy some code for performance purposes */ -static int local_book_besterror(codebook *book,float *a){ - int dim=book->dim,i,k,o; - int best=0; - encode_aux_threshmatch *tt=book->c->thresh_tree; - - /* find the quant val of each scalar */ - for(k=0,o=dim;kthreshvals>>1; - - if(valquantthresh[i]){ - if(valquantthresh[i-1]){ - for(--i;i>0;--i) - if(val>=tt->quantthresh[i-1]) - break; - } - }else{ - - for(++i;ithreshvals-1;++i) - if(valquantthresh[i])break; - +static int local_book_besterror(codebook *book,int *a){ + int dim=book->dim; + int i,j,o; + int minval=book->minval; + int del=book->delta; + int qv=book->quantvals; + int ze=(qv>>1); + int index=0; + /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ + int p[8]={0,0,0,0,0,0,0,0}; + + if(del!=1){ + for(i=0,o=dim;i>1))/del; + int m = (v=qv?qv-1:m)); + p[o]=v*del+minval; + } + }else{ + for(i=0,o=dim;i=qv?qv-1:m)); + p[o]=v*del+minval; } - - best=(best*tt->quantvals)+tt->quantmap[i]; } - /* regular lattices are easy :-) */ - - if(book->c->lengthlist[best]<=0){ + + if(book->c->lengthlist[index]<=0){ const static_codebook *c=book->c; - int i,j; - float bestf=0.f; - float *e=book->valuelist; - best=-1; + int best=-1; + /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ + int e[8]={0,0,0,0,0,0,0,0}; + int maxval = book->minval + book->delta*(book->quantvals-1); for(i=0;ientries;i++){ if(c->lengthlist[i]>0){ - float this=0.f; - for(j=0;j=maxval) + e[j++]=0; + if(e[j]>=0) + e[j]+=book->delta; + e[j]= -e[j]; } } - { - float *ptr=book->valuelist+best*dim; + if(index>-1){ for(i=0;idim; int step=n/dim; @@ -354,28 +399,28 @@ static int _encodepart(oggpack_buffer *opb,float *vec, int n, int entry=local_book_besterror(book,vec+i*dim); #ifdef TRAIN_RES - acc[entry]++; + if(entry>=0) + acc[entry]++; #endif bits+=vorbis_book_encode(book,entry,opb); + } return(bits); } static long **_01class(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch){ + int **in,int ch){ long i,j,k; vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; vorbis_info_residue0 *info=look->info; - vorbis_info *vi=vb->vd->vi; - codec_setup_info *ci=vi->codec_setup; /* move all this setup out later */ int samples_per_partition=info->grouping; int possible_partitions=info->partitions; int n=info->end-info->begin; - + int partvals=n/samples_per_partition; long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); float scale=100./samples_per_partition; @@ -383,29 +428,29 @@ static long **_01class(vorbis_block *vb,vorbis_look_residue *vl, /* we find the partition type for each partition of each channel. We'll go back and do the interleaved encoding in a bit. For now, clarity */ - + for(i=0;ibegin; for(j=0;jmax)max=fabs(in[j][offset+k]); - ent+=fabs(rint(in[j][offset+k])); + if(abs(in[j][offset+k])>max)max=abs(in[j][offset+k]); + ent+=abs(in[j][offset+k]); } ent*=scale; - + for(k=0;kclassmetric1[k] && - (info->classmetric2[k]<0 || (int)entclassmetric2[k])) - break; - - partword[j][i]=k; + if(max<=info->classmetric1[k] && + (info->classmetric2[k]<0 || entclassmetric2[k])) + break; + + partword[j][i]=k; } } @@ -413,12 +458,12 @@ static long **_01class(vorbis_block *vb,vorbis_look_residue *vl, { FILE *of; char buffer[80]; - + for(i=0;itrain_seq); of=fopen(buffer,"a"); for(j=0;jinfo; @@ -446,33 +491,33 @@ static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,float **in, int partvals=n/samples_per_partition; long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); -#ifdef TRAIN_RES +#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) FILE *of; char buffer[80]; #endif - - partword[0]=_vorbis_block_alloc(vb,n*ch/samples_per_partition*sizeof(*partword[0])); - memset(partword[0],0,n*ch/samples_per_partition*sizeof(*partword[0])); + + partword[0]=_vorbis_block_alloc(vb,partvals*sizeof(*partword[0])); + memset(partword[0],0,partvals*sizeof(*partword[0])); for(i=0,l=info->begin/ch;imagmax)magmax=fabs(in[0][l]); + if(abs(in[0][l])>magmax)magmax=abs(in[0][l]); for(k=1;kangmax)angmax=fabs(in[k][l]); + if(abs(in[k][l])>angmax)angmax=abs(in[k][l]); l++; } for(j=0;jclassmetric1[j] && - angmax<=info->classmetric2[j]) - break; + angmax<=info->classmetric2[j]) + break; partword[0][i]=j; - } - + } + #ifdef TRAIN_RESAUX sprintf(buffer,"resaux_%d.vqd",look->train_seq); of=fopen(buffer,"a"); @@ -487,16 +532,20 @@ static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,float **in, return(partword); } -static int _01forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch, - long **partword, - int (*encode)(oggpack_buffer *,float *,int, - codebook *,long *)){ +static int _01forward(oggpack_buffer *opb, + vorbis_block *vb,vorbis_look_residue *vl, + int **in,int ch, + long **partword, + int (*encode)(oggpack_buffer *,int *,int, + codebook *,long *), + int submap){ long i,j,k,s; vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; vorbis_info_residue0 *info=look->info; - vorbis_dsp_state *vd=vb->vd; +#ifdef TRAIN_RES + look->submap=submap; +#endif /* move all this setup out later */ int samples_per_partition=info->grouping; @@ -518,7 +567,7 @@ static int _01forward(vorbis_block *vb,vorbis_look_residue *vl, memset(resbits,0,sizeof(resbits)); memset(resvals,0,sizeof(resvals)); - + /* we code the partition words for each channel, then the residual words for a partition per channel until we've written all the residual words for that partition word. Then write the next @@ -530,59 +579,59 @@ static int _01forward(vorbis_block *vb,vorbis_look_residue *vl, /* first we encode a partition codeword for each channel */ if(s==0){ - for(j=0;jphrasebook->entries) - look->phrasebits+=vorbis_book_encode(look->phrasebook,val,&vb->opb); + for(j=0;jphrasebook->entries) + look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); #if 0 /*def TRAIN_RES*/ - else - fprintf(stderr,"!"); + else + fprintf(stderr,"!"); #endif - - } + + } } - + /* now we encode interleaved residual values for the partitions */ for(k=0;kbegin; - - for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; - if(statebook){ - int ret; - long *accumulator=NULL; + long offset=i*samples_per_partition+info->begin; + + for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; + if(statebook){ + int ret; + long *accumulator=NULL; #ifdef TRAIN_RES - accumulator=look->training_data[s][partword[j][i]]; - { - int l; - float *samples=in[j]+offset; - for(l=0;ltraining_min[s][partword[j][i]]) - look->training_min[s][partword[j][i]]=samples[l]; - if(samples[l]>look->training_max[s][partword[j][i]]) - look->training_max[s][partword[j][i]]=samples[l]; - } - } + accumulator=look->training_data[s][partword[j][i]]; + { + int l; + int *samples=in[j]+offset; + for(l=0;ltraining_min[s][partword[j][i]]) + look->training_min[s][partword[j][i]]=samples[l]; + if(samples[l]>look->training_max[s][partword[j][i]]) + look->training_max[s][partword[j][i]]=samples[l]; + } + } #endif - - ret=encode(&vb->opb,in[j]+offset,samples_per_partition, - statebook,accumulator); - - look->postbits+=ret; - resbits[partword[j][i]]+=ret; - } - } - } + + ret=encode(opb,in[j]+offset,samples_per_partition, + statebook,accumulator); + + look->postbits+=ret; + resbits[partword[j][i]]+=ret; + } + } + } } } } @@ -592,21 +641,22 @@ static int _01forward(vorbis_block *vb,vorbis_look_residue *vl, long totalbits=0; fprintf(stderr,"%d :: ",vb->mode); for(k=0;kgrouping; int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int ***partword=alloca(ch*sizeof(*partword)); - - for(j=0;jstages;s++){ - - /* each loop decodes on partition codeword containing - partitions_pre_word partitions */ - for(i=0,l=0;iphrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[j][l]=look->decodemap[temp]; - if(partword[j][l]==NULL)goto errout; - } + int max=vb->pcmend>>1; + int end=(info->endend:max); + int n=end-info->begin; + + if(n>0){ + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int ***partword=alloca(ch*sizeof(*partword)); + + for(j=0;jstages;s++){ + + /* each loop decodes on partition codeword containing + partitions_per_word partitions */ + for(i=0,l=0;iphrasebook,&vb->opb); + + if(temp==-1 || temp>=info->partvals)goto eopbreak; + partword[j][l]=look->decodemap[temp]; + if(partword[j][l]==NULL)goto errout; + } + } + + /* now we decode residual values for the partitions */ + for(k=0;kbegin+i*samples_per_partition; + if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; + if(stagebook){ + if(decodepart(stagebook,in[j]+offset,&vb->opb, + samples_per_partition)==-1)goto eopbreak; + } + } + } } - - /* now we decode residual values for the partitions */ - for(k=0;kbegin+i*samples_per_partition; - if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; - if(stagebook){ - if(decodepart(stagebook,in[j]+offset,&vb->opb, - samples_per_partition)==-1)goto eopbreak; - } - } - } - } + } } - errout: eopbreak: return(0); } -#if 0 -/* residue 0 and 1 are just slight variants of one another. 0 is - interleaved, 1 is not */ -long **res0_class(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - /* we encode only the nonzero parts of a bundle */ - int i,used=0; - for(i=0;ipcmend/2; - for(i=0;ipcmend/2; +int res1_forward(oggpack_buffer *opb,vorbis_block *vb,vorbis_look_residue *vl, + int **in,int *nonzero,int ch, long **partword, int submap){ + int i,used=0; for(i=0;ipcmend/2,used=0; /* don't duplicate the code; use a working vector hack for now and reshape ourselves into a single channel res1 */ /* ugly; reallocs for each coupling pass :-( */ - float *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work)); + int *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work)); for(i=0;iinfo; @@ -830,48 +810,51 @@ int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, /* move all this setup out later */ int samples_per_partition=info->grouping; int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); - - for(i=0;istages;s++){ - for(i=0,l=0;iphrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[l]=look->decodemap[temp]; - if(partword[l]==NULL)goto errout; + int max=(vb->pcmend*ch)>>1; + int end=(info->endend:max); + int n=end-info->begin; + + if(n>0){ + int partvals=n/samples_per_partition; + int partwords=(partvals+partitions_per_word-1)/partitions_per_word; + int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); + + for(i=0;istages;s++){ + for(i=0,l=0;iphrasebook,&vb->opb); + if(temp==-1 || temp>info->partvals)goto eopbreak; + partword[l]=look->decodemap[temp]; + if(partword[l]==NULL)goto errout; + } + + /* now we decode residual values for the partitions */ + for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; + + if(stagebook){ + if(vorbis_book_decodevv_add(stagebook,in, + i*samples_per_partition+info->begin,ch, + &vb->opb,samples_per_partition)==-1) + goto eopbreak; + } + } } - - /* now we decode residual values for the partitions */ - for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; - - if(stagebook){ - if(vorbis_book_decodevv_add(stagebook,in, - i*samples_per_partition+info->begin,ch, - &vb->opb,samples_per_partition)==-1) - goto eopbreak; - } - } - } + } } - errout: eopbreak: return(0); } -vorbis_func_residue residue0_exportbundle={ +const vorbis_func_residue residue0_exportbundle={ NULL, &res0_unpack, &res0_look, @@ -882,7 +865,7 @@ vorbis_func_residue residue0_exportbundle={ &res0_inverse }; -vorbis_func_residue residue1_exportbundle={ +const vorbis_func_residue residue1_exportbundle={ &res0_pack, &res0_unpack, &res0_look, @@ -893,7 +876,7 @@ vorbis_func_residue residue1_exportbundle={ &res1_inverse }; -vorbis_func_residue residue2_exportbundle={ +const vorbis_func_residue residue2_exportbundle={ &res0_pack, &res0_unpack, &res0_look, @@ -903,4 +886,3 @@ vorbis_func_residue residue2_exportbundle={ &res2_forward, &res2_inverse }; - diff --git a/libvorbis-1.0.1/lib/scales.h b/Dependencies/libvorbis/lib/scales.h similarity index 72% rename from libvorbis-1.0.1/lib/scales.h rename to Dependencies/libvorbis/lib/scales.h index fdc8c95..613f796 100644 --- a/libvorbis-1.0.1/lib/scales.h +++ b/Dependencies/libvorbis/lib/scales.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: linear scale -> dB, Bark and Mel scales - last mod: $Id: scales.h,v 1.26 2002/07/11 06:40:50 xiphmont Exp $ + last mod: $Id: scales.h 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -21,29 +21,34 @@ #include #include "os.h" +#ifdef _MSC_VER +/* MS Visual Studio doesn't have C99 inline keyword. */ +#define inline __inline +#endif + /* 20log10(x) */ #define VORBIS_IEEE_FLOAT32 1 #ifdef VORBIS_IEEE_FLOAT32 -static float unitnorm(float x){ - ogg_uint32_t *ix=(ogg_uint32_t *)&x; - *ix=(*ix&0x80000000UL)|(0x3f800000UL); - return(x); -} - -static float FABS(float *x){ - ogg_uint32_t *ix=(ogg_uint32_t *)x; - *ix&=0x7fffffffUL; - return(*x); +static inline float unitnorm(float x){ + union { + ogg_uint32_t i; + float f; + } ix; + ix.f = x; + ix.i = (ix.i & 0x80000000U) | (0x3f800000U); + return ix.f; } -static float todB(const float *x){ - float calc; - ogg_int32_t *i=(ogg_int32_t *)x; - calc = ((*i) & 0x7fffffff); - calc *= 7.1771144e-7f; - calc += -764.27118f; - return calc; +/* Segher was off (too high) by ~ .3 decibel. Center the conversion correctly. */ +static inline float todB(const float *x){ + union { + ogg_uint32_t i; + float f; + } ix; + ix.f = *x; + ix.i = ix.i&0x7fffffff; + return (float)(ix.i * 7.17711438e-7f -764.6161886f); } #define todB_nn(x) todB(x) @@ -55,14 +60,12 @@ static float unitnorm(float x){ return(1.f); } -#define FABS(x) fabs(*(x)) - #define todB(x) (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f) #define todB_nn(x) (*(x)==0.f?-400.f:log(*(x))*8.6858896f) -#endif +#endif -#define fromdB(x) (exp((x)*.11512925f)) +#define fromdB(x) (exp((x)*.11512925f)) /* The bark scale equations are approximations, since the original table was somewhat hand rolled. The below are chosen to have the @@ -85,4 +88,3 @@ static float unitnorm(float x){ #define fromOC(o) (exp(((o)+5.965784f)*.693147f)) #endif - diff --git a/libvorbis-1.0.1/lib/sharedbook.c b/Dependencies/libvorbis/lib/sharedbook.c similarity index 51% rename from libvorbis-1.0.1/lib/sharedbook.c rename to Dependencies/libvorbis/lib/sharedbook.c index 11c02f6..545e302 100644 --- a/libvorbis-1.0.1/lib/sharedbook.c +++ b/Dependencies/libvorbis/lib/sharedbook.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: basic shared codebook operations - last mod: $Id: sharedbook.c,v 1.29 2002/10/11 07:44:28 xiphmont Exp $ + last mod: $Id: sharedbook.c 17030 2010-03-25 06:52:55Z xiphmont $ ********************************************************************/ @@ -36,7 +36,7 @@ int _ilog(unsigned int v){ } /* 32 bit float (not IEEE; nonnormalized mantissa + - biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm + biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm Why not IEEE? It's just not that important here. */ #define VQ_FEXP 10 @@ -52,7 +52,7 @@ long _float32_pack(float val){ sign=0x80000000; val= -val; } - exp= floor(log(val)/log(2.f)); + exp= floor(log(val)/log(2.f)+.001); //+epsilon mant=rint(ldexp(val,(VQ_FMAN-1)-exp)); exp=(exp+VQ_FEXP_BIAS)<0){ ogg_uint32_t entry=marker[length]; - + /* when we claim a node for an entry, we also claim the nodes - below it (pruning off the imagined tree that may have dangled - from it) as well as blocking the use of any nodes directly - above for leaves */ - + below it (pruning off the imagined tree that may have dangled + from it) as well as blocking the use of any nodes directly + above for leaves */ + /* update ourself */ if(length<32 && (entry>>length)){ - /* error condition; the lengths must specify an overpopulated tree */ - _ogg_free(r); - return(NULL); + /* error condition; the lengths must specify an overpopulated tree */ + _ogg_free(r); + return(NULL); } r[count++]=entry; - + /* Look to see if the next shorter marker points to the node - above. if so, update it and repeat. */ + above. if so, update it and repeat. */ { - for(j=length;j>0;j--){ - - if(marker[j]&1){ - /* have to jump branches */ - if(j==1) - marker[1]++; - else - marker[j]=marker[j-1]<<1; - break; /* invariant says next upper marker would already - have been moved if it was on the same path */ - } - marker[j]++; - } + for(j=length;j>0;j--){ + + if(marker[j]&1){ + /* have to jump branches */ + if(j==1) + marker[1]++; + else + marker[j]=marker[j-1]<<1; + break; /* invariant says next upper marker would already + have been moved if it was on the same path */ + } + marker[j]++; + } } - + /* prune the tree; the implicit invariant says all the longer - markers were dangling from our just-taken node. Dangle them - from our *new* node. */ + markers were dangling from our just-taken node. Dangle them + from our *new* node. */ for(j=length+1;j<33;j++) - if((marker[j]>>1) == entry){ - entry=marker[j]; - marker[j]=marker[j-1]<<1; - }else - break; + if((marker[j]>>1) == entry){ + entry=marker[j]; + marker[j]=marker[j-1]<<1; + }else + break; }else if(sparsecount==0)count++; } - + + /* sanity check the huffman tree; an underpopulated tree must be + rejected. The only exception is the one-node pseudo-nil tree, + which appears to be underpopulated because the tree doesn't + really exist; there's only one possible 'codeword' or zero bits, + but the above tree-gen code doesn't mark that. */ + if(sparsecount != 1){ + for(i=1;i<33;i++) + if(marker[i] & (0xffffffffUL>>(32-i))){ + _ogg_free(r); + return(NULL); + } + } + /* bitreverse the words because our bitwise packer/unpacker is LSb endian */ for(i=0,count=0;ib->entries){ - vals--; + vals--; }else{ - vals++; + vals++; } } } @@ -193,49 +206,49 @@ float *_book_unquantize(const static_codebook *b,int n,int *sparsemap){ switch(b->maptype){ case 1: /* most of the time, entries%dimensions == 0, but we need to be - well defined. We define that the possible vales at each - scalar is values == entries/dim. If entries%dim != 0, we'll - have 'too few' values (values*dimentries;j++){ - if((sparsemap && b->lengthlist[j]) || !sparsemap){ - float last=0.f; - int indexdiv=1; - for(k=0;kdim;k++){ - int index= (j/indexdiv)%quantvals; - float val=b->quantlist[index]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - if(sparsemap) - r[sparsemap[count]*b->dim+k]=val; - else - r[count*b->dim+k]=val; - indexdiv*=quantvals; - } - count++; - } + if((sparsemap && b->lengthlist[j]) || !sparsemap){ + float last=0.f; + int indexdiv=1; + for(k=0;kdim;k++){ + int index= (j/indexdiv)%quantvals; + float val=b->quantlist[index]; + val=fabs(val)*delta+mindel+last; + if(b->q_sequencep)last=val; + if(sparsemap) + r[sparsemap[count]*b->dim+k]=val; + else + r[count*b->dim+k]=val; + indexdiv*=quantvals; + } + count++; + } } break; case 2: for(j=0;jentries;j++){ - if((sparsemap && b->lengthlist[j]) || !sparsemap){ - float last=0.f; - - for(k=0;kdim;k++){ - float val=b->quantlist[j*b->dim+k]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - if(sparsemap) - r[sparsemap[count]*b->dim+k]=val; - else - r[count*b->dim+k]=val; - } - count++; - } + if((sparsemap && b->lengthlist[j]) || !sparsemap){ + float last=0.f; + + for(k=0;kdim;k++){ + float val=b->quantlist[j*b->dim+k]; + val=fabs(val)*delta+mindel+last; + if(b->q_sequencep)last=val; + if(sparsemap) + r[sparsemap[count]*b->dim+k]=val; + else + r[count*b->dim+k]=val; + } + count++; + } } break; } @@ -245,34 +258,13 @@ float *_book_unquantize(const static_codebook *b,int n,int *sparsemap){ return(NULL); } -void vorbis_staticbook_clear(static_codebook *b){ +void vorbis_staticbook_destroy(static_codebook *b){ if(b->allocedp){ if(b->quantlist)_ogg_free(b->quantlist); if(b->lengthlist)_ogg_free(b->lengthlist); - if(b->nearest_tree){ - _ogg_free(b->nearest_tree->ptr0); - _ogg_free(b->nearest_tree->ptr1); - _ogg_free(b->nearest_tree->p); - _ogg_free(b->nearest_tree->q); - memset(b->nearest_tree,0,sizeof(*b->nearest_tree)); - _ogg_free(b->nearest_tree); - } - if(b->thresh_tree){ - _ogg_free(b->thresh_tree->quantthresh); - _ogg_free(b->thresh_tree->quantmap); - memset(b->thresh_tree,0,sizeof(*b->thresh_tree)); - _ogg_free(b->thresh_tree); - } - memset(b,0,sizeof(*b)); - } -} - -void vorbis_staticbook_destroy(static_codebook *b){ - if(b->allocedp){ - vorbis_staticbook_clear(b); _ogg_free(b); - } + } /* otherwise, it is in static memory */ } void vorbis_book_clear(codebook *b){ @@ -296,7 +288,10 @@ int vorbis_book_init_encode(codebook *c,const static_codebook *s){ c->used_entries=s->entries; c->dim=s->dim; c->codelist=_make_words(s->lengthlist,s->entries,0); - c->valuelist=_book_unquantize(s,s->entries,NULL); + //c->valuelist=_book_unquantize(s,s->entries,NULL); + c->quantvals=_book_maptype1_quantvals(s); + c->minval=(int)rint(_float32_unpack(s->q_min)); + c->delta=(int)rint(_float32_unpack(s->q_delta)); return(0); } @@ -310,7 +305,7 @@ static ogg_uint32_t bitreverse(ogg_uint32_t x){ } static int sort32a(const void *a,const void *b){ - return ( **(ogg_uint32_t **)a>**(ogg_uint32_t **)b)- + return ( **(ogg_uint32_t **)a>**(ogg_uint32_t **)b)- ( **(ogg_uint32_t **)a<**(ogg_uint32_t **)b); } @@ -319,7 +314,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){ int i,j,n=0,tabn; int *sortindex; memset(c,0,sizeof(*c)); - + /* count actually used entries */ for(i=0;ientries;i++) if(s->lengthlist[i]>0) @@ -329,21 +324,22 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){ c->used_entries=n; c->dim=s->dim; - /* two different remappings go on here. + if(n>0){ + + /* two different remappings go on here. - First, we collapse the likely sparse codebook down only to - actually represented values/words. This collapsing needs to be - indexed as map-valueless books are used to encode original entry - positions as integers. + First, we collapse the likely sparse codebook down only to + actually represented values/words. This collapsing needs to be + indexed as map-valueless books are used to encode original entry + positions as integers. - Second, we reorder all vectors, including the entry index above, - by sorted bitreversed codeword to allow treeless decode. */ + Second, we reorder all vectors, including the entry index above, + by sorted bitreversed codeword to allow treeless decode. */ - { /* perform sort */ ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries); ogg_uint32_t **codep=alloca(sizeof(*codep)*n); - + if(codes==NULL)goto err_out; for(i=0;icodelist[sortindex[i]]=codes[i]; _ogg_free(codes); - } - c->valuelist=_book_unquantize(s,n,sortindex); - c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0) - c->dec_index[sortindex[n++]]=i; - - c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0) - c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; + c->valuelist=_book_unquantize(s,n,sortindex); + c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); - c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ - if(c->dec_firsttablen<5)c->dec_firsttablen=5; - if(c->dec_firsttablen>8)c->dec_firsttablen=8; + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_index[sortindex[n++]]=i; - tabn=1<dec_firsttablen; - c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); - c->dec_maxlength=0; + c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); + for(n=0,i=0;ientries;i++) + if(s->lengthlist[i]>0) + c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; - for(i=0;idec_maxlengthdec_codelengths[i]) - c->dec_maxlength=c->dec_codelengths[i]; - if(c->dec_codelengths[i]<=c->dec_firsttablen){ - ogg_uint32_t orig=bitreverse(c->codelist[i]); - for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) - c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; + c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ + if(c->dec_firsttablen<5)c->dec_firsttablen=5; + if(c->dec_firsttablen>8)c->dec_firsttablen=8; + + tabn=1<dec_firsttablen; + c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); + c->dec_maxlength=0; + + for(i=0;idec_maxlengthdec_codelengths[i]) + c->dec_maxlength=c->dec_codelengths[i]; + if(c->dec_codelengths[i]<=c->dec_firsttablen){ + ogg_uint32_t orig=bitreverse(c->codelist[i]); + for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) + c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; + } } - } - /* now fill in 'unused' entries in the firsttable with hi/lo search - hints for the non-direct-hits */ - { - ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); - long lo=0,hi=0; - - for(i=0;idec_firsttablen); - if(c->dec_firsttable[bitreverse(word)]==0){ - while((lo+1)codelist[lo+1]<=word)lo++; - while( hi=(c->codelist[hi]&mask))hi++; - - /* we only actually have 15 bits per hint to play with here. - In order to overflow gracefully (nothing breaks, efficiency - just drops), encode as the difference from the extremes. */ - { - unsigned long loval=lo; - unsigned long hival=n-hi; - - if(loval>0x7fff)loval=0x7fff; - if(hival>0x7fff)hival=0x7fff; - c->dec_firsttable[bitreverse(word)]= - 0x80000000UL | (loval<<15) | hival; - } + /* now fill in 'unused' entries in the firsttable with hi/lo search + hints for the non-direct-hits */ + { + ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); + long lo=0,hi=0; + + for(i=0;idec_firsttablen); + if(c->dec_firsttable[bitreverse(word)]==0){ + while((lo+1)codelist[lo+1]<=word)lo++; + while( hi=(c->codelist[hi]&mask))hi++; + + /* we only actually have 15 bits per hint to play with here. + In order to overflow gracefully (nothing breaks, efficiency + just drops), encode as the difference from the extremes. */ + { + unsigned long loval=lo; + unsigned long hival=n-hi; + + if(loval>0x7fff)loval=0x7fff; + if(hival>0x7fff)hival=0x7fff; + c->dec_firsttable[bitreverse(word)]= + 0x80000000UL | (loval<<15) | hival; + } + } } } } - return(0); err_out: @@ -431,157 +427,6 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){ return(-1); } -static float _dist(int el,float *ref, float *b,int step){ - int i; - float acc=0.f; - for(i=0;ic->thresh_tree; - -#if 0 - encode_aux_nearestmatch *nt=book->c->nearest_tree; - encode_aux_pigeonhole *pt=book->c->pigeon_tree; -#endif - int dim=book->dim; - int k,o; - /*int savebest=-1; - float saverr;*/ - - /* do we have a threshhold encode hint? */ - if(tt){ - int index=0,i; - /* find the quant val of each scalar */ - for(k=0,o=step*(dim-1);kthreshvals>>1; - if(a[o]quantthresh[i]){ - - for(;i>0;i--) - if(a[o]>=tt->quantthresh[i-1]) - break; - - }else{ - - for(i++;ithreshvals-1;i++) - if(a[o]quantthresh[i])break; - - } - - index=(index*tt->quantvals)+tt->quantmap[i]; - } - /* regular lattices are easy :-) */ - if(book->c->lengthlist[index]>0) /* is this unused? If so, we'll - use a decision tree after all - and fall through*/ - return(index); - } - -#if 0 - /* do we have a pigeonhole encode hint? */ - if(pt){ - const static_codebook *c=book->c; - int i,besti=-1; - float best=0.f; - int entry=0; - - /* dealing with sequentialness is a pain in the ass */ - if(c->q_sequencep){ - int pv; - long mul=1; - float qlast=0; - for(k=0,o=0;kmin)/pt->del); - if(pv<0 || pv>=pt->mapentries)break; - entry+=pt->pigeonmap[pv]*mul; - mul*=pt->quantvals; - qlast+=pv*pt->del+pt->min; - } - }else{ - for(k=0,o=step*(dim-1);kmin)/pt->del); - if(pv<0 || pv>=pt->mapentries)break; - entry=entry*pt->quantvals+pt->pigeonmap[pv]; - } - } - - /* must be within the pigeonholable range; if we quant outside (or - in an entry that we define no list for), brute force it */ - if(k==dim && pt->fitlength[entry]){ - /* search the abbreviated list */ - long *list=pt->fitlist+pt->fitmap[entry]; - for(i=0;ifitlength[entry];i++){ - float this=_dist(dim,book->valuelist+list[i]*dim,a,step); - if(besti==-1 || thisvaluelist+nt->p[ptr]; - float *q=book->valuelist+nt->q[ptr]; - - for(k=0,o=0;k0.f) /* in A */ - ptr= -nt->ptr0[ptr]; - else /* in B */ - ptr= -nt->ptr1[ptr]; - if(ptr<=0)break; - } - return(-ptr); - } -#endif - - /* brute force it! */ - { - const static_codebook *c=book->c; - int i,besti=-1; - float best=0.f; - float *e=book->valuelist; - for(i=0;ientries;i++){ - if(c->lengthlist[i]>0){ - float this=_dist(dim,e,a,step); - if(besti==-1 || thisvaluelist+savebest*dim)[i]); - fprintf(stderr,"\n" - "bruteforce (entry %d, err %g):",besti,best); - for(i=0;ivaluelist+besti*dim)[i]); - fprintf(stderr,"\n"); - }*/ - return(besti); - } -} - long vorbis_book_codeword(codebook *book,int entry){ if(book->c) /* only use with encode; decode optimizations are allowed to break this */ @@ -624,10 +469,10 @@ static_codebook test1={ 0, 0,0,0,0, NULL, - NULL,NULL + 0 }; static float *test1_result=NULL; - + /* linear, full mapping, nonsequential */ static_codebook test2={ 4,3, @@ -635,7 +480,7 @@ static_codebook test2={ 2, -533200896,1611661312,4,0, full_quantlist1, - NULL,NULL + 0 }; static float test2_result[]={-3,-2,-1,0, 1,2,3,4, 5,0,3,-2}; @@ -646,7 +491,7 @@ static_codebook test3={ 2, -533200896,1611661312,4,1, full_quantlist1, - NULL,NULL + 0 }; static float test3_result[]={-3,-5,-6,-6, 1,3,6,10, 5,5,8,6}; @@ -657,17 +502,17 @@ static_codebook test4={ 1, -533200896,1611661312,4,0, partial_quantlist1, - NULL,NULL + 0 }; static float test4_result[]={-3,-3,-3, 4,-3,-3, -1,-3,-3, - -3, 4,-3, 4, 4,-3, -1, 4,-3, - -3,-1,-3, 4,-1,-3, -1,-1,-3, - -3,-3, 4, 4,-3, 4, -1,-3, 4, - -3, 4, 4, 4, 4, 4, -1, 4, 4, - -3,-1, 4, 4,-1, 4, -1,-1, 4, - -3,-3,-1, 4,-3,-1, -1,-3,-1, - -3, 4,-1, 4, 4,-1, -1, 4,-1, - -3,-1,-1, 4,-1,-1, -1,-1,-1}; + -3, 4,-3, 4, 4,-3, -1, 4,-3, + -3,-1,-3, 4,-1,-3, -1,-1,-3, + -3,-3, 4, 4,-3, 4, -1,-3, 4, + -3, 4, 4, 4, 4, 4, -1, 4, 4, + -3,-1, 4, 4,-1, 4, -1,-1, 4, + -3,-3,-1, 4,-3,-1, -1,-3,-1, + -3, 4,-1, 4, 4,-1, -1, 4,-1, + -3,-1,-1, 4,-1,-1, -1,-1,-1}; /* linear, algorithmic mapping, sequential */ static_codebook test5={ @@ -676,17 +521,17 @@ static_codebook test5={ 1, -533200896,1611661312,4,1, partial_quantlist1, - NULL,NULL + 0 }; static float test5_result[]={-3,-6,-9, 4, 1,-2, -1,-4,-7, - -3, 1,-2, 4, 8, 5, -1, 3, 0, - -3,-4,-7, 4, 3, 0, -1,-2,-5, - -3,-6,-2, 4, 1, 5, -1,-4, 0, - -3, 1, 5, 4, 8,12, -1, 3, 7, - -3,-4, 0, 4, 3, 7, -1,-2, 2, - -3,-6,-7, 4, 1, 0, -1,-4,-5, - -3, 1, 0, 4, 8, 7, -1, 3, 2, - -3,-4,-5, 4, 3, 2, -1,-2,-3}; + -3, 1,-2, 4, 8, 5, -1, 3, 0, + -3,-4,-7, 4, 3, 0, -1,-2,-5, + -3,-6,-2, 4, 1, 5, -1,-4, 0, + -3, 1, 5, 4, 8,12, -1, 3, 7, + -3,-4, 0, 4, 3, 7, -1,-2, 2, + -3,-6,-7, 4, 1, 0, -1,-4,-5, + -3, 1, 0, 4, 8, 7, -1, 3, 2, + -3,-4,-5, 4, 3, 2, -1,-2,-3}; void run_test(static_codebook *b,float *comp){ float *out=_book_unquantize(b,b->entries,NULL); @@ -700,15 +545,15 @@ void run_test(static_codebook *b,float *comp){ for(i=0;ientries*b->dim;i++) if(fabs(out[i]-comp[i])>.0001){ - fprintf(stderr,"disagreement in unquantized and reference data:\n" - "position %d, %g != %g\n",i,out[i],comp[i]); - exit(1); + fprintf(stderr,"disagreement in unquantized and reference data:\n" + "position %d, %g != %g\n",i,out[i],comp[i]); + exit(1); } }else{ if(out){ fprintf(stderr,"_book_unquantize returned a value array: \n" - " correct result should have been NULL\n"); + " correct result should have been NULL\n"); exit(1); } } @@ -727,7 +572,7 @@ int main(){ fprintf(stderr,"OK\nDequant test 5... "); run_test(&test5,test5_result); fprintf(stderr,"OK\n\n"); - + return(0); } diff --git a/libvorbis-1.0.1/lib/smallft.c b/Dependencies/libvorbis/lib/smallft.c similarity index 98% rename from libvorbis-1.0.1/lib/smallft.c rename to Dependencies/libvorbis/lib/smallft.c index 3d30f4d..ae2bc41 100644 --- a/libvorbis-1.0.1/lib/smallft.c +++ b/Dependencies/libvorbis/lib/smallft.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: *unnormalized* fft transform - last mod: $Id: smallft.c,v 1.17 2002/07/11 06:40:50 xiphmont Exp $ + last mod: $Id: smallft.c 16227 2009-07-08 06:58:46Z xiphmont $ ********************************************************************/ @@ -32,6 +32,7 @@ #include #include #include "smallft.h" +#include "os.h" #include "misc.h" static void drfti1(int n, float *wa, int *ifac){ @@ -93,10 +94,10 @@ static void drfti1(int n, float *wa, int *ifac){ argld=(float)ld*argh; fi=0.f; for (ii=2;ii>1; if(idovd; - private_state *b=vd->backend_state; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - oggpack_buffer *opb=&vb->opb; + vorbis_dsp_state *vd= vb ? vb->vd : 0; + private_state *b= vd ? vd->backend_state : 0; + vorbis_info *vi= vd ? vd->vi : 0; + codec_setup_info *ci= vi ? vi->codec_setup : 0; + oggpack_buffer *opb=vb ? &vb->opb : 0; int type,mode,i; - + + if (!vd || !b || !vi || !ci || !opb) { + return OV_EBADPACKET; + } + /* first things first. Make sure decode is ready */ _vorbis_block_ripcord(vb); oggpack_readinit(opb,op->packet,op->bytes); @@ -43,9 +47,15 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ /* read our mode and pre/post windowsize */ mode=oggpack_read(opb,b->modebits); - if(mode==-1)return(OV_EBADPACKET); - + if(mode==-1){ + return(OV_EBADPACKET); + } + vb->mode=mode; + if(!ci->mode_param[mode]){ + return(OV_EBADPACKET); + } + vb->W=ci->mode_param[mode]->blockflag; if(vb->W){ @@ -53,12 +63,14 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ only for window selection */ vb->lW=oggpack_read(opb,1); vb->nW=oggpack_read(opb,1); - if(vb->nW==-1) return(OV_EBADPACKET); + if(vb->nW==-1){ + return(OV_EBADPACKET); + } }else{ vb->lW=0; vb->nW=0; } - + /* more setup */ vb->granulepos=op->granulepos; vb->sequence=op->packetno; @@ -74,7 +86,7 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ type=ci->map_type[ci->mode_param[mode]->mapping]; return(_mapping_P[type]->inverse(vb,ci->map_param[ci->mode_param[mode]-> - mapping])); + mapping])); } /* used to track pcm position without actually performing decode. @@ -86,7 +98,7 @@ int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){ codec_setup_info *ci=vi->codec_setup; oggpack_buffer *opb=&vb->opb; int mode; - + /* first things first. Make sure decode is ready */ _vorbis_block_ripcord(vb); oggpack_readinit(opb,op->packet,op->bytes); @@ -100,7 +112,7 @@ int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){ /* read our mode and pre/post windowsize */ mode=oggpack_read(opb,b->modebits); if(mode==-1)return(OV_EBADPACKET); - + vb->mode=mode; vb->W=ci->mode_param[mode]->blockflag; if(vb->W){ @@ -111,7 +123,7 @@ int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){ vb->lW=0; vb->nW=0; } - + /* more setup */ vb->granulepos=op->granulepos; vb->sequence=op->packetno; @@ -128,7 +140,7 @@ long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ codec_setup_info *ci=vi->codec_setup; oggpack_buffer opb; int mode; - + oggpack_readinit(&opb,op->packet,op->bytes); /* Check the packet type */ @@ -155,7 +167,7 @@ long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ int vorbis_synthesis_halfrate(vorbis_info *vi,int flag){ /* set / clear half-sample-rate mode */ codec_setup_info *ci=vi->codec_setup; - + /* right now, our MDCT can't handle < 64 sample windows. */ if(ci->blocksizes[0]<=64 && flag)return -1; ci->halfrate_flag=(flag?1:0); @@ -166,5 +178,3 @@ int vorbis_synthesis_halfrate_p(vorbis_info *vi){ codec_setup_info *ci=vi->codec_setup; return ci->halfrate_flag; } - - diff --git a/libvorbis-1.0.1/lib/tone.c b/Dependencies/libvorbis/lib/tone.c similarity index 86% rename from libvorbis-1.0.1/lib/tone.c rename to Dependencies/libvorbis/lib/tone.c index daf2f93..73afc67 100644 --- a/libvorbis-1.0.1/lib/tone.c +++ b/Dependencies/libvorbis/lib/tone.c @@ -44,10 +44,10 @@ int main (int argc,char *argv[]){ if(ival<-32768.f)ival=-32768.f; fprintf(stdout,"%c%c%c%c", - (char)(ival&0xff), - (char)((ival>>8)&0xff), - (char)(ival&0xff), - (char)((ival>>8)&0xff)); + (char)(ival&0xff), + (char)((ival>>8)&0xff), + (char)(ival&0xff), + (char)((ival>>8)&0xff)); } return(0); } diff --git a/Dependencies/libvorbis/lib/vorbisenc.c b/Dependencies/libvorbis/lib/vorbisenc.c new file mode 100644 index 0000000..f0f7c08 --- /dev/null +++ b/Dependencies/libvorbis/lib/vorbisenc.c @@ -0,0 +1,1215 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: simple programmatic interface for encoder mode setup + last mod: $Id: vorbisenc.c 17028 2010-03-25 05:22:15Z xiphmont $ + + ********************************************************************/ + +#include +#include +#include + +#include "vorbis/codec.h" +#include "vorbis/vorbisenc.h" + +#include "codec_internal.h" + +#include "os.h" +#include "misc.h" + +/* careful with this; it's using static array sizing to make managing + all the modes a little less annoying. If we use a residue backend + with > 12 partition types, or a different division of iteration, + this needs to be updated. */ +typedef struct { + const static_codebook *books[12][4]; +} static_bookblock; + +typedef struct { + int res_type; + int limit_type; /* 0 lowpass limited, 1 point stereo limited */ + int grouping; + const vorbis_info_residue0 *res; + const static_codebook *book_aux; + const static_codebook *book_aux_managed; + const static_bookblock *books_base; + const static_bookblock *books_base_managed; +} vorbis_residue_template; + +typedef struct { + const vorbis_info_mapping0 *map; + const vorbis_residue_template *res; +} vorbis_mapping_template; + +typedef struct vp_adjblock{ + int block[P_BANDS]; +} vp_adjblock; + +typedef struct { + int data[NOISE_COMPAND_LEVELS]; +} compandblock; + +/* high level configuration information for setting things up + step-by-step with the detailed vorbis_encode_ctl interface. + There's a fair amount of redundancy such that interactive setup + does not directly deal with any vorbis_info or codec_setup_info + initialization; it's all stored (until full init) in this highlevel + setup, then flushed out to the real codec setup structs later. */ + +typedef struct { + int att[P_NOISECURVES]; + float boost; + float decay; +} att3; +typedef struct { int data[P_NOISECURVES]; } adj3; + +typedef struct { + int pre[PACKETBLOBS]; + int post[PACKETBLOBS]; + float kHz[PACKETBLOBS]; + float lowpasskHz[PACKETBLOBS]; +} adj_stereo; + +typedef struct { + int lo; + int hi; + int fixed; +} noiseguard; +typedef struct { + int data[P_NOISECURVES][17]; +} noise3; + +typedef struct { + int mappings; + const double *rate_mapping; + const double *quality_mapping; + int coupling_restriction; + long samplerate_min_restriction; + long samplerate_max_restriction; + + + const int *blocksize_short; + const int *blocksize_long; + + const att3 *psy_tone_masteratt; + const int *psy_tone_0dB; + const int *psy_tone_dBsuppress; + + const vp_adjblock *psy_tone_adj_impulse; + const vp_adjblock *psy_tone_adj_long; + const vp_adjblock *psy_tone_adj_other; + + const noiseguard *psy_noiseguards; + const noise3 *psy_noise_bias_impulse; + const noise3 *psy_noise_bias_padding; + const noise3 *psy_noise_bias_trans; + const noise3 *psy_noise_bias_long; + const int *psy_noise_dBsuppress; + + const compandblock *psy_noise_compand; + const double *psy_noise_compand_short_mapping; + const double *psy_noise_compand_long_mapping; + + const int *psy_noise_normal_start[2]; + const int *psy_noise_normal_partition[2]; + const double *psy_noise_normal_thresh; + + const int *psy_ath_float; + const int *psy_ath_abs; + + const double *psy_lowpass; + + const vorbis_info_psy_global *global_params; + const double *global_mapping; + const adj_stereo *stereo_modes; + + const static_codebook *const *const *const floor_books; + const vorbis_info_floor1 *floor_params; + const int floor_mappings; + const int **floor_mapping_list; + + const vorbis_mapping_template *maps; +} ve_setup_data_template; + +/* a few static coder conventions */ +static const vorbis_info_mode _mode_template[2]={ + {0,0,0,0}, + {1,0,0,1} +}; + +static const vorbis_info_mapping0 _map_nominal[2]={ + {1, {0,0}, {0}, {0}, 1,{0},{1}}, + {1, {0,0}, {1}, {1}, 1,{0},{1}} +}; + +#include "modes/setup_44.h" +#include "modes/setup_44u.h" +#include "modes/setup_44p51.h" +#include "modes/setup_32.h" +#include "modes/setup_8.h" +#include "modes/setup_11.h" +#include "modes/setup_16.h" +#include "modes/setup_22.h" +#include "modes/setup_X.h" + +static const ve_setup_data_template *const setup_list[]={ + &ve_setup_44_stereo, + &ve_setup_44_51, + &ve_setup_44_uncoupled, + + &ve_setup_32_stereo, + &ve_setup_32_uncoupled, + + &ve_setup_22_stereo, + &ve_setup_22_uncoupled, + &ve_setup_16_stereo, + &ve_setup_16_uncoupled, + + &ve_setup_11_stereo, + &ve_setup_11_uncoupled, + &ve_setup_8_stereo, + &ve_setup_8_uncoupled, + + &ve_setup_X_stereo, + &ve_setup_X_uncoupled, + &ve_setup_XX_stereo, + &ve_setup_XX_uncoupled, + 0 +}; + +static void vorbis_encode_floor_setup(vorbis_info *vi,int s, + const static_codebook *const *const *const books, + const vorbis_info_floor1 *in, + const int *x){ + int i,k,is=s; + vorbis_info_floor1 *f=_ogg_calloc(1,sizeof(*f)); + codec_setup_info *ci=vi->codec_setup; + + memcpy(f,in+x[is],sizeof(*f)); + + /* books */ + { + int partitions=f->partitions; + int maxclass=-1; + int maxbook=-1; + for(i=0;ipartitionclass[i]>maxclass)maxclass=f->partitionclass[i]; + for(i=0;i<=maxclass;i++){ + if(f->class_book[i]>maxbook)maxbook=f->class_book[i]; + f->class_book[i]+=ci->books; + for(k=0;k<(1<class_subs[i]);k++){ + if(f->class_subbook[i][k]>maxbook)maxbook=f->class_subbook[i][k]; + if(f->class_subbook[i][k]>=0)f->class_subbook[i][k]+=ci->books; + } + } + + for(i=0;i<=maxbook;i++) + ci->book_param[ci->books++]=(static_codebook *)books[x[is]][i]; + } + + /* for now, we're only using floor 1 */ + ci->floor_type[ci->floors]=1; + ci->floor_param[ci->floors]=f; + ci->floors++; + + return; +} + +static void vorbis_encode_global_psych_setup(vorbis_info *vi,double s, + const vorbis_info_psy_global *in, + const double *x){ + int i,is=s; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy_global *g=&ci->psy_g_param; + + memcpy(g,in+(int)x[is],sizeof(*g)); + + ds=x[is]*(1.-ds)+x[is+1]*ds; + is=(int)ds; + ds-=is; + if(ds==0 && is>0){ + is--; + ds=1.; + } + + /* interpolate the trigger threshholds */ + for(i=0;i<4;i++){ + g->preecho_thresh[i]=in[is].preecho_thresh[i]*(1.-ds)+in[is+1].preecho_thresh[i]*ds; + g->postecho_thresh[i]=in[is].postecho_thresh[i]*(1.-ds)+in[is+1].postecho_thresh[i]*ds; + } + g->ampmax_att_per_sec=ci->hi.amplitude_track_dBpersec; + return; +} + +static void vorbis_encode_global_stereo(vorbis_info *vi, + const highlevel_encode_setup *const hi, + const adj_stereo *p){ + float s=hi->stereo_point_setting; + int i,is=s; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy_global *g=&ci->psy_g_param; + + if(p){ + memcpy(g->coupling_prepointamp,p[is].pre,sizeof(*p[is].pre)*PACKETBLOBS); + memcpy(g->coupling_postpointamp,p[is].post,sizeof(*p[is].post)*PACKETBLOBS); + + if(hi->managed){ + /* interpolate the kHz threshholds */ + for(i=0;icoupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; + g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; + g->coupling_pkHz[i]=kHz; + + kHz=p[is].lowpasskHz[i]*(1.-ds)+p[is+1].lowpasskHz[i]*ds; + g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; + g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; + + } + }else{ + float kHz=p[is].kHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].kHz[PACKETBLOBS/2]*ds; + for(i=0;icoupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; + g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; + g->coupling_pkHz[i]=kHz; + } + + kHz=p[is].lowpasskHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].lowpasskHz[PACKETBLOBS/2]*ds; + for(i=0;isliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; + g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; + } + } + }else{ + for(i=0;isliding_lowpass[0][i]=ci->blocksizes[0]; + g->sliding_lowpass[1][i]=ci->blocksizes[1]; + } + } + return; +} + +static void vorbis_encode_psyset_setup(vorbis_info *vi,double s, + const int *nn_start, + const int *nn_partition, + const double *nn_thresh, + int block){ + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + highlevel_encode_setup *hi=&ci->hi; + int is=s; + + if(block>=ci->psys) + ci->psys=block+1; + if(!p){ + p=_ogg_calloc(1,sizeof(*p)); + ci->psy_param[block]=p; + } + + memcpy(p,&_psy_info_template,sizeof(*p)); + p->blockflag=block>>1; + + if(hi->noise_normalize_p){ + p->normal_p=1; + p->normal_start=nn_start[is]; + p->normal_partition=nn_partition[is]; + p->normal_thresh=nn_thresh[is]; + } + + return; +} + +static void vorbis_encode_tonemask_setup(vorbis_info *vi,double s,int block, + const att3 *att, + const int *max, + const vp_adjblock *in){ + int i,is=s; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + + /* 0 and 2 are only used by bitmanagement, but there's no harm to always + filling the values in here */ + p->tone_masteratt[0]=att[is].att[0]*(1.-ds)+att[is+1].att[0]*ds; + p->tone_masteratt[1]=att[is].att[1]*(1.-ds)+att[is+1].att[1]*ds; + p->tone_masteratt[2]=att[is].att[2]*(1.-ds)+att[is+1].att[2]*ds; + p->tone_centerboost=att[is].boost*(1.-ds)+att[is+1].boost*ds; + p->tone_decay=att[is].decay*(1.-ds)+att[is+1].decay*ds; + + p->max_curve_dB=max[is]*(1.-ds)+max[is+1]*ds; + + for(i=0;itoneatt[i]=in[is].block[i]*(1.-ds)+in[is+1].block[i]*ds; + return; +} + + +static void vorbis_encode_compand_setup(vorbis_info *vi,double s,int block, + const compandblock *in, + const double *x){ + int i,is=s; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + + ds=x[is]*(1.-ds)+x[is+1]*ds; + is=(int)ds; + ds-=is; + if(ds==0 && is>0){ + is--; + ds=1.; + } + + /* interpolate the compander settings */ + for(i=0;inoisecompand[i]=in[is].data[i]*(1.-ds)+in[is+1].data[i]*ds; + return; +} + +static void vorbis_encode_peak_setup(vorbis_info *vi,double s,int block, + const int *suppress){ + int is=s; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + + p->tone_abs_limit=suppress[is]*(1.-ds)+suppress[is+1]*ds; + + return; +} + +static void vorbis_encode_noisebias_setup(vorbis_info *vi,double s,int block, + const int *suppress, + const noise3 *in, + const noiseguard *guard, + double userbias){ + int i,is=s,j; + double ds=s-is; + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + + p->noisemaxsupp=suppress[is]*(1.-ds)+suppress[is+1]*ds; + p->noisewindowlomin=guard[block].lo; + p->noisewindowhimin=guard[block].hi; + p->noisewindowfixed=guard[block].fixed; + + for(j=0;jnoiseoff[j][i]=in[is].data[j][i]*(1.-ds)+in[is+1].data[j][i]*ds; + + /* impulse blocks may take a user specified bias to boost the + nominal/high noise encoding depth */ + for(j=0;jnoiseoff[j][0]+6; /* the lowest it can go */ + for(i=0;inoiseoff[j][i]+=userbias; + if(p->noiseoff[j][i]noiseoff[j][i]=min; + } + } + + return; +} + +static void vorbis_encode_ath_setup(vorbis_info *vi,int block){ + codec_setup_info *ci=vi->codec_setup; + vorbis_info_psy *p=ci->psy_param[block]; + + p->ath_adjatt=ci->hi.ath_floating_dB; + p->ath_maxatt=ci->hi.ath_absolute_dB; + return; +} + + +static int book_dup_or_new(codec_setup_info *ci,const static_codebook *book){ + int i; + for(i=0;ibooks;i++) + if(ci->book_param[i]==book)return(i); + + return(ci->books++); +} + +static void vorbis_encode_blocksize_setup(vorbis_info *vi,double s, + const int *shortb,const int *longb){ + + codec_setup_info *ci=vi->codec_setup; + int is=s; + + int blockshort=shortb[is]; + int blocklong=longb[is]; + ci->blocksizes[0]=blockshort; + ci->blocksizes[1]=blocklong; + +} + +static void vorbis_encode_residue_setup(vorbis_info *vi, + int number, int block, + const vorbis_residue_template *res){ + + codec_setup_info *ci=vi->codec_setup; + int i; + + vorbis_info_residue0 *r=ci->residue_param[number]= + _ogg_malloc(sizeof(*r)); + + memcpy(r,res->res,sizeof(*r)); + if(ci->residues<=number)ci->residues=number+1; + + r->grouping=res->grouping; + ci->residue_type[number]=res->res_type; + + /* fill in all the books */ + { + int booklist=0,k; + + if(ci->hi.managed){ + for(i=0;ipartitions;i++) + for(k=0;k<4;k++) + if(res->books_base_managed->books[i][k]) + r->secondstages[i]|=(1<groupbook=book_dup_or_new(ci,res->book_aux_managed); + ci->book_param[r->groupbook]=(static_codebook *)res->book_aux_managed; + + for(i=0;ipartitions;i++){ + for(k=0;k<4;k++){ + if(res->books_base_managed->books[i][k]){ + int bookid=book_dup_or_new(ci,res->books_base_managed->books[i][k]); + r->booklist[booklist++]=bookid; + ci->book_param[bookid]=(static_codebook *)res->books_base_managed->books[i][k]; + } + } + } + + }else{ + + for(i=0;ipartitions;i++) + for(k=0;k<4;k++) + if(res->books_base->books[i][k]) + r->secondstages[i]|=(1<groupbook=book_dup_or_new(ci,res->book_aux); + ci->book_param[r->groupbook]=(static_codebook *)res->book_aux; + + for(i=0;ipartitions;i++){ + for(k=0;k<4;k++){ + if(res->books_base->books[i][k]){ + int bookid=book_dup_or_new(ci,res->books_base->books[i][k]); + r->booklist[booklist++]=bookid; + ci->book_param[bookid]=(static_codebook *)res->books_base->books[i][k]; + } + } + } + } + } + + /* lowpass setup/pointlimit */ + { + double freq=ci->hi.lowpass_kHz*1000.; + vorbis_info_floor1 *f=ci->floor_param[block]; /* by convention */ + double nyq=vi->rate/2.; + long blocksize=ci->blocksizes[block]>>1; + + /* lowpass needs to be set in the floor and the residue. */ + if(freq>nyq)freq=nyq; + /* in the floor, the granularity can be very fine; it doesn't alter + the encoding structure, only the samples used to fit the floor + approximation */ + f->n=freq/nyq*blocksize; + + /* this res may by limited by the maximum pointlimit of the mode, + not the lowpass. the floor is always lowpass limited. */ + switch(res->limit_type){ + case 1: /* point stereo limited */ + if(ci->hi.managed) + freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS-1]*1000.; + else + freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS/2]*1000.; + if(freq>nyq)freq=nyq; + break; + case 2: /* LFE channel; lowpass at ~ 250Hz */ + freq=250; + break; + default: + /* already set */ + break; + } + + /* in the residue, we're constrained, physically, by partition + boundaries. We still lowpass 'wherever', but we have to round up + here to next boundary, or the vorbis spec will round it *down* to + previous boundary in encode/decode */ + if(ci->residue_type[number]==2){ + /* residue 2 bundles together multiple channels; used by stereo + and surround. Count the channels in use */ + /* Multiple maps/submaps can point to the same residue. In the case + of residue 2, they all better have the same number of + channels/samples. */ + int j,k,ch=0; + for(i=0;imaps&&ch==0;i++){ + vorbis_info_mapping0 *mi=(vorbis_info_mapping0 *)ci->map_param[i]; + for(j=0;jsubmaps && ch==0;j++) + if(mi->residuesubmap[j]==number) /* we found a submap referencing theis residue backend */ + for(k=0;kchannels;k++) + if(mi->chmuxlist[k]==j) /* this channel belongs to the submap */ + ch++; + } + + r->end=(int)((freq/nyq*blocksize*ch)/r->grouping+.9)* /* round up only if we're well past */ + r->grouping; + /* the blocksize and grouping may disagree at the end */ + if(r->end>blocksize*ch)r->end=blocksize*ch/r->grouping*r->grouping; + + }else{ + + r->end=(int)((freq/nyq*blocksize)/r->grouping+.9)* /* round up only if we're well past */ + r->grouping; + /* the blocksize and grouping may disagree at the end */ + if(r->end>blocksize)r->end=blocksize/r->grouping*r->grouping; + + } + + if(r->end==0)r->end=r->grouping; /* LFE channel */ + + } +} + +/* we assume two maps in this encoder */ +static void vorbis_encode_map_n_res_setup(vorbis_info *vi,double s, + const vorbis_mapping_template *maps){ + + codec_setup_info *ci=vi->codec_setup; + int i,j,is=s,modes=2; + const vorbis_info_mapping0 *map=maps[is].map; + const vorbis_info_mode *mode=_mode_template; + const vorbis_residue_template *res=maps[is].res; + + if(ci->blocksizes[0]==ci->blocksizes[1])modes=1; + + for(i=0;imap_param[i]=_ogg_calloc(1,sizeof(*map)); + ci->mode_param[i]=_ogg_calloc(1,sizeof(*mode)); + + memcpy(ci->mode_param[i],mode+i,sizeof(*_mode_template)); + if(i>=ci->modes)ci->modes=i+1; + + ci->map_type[i]=0; + memcpy(ci->map_param[i],map+i,sizeof(*map)); + if(i>=ci->maps)ci->maps=i+1; + + for(j=0;jcodec_setup; + highlevel_encode_setup *hi=&ci->hi; + ve_setup_data_template *setup=(ve_setup_data_template *)hi->setup; + int is=hi->base_setting; + double ds=hi->base_setting-is; + int ch=vi->channels; + const double *r=setup->rate_mapping; + + if(r==NULL) + return(-1); + + return((r[is]*(1.-ds)+r[is+1]*ds)*ch); +} + +static const void *get_setup_template(long ch,long srate, + double req,int q_or_bitrate, + double *base_setting){ + int i=0,j; + if(q_or_bitrate)req/=ch; + + while(setup_list[i]){ + if(setup_list[i]->coupling_restriction==-1 || + setup_list[i]->coupling_restriction==ch){ + if(srate>=setup_list[i]->samplerate_min_restriction && + srate<=setup_list[i]->samplerate_max_restriction){ + int mappings=setup_list[i]->mappings; + const double *map=(q_or_bitrate? + setup_list[i]->rate_mapping: + setup_list[i]->quality_mapping); + + /* the template matches. Does the requested quality mode + fall within this template's modes? */ + if(reqmap[setup_list[i]->mappings]){++i;continue;} + for(j=0;j=map[j] && reqcodec_setup; + ve_setup_data_template *setup=NULL; + highlevel_encode_setup *hi=&ci->hi; + + if(ci==NULL)return(OV_EINVAL); + if(!hi->impulse_block_p)i0=1; + + /* too low/high an ATH floater is nonsensical, but doesn't break anything */ + if(hi->ath_floating_dB>-80)hi->ath_floating_dB=-80; + if(hi->ath_floating_dB<-200)hi->ath_floating_dB=-200; + + /* again, bound this to avoid the app shooting itself int he foot + too badly */ + if(hi->amplitude_track_dBpersec>0.)hi->amplitude_track_dBpersec=0.; + if(hi->amplitude_track_dBpersec<-99999.)hi->amplitude_track_dBpersec=-99999.; + + /* get the appropriate setup template; matches the fetch in previous + stages */ + setup=(ve_setup_data_template *)hi->setup; + if(setup==NULL)return(OV_EINVAL); + + hi->set_in_stone=1; + /* choose block sizes from configured sizes as well as paying + attention to long_block_p and short_block_p. If the configured + short and long blocks are the same length, we set long_block_p + and unset short_block_p */ + vorbis_encode_blocksize_setup(vi,hi->base_setting, + setup->blocksize_short, + setup->blocksize_long); + if(ci->blocksizes[0]==ci->blocksizes[1])singleblock=1; + + /* floor setup; choose proper floor params. Allocated on the floor + stack in order; if we alloc only a single long floor, it's 0 */ + for(i=0;ifloor_mappings;i++) + vorbis_encode_floor_setup(vi,hi->base_setting, + setup->floor_books, + setup->floor_params, + setup->floor_mapping_list[i]); + + /* setup of [mostly] short block detection and stereo*/ + vorbis_encode_global_psych_setup(vi,hi->trigger_setting, + setup->global_params, + setup->global_mapping); + vorbis_encode_global_stereo(vi,hi,setup->stereo_modes); + + /* basic psych setup and noise normalization */ + vorbis_encode_psyset_setup(vi,hi->base_setting, + setup->psy_noise_normal_start[0], + setup->psy_noise_normal_partition[0], + setup->psy_noise_normal_thresh, + 0); + vorbis_encode_psyset_setup(vi,hi->base_setting, + setup->psy_noise_normal_start[0], + setup->psy_noise_normal_partition[0], + setup->psy_noise_normal_thresh, + 1); + if(!singleblock){ + vorbis_encode_psyset_setup(vi,hi->base_setting, + setup->psy_noise_normal_start[1], + setup->psy_noise_normal_partition[1], + setup->psy_noise_normal_thresh, + 2); + vorbis_encode_psyset_setup(vi,hi->base_setting, + setup->psy_noise_normal_start[1], + setup->psy_noise_normal_partition[1], + setup->psy_noise_normal_thresh, + 3); + } + + /* tone masking setup */ + vorbis_encode_tonemask_setup(vi,hi->block[i0].tone_mask_setting,0, + setup->psy_tone_masteratt, + setup->psy_tone_0dB, + setup->psy_tone_adj_impulse); + vorbis_encode_tonemask_setup(vi,hi->block[1].tone_mask_setting,1, + setup->psy_tone_masteratt, + setup->psy_tone_0dB, + setup->psy_tone_adj_other); + if(!singleblock){ + vorbis_encode_tonemask_setup(vi,hi->block[2].tone_mask_setting,2, + setup->psy_tone_masteratt, + setup->psy_tone_0dB, + setup->psy_tone_adj_other); + vorbis_encode_tonemask_setup(vi,hi->block[3].tone_mask_setting,3, + setup->psy_tone_masteratt, + setup->psy_tone_0dB, + setup->psy_tone_adj_long); + } + + /* noise companding setup */ + vorbis_encode_compand_setup(vi,hi->block[i0].noise_compand_setting,0, + setup->psy_noise_compand, + setup->psy_noise_compand_short_mapping); + vorbis_encode_compand_setup(vi,hi->block[1].noise_compand_setting,1, + setup->psy_noise_compand, + setup->psy_noise_compand_short_mapping); + if(!singleblock){ + vorbis_encode_compand_setup(vi,hi->block[2].noise_compand_setting,2, + setup->psy_noise_compand, + setup->psy_noise_compand_long_mapping); + vorbis_encode_compand_setup(vi,hi->block[3].noise_compand_setting,3, + setup->psy_noise_compand, + setup->psy_noise_compand_long_mapping); + } + + /* peak guarding setup */ + vorbis_encode_peak_setup(vi,hi->block[i0].tone_peaklimit_setting,0, + setup->psy_tone_dBsuppress); + vorbis_encode_peak_setup(vi,hi->block[1].tone_peaklimit_setting,1, + setup->psy_tone_dBsuppress); + if(!singleblock){ + vorbis_encode_peak_setup(vi,hi->block[2].tone_peaklimit_setting,2, + setup->psy_tone_dBsuppress); + vorbis_encode_peak_setup(vi,hi->block[3].tone_peaklimit_setting,3, + setup->psy_tone_dBsuppress); + } + + /* noise bias setup */ + vorbis_encode_noisebias_setup(vi,hi->block[i0].noise_bias_setting,0, + setup->psy_noise_dBsuppress, + setup->psy_noise_bias_impulse, + setup->psy_noiseguards, + (i0==0?hi->impulse_noisetune:0.)); + vorbis_encode_noisebias_setup(vi,hi->block[1].noise_bias_setting,1, + setup->psy_noise_dBsuppress, + setup->psy_noise_bias_padding, + setup->psy_noiseguards,0.); + if(!singleblock){ + vorbis_encode_noisebias_setup(vi,hi->block[2].noise_bias_setting,2, + setup->psy_noise_dBsuppress, + setup->psy_noise_bias_trans, + setup->psy_noiseguards,0.); + vorbis_encode_noisebias_setup(vi,hi->block[3].noise_bias_setting,3, + setup->psy_noise_dBsuppress, + setup->psy_noise_bias_long, + setup->psy_noiseguards,0.); + } + + vorbis_encode_ath_setup(vi,0); + vorbis_encode_ath_setup(vi,1); + if(!singleblock){ + vorbis_encode_ath_setup(vi,2); + vorbis_encode_ath_setup(vi,3); + } + + vorbis_encode_map_n_res_setup(vi,hi->base_setting,setup->maps); + + /* set bitrate readonlies and management */ + if(hi->bitrate_av>0) + vi->bitrate_nominal=hi->bitrate_av; + else{ + vi->bitrate_nominal=setting_to_approx_bitrate(vi); + } + + vi->bitrate_lower=hi->bitrate_min; + vi->bitrate_upper=hi->bitrate_max; + if(hi->bitrate_av) + vi->bitrate_window=(double)hi->bitrate_reservoir/hi->bitrate_av; + else + vi->bitrate_window=0.; + + if(hi->managed){ + ci->bi.avg_rate=hi->bitrate_av; + ci->bi.min_rate=hi->bitrate_min; + ci->bi.max_rate=hi->bitrate_max; + + ci->bi.reservoir_bits=hi->bitrate_reservoir; + ci->bi.reservoir_bias= + hi->bitrate_reservoir_bias; + + ci->bi.slew_damp=hi->bitrate_av_damp; + + } + + return(0); + +} + +static void vorbis_encode_setup_setting(vorbis_info *vi, + long channels, + long rate){ + int i,is; + codec_setup_info *ci=vi->codec_setup; + highlevel_encode_setup *hi=&ci->hi; + const ve_setup_data_template *setup=hi->setup; + double ds; + + vi->version=0; + vi->channels=channels; + vi->rate=rate; + + hi->impulse_block_p=1; + hi->noise_normalize_p=1; + + is=hi->base_setting; + ds=hi->base_setting-is; + + hi->stereo_point_setting=hi->base_setting; + + if(!hi->lowpass_altered) + hi->lowpass_kHz= + setup->psy_lowpass[is]*(1.-ds)+setup->psy_lowpass[is+1]*ds; + + hi->ath_floating_dB=setup->psy_ath_float[is]*(1.-ds)+ + setup->psy_ath_float[is+1]*ds; + hi->ath_absolute_dB=setup->psy_ath_abs[is]*(1.-ds)+ + setup->psy_ath_abs[is+1]*ds; + + hi->amplitude_track_dBpersec=-6.; + hi->trigger_setting=hi->base_setting; + + for(i=0;i<4;i++){ + hi->block[i].tone_mask_setting=hi->base_setting; + hi->block[i].tone_peaklimit_setting=hi->base_setting; + hi->block[i].noise_bias_setting=hi->base_setting; + hi->block[i].noise_compand_setting=hi->base_setting; + } +} + +int vorbis_encode_setup_vbr(vorbis_info *vi, + long channels, + long rate, + float quality){ + codec_setup_info *ci=vi->codec_setup; + highlevel_encode_setup *hi=&ci->hi; + + quality+=.0000001; + if(quality>=1.)quality=.9999; + + hi->req=quality; + hi->setup=get_setup_template(channels,rate,quality,0,&hi->base_setting); + if(!hi->setup)return OV_EIMPL; + + vorbis_encode_setup_setting(vi,channels,rate); + hi->managed=0; + hi->coupling_p=1; + + return 0; +} + +int vorbis_encode_init_vbr(vorbis_info *vi, + long channels, + long rate, + + float base_quality /* 0. to 1. */ + ){ + int ret=0; + + ret=vorbis_encode_setup_vbr(vi,channels,rate,base_quality); + + if(ret){ + vorbis_info_clear(vi); + return ret; + } + ret=vorbis_encode_setup_init(vi); + if(ret) + vorbis_info_clear(vi); + return(ret); +} + +int vorbis_encode_setup_managed(vorbis_info *vi, + long channels, + long rate, + + long max_bitrate, + long nominal_bitrate, + long min_bitrate){ + + codec_setup_info *ci=vi->codec_setup; + highlevel_encode_setup *hi=&ci->hi; + double tnominal=nominal_bitrate; + + if(nominal_bitrate<=0.){ + if(max_bitrate>0.){ + if(min_bitrate>0.) + nominal_bitrate=(max_bitrate+min_bitrate)*.5; + else + nominal_bitrate=max_bitrate*.875; + }else{ + if(min_bitrate>0.){ + nominal_bitrate=min_bitrate; + }else{ + return(OV_EINVAL); + } + } + } + + hi->req=nominal_bitrate; + hi->setup=get_setup_template(channels,rate,nominal_bitrate,1,&hi->base_setting); + if(!hi->setup)return OV_EIMPL; + + vorbis_encode_setup_setting(vi,channels,rate); + + /* initialize management with sane defaults */ + hi->coupling_p=1; + hi->managed=1; + hi->bitrate_min=min_bitrate; + hi->bitrate_max=max_bitrate; + hi->bitrate_av=tnominal; + hi->bitrate_av_damp=1.5f; /* full range in no less than 1.5 second */ + hi->bitrate_reservoir=nominal_bitrate*2; + hi->bitrate_reservoir_bias=.1; /* bias toward hoarding bits */ + + return(0); + +} + +int vorbis_encode_init(vorbis_info *vi, + long channels, + long rate, + + long max_bitrate, + long nominal_bitrate, + long min_bitrate){ + + int ret=vorbis_encode_setup_managed(vi,channels,rate, + max_bitrate, + nominal_bitrate, + min_bitrate); + if(ret){ + vorbis_info_clear(vi); + return(ret); + } + + ret=vorbis_encode_setup_init(vi); + if(ret) + vorbis_info_clear(vi); + return(ret); +} + +int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg){ + if(vi){ + codec_setup_info *ci=vi->codec_setup; + highlevel_encode_setup *hi=&ci->hi; + int setp=(number&0xf); /* a read request has a low nibble of 0 */ + + if(setp && hi->set_in_stone)return(OV_EINVAL); + + switch(number){ + + /* now deprecated *****************/ + case OV_ECTL_RATEMANAGE_GET: + { + + struct ovectl_ratemanage_arg *ai= + (struct ovectl_ratemanage_arg *)arg; + + ai->management_active=hi->managed; + ai->bitrate_hard_window=ai->bitrate_av_window= + (double)hi->bitrate_reservoir/vi->rate; + ai->bitrate_av_window_center=1.; + ai->bitrate_hard_min=hi->bitrate_min; + ai->bitrate_hard_max=hi->bitrate_max; + ai->bitrate_av_lo=hi->bitrate_av; + ai->bitrate_av_hi=hi->bitrate_av; + + } + return(0); + + /* now deprecated *****************/ + case OV_ECTL_RATEMANAGE_SET: + { + struct ovectl_ratemanage_arg *ai= + (struct ovectl_ratemanage_arg *)arg; + if(ai==NULL){ + hi->managed=0; + }else{ + hi->managed=ai->management_active; + vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_AVG,arg); + vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_HARD,arg); + } + } + return 0; + + /* now deprecated *****************/ + case OV_ECTL_RATEMANAGE_AVG: + { + struct ovectl_ratemanage_arg *ai= + (struct ovectl_ratemanage_arg *)arg; + if(ai==NULL){ + hi->bitrate_av=0; + }else{ + hi->bitrate_av=(ai->bitrate_av_lo+ai->bitrate_av_hi)*.5; + } + } + return(0); + /* now deprecated *****************/ + case OV_ECTL_RATEMANAGE_HARD: + { + struct ovectl_ratemanage_arg *ai= + (struct ovectl_ratemanage_arg *)arg; + if(ai==NULL){ + hi->bitrate_min=0; + hi->bitrate_max=0; + }else{ + hi->bitrate_min=ai->bitrate_hard_min; + hi->bitrate_max=ai->bitrate_hard_max; + hi->bitrate_reservoir=ai->bitrate_hard_window* + (hi->bitrate_max+hi->bitrate_min)*.5; + } + if(hi->bitrate_reservoir<128.) + hi->bitrate_reservoir=128.; + } + return(0); + + /* replacement ratemanage interface */ + case OV_ECTL_RATEMANAGE2_GET: + { + struct ovectl_ratemanage2_arg *ai= + (struct ovectl_ratemanage2_arg *)arg; + if(ai==NULL)return OV_EINVAL; + + ai->management_active=hi->managed; + ai->bitrate_limit_min_kbps=hi->bitrate_min/1000; + ai->bitrate_limit_max_kbps=hi->bitrate_max/1000; + ai->bitrate_average_kbps=hi->bitrate_av/1000; + ai->bitrate_average_damping=hi->bitrate_av_damp; + ai->bitrate_limit_reservoir_bits=hi->bitrate_reservoir; + ai->bitrate_limit_reservoir_bias=hi->bitrate_reservoir_bias; + } + return (0); + case OV_ECTL_RATEMANAGE2_SET: + { + struct ovectl_ratemanage2_arg *ai= + (struct ovectl_ratemanage2_arg *)arg; + if(ai==NULL){ + hi->managed=0; + }else{ + /* sanity check; only catch invariant violations */ + if(ai->bitrate_limit_min_kbps>0 && + ai->bitrate_average_kbps>0 && + ai->bitrate_limit_min_kbps>ai->bitrate_average_kbps) + return OV_EINVAL; + + if(ai->bitrate_limit_max_kbps>0 && + ai->bitrate_average_kbps>0 && + ai->bitrate_limit_max_kbpsbitrate_average_kbps) + return OV_EINVAL; + + if(ai->bitrate_limit_min_kbps>0 && + ai->bitrate_limit_max_kbps>0 && + ai->bitrate_limit_min_kbps>ai->bitrate_limit_max_kbps) + return OV_EINVAL; + + if(ai->bitrate_average_damping <= 0.) + return OV_EINVAL; + + if(ai->bitrate_limit_reservoir_bits < 0) + return OV_EINVAL; + + if(ai->bitrate_limit_reservoir_bias < 0.) + return OV_EINVAL; + + if(ai->bitrate_limit_reservoir_bias > 1.) + return OV_EINVAL; + + hi->managed=ai->management_active; + hi->bitrate_min=ai->bitrate_limit_min_kbps * 1000; + hi->bitrate_max=ai->bitrate_limit_max_kbps * 1000; + hi->bitrate_av=ai->bitrate_average_kbps * 1000; + hi->bitrate_av_damp=ai->bitrate_average_damping; + hi->bitrate_reservoir=ai->bitrate_limit_reservoir_bits; + hi->bitrate_reservoir_bias=ai->bitrate_limit_reservoir_bias; + } + } + return 0; + + case OV_ECTL_LOWPASS_GET: + { + double *farg=(double *)arg; + *farg=hi->lowpass_kHz; + } + return(0); + case OV_ECTL_LOWPASS_SET: + { + double *farg=(double *)arg; + hi->lowpass_kHz=*farg; + + if(hi->lowpass_kHz<2.)hi->lowpass_kHz=2.; + if(hi->lowpass_kHz>99.)hi->lowpass_kHz=99.; + hi->lowpass_altered=1; + } + return(0); + case OV_ECTL_IBLOCK_GET: + { + double *farg=(double *)arg; + *farg=hi->impulse_noisetune; + } + return(0); + case OV_ECTL_IBLOCK_SET: + { + double *farg=(double *)arg; + hi->impulse_noisetune=*farg; + + if(hi->impulse_noisetune>0.)hi->impulse_noisetune=0.; + if(hi->impulse_noisetune<-15.)hi->impulse_noisetune=-15.; + } + return(0); + case OV_ECTL_COUPLING_GET: + { + int *iarg=(int *)arg; + *iarg=hi->coupling_p; + } + return(0); + case OV_ECTL_COUPLING_SET: + { + const void *new_template; + double new_base=0.; + int *iarg=(int *)arg; + hi->coupling_p=((*iarg)!=0); + + /* Fetching a new template can alter the base_setting, which + many other parameters are based on. Right now, the only + parameter drawn from the base_setting that can be altered + by an encctl is the lowpass, so that is explictly flagged + to not be overwritten when we fetch a new template and + recompute the dependant settings */ + new_template = get_setup_template(hi->coupling_p?vi->channels:-1, + vi->rate, + hi->req, + hi->managed, + &new_base); + if(!hi->setup)return OV_EIMPL; + hi->setup=new_template; + hi->base_setting=new_base; + vorbis_encode_setup_setting(vi,vi->channels,vi->rate); + } + return(0); + } + return(OV_EIMPL); + } + return(OV_EINVAL); +} diff --git a/libvorbis-1.0.1/lib/vorbisfile.c b/Dependencies/libvorbis/lib/vorbisfile.c similarity index 50% rename from libvorbis-1.0.1/lib/vorbisfile.c rename to Dependencies/libvorbis/lib/vorbisfile.c index ced2d34..3f30cb8 100644 --- a/libvorbis-1.0.1/lib/vorbisfile.c +++ b/Dependencies/libvorbis/lib/vorbisfile.c @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.c,v 1.75 2003/09/16 20:28:14 xiphmont Exp $ + last mod: $Id: vorbisfile.c 17012 2010-03-24 07:37:36Z xiphmont $ ********************************************************************/ @@ -22,6 +22,9 @@ #include #include "vorbis/codec.h" + +/* we don't need or want the static callback symbols here */ +#define OV_EXCLUDE_STATIC_CALLBACKS #include "vorbis/vorbisfile.h" #include "os.h" @@ -51,20 +54,22 @@ we only want coarse navigation through the stream. */ /************************************************************************* - * Many, many internal helpers. The intention is not to be confusing; - * rampant duplication and monolithic function implementation would be + * Many, many internal helpers. The intention is not to be confusing; + * rampant duplication and monolithic function implementation would be * harder to understand anyway. The high level functions are last. Begin * grokking near the end of the file */ /* read a little more data from the file/pipe into the ogg_sync framer */ -#define CHUNKSIZE 8500 /* a shade over 8k; anyone using pages well - over 8k gets what they deserve */ +#define CHUNKSIZE 65536 /* greater-than-page-size granularity seeking */ +#define READSIZE 2048 /* a smaller read size is needed for low-rate streaming. */ + static long _get_data(OggVorbis_File *vf){ errno=0; + if(!(vf->callbacks.read_func))return(-1); if(vf->datasource){ - char *buffer=ogg_sync_buffer(&vf->oy,CHUNKSIZE); - long bytes=(vf->callbacks.read_func)(buffer,1,CHUNKSIZE,vf->datasource); + char *buffer=ogg_sync_buffer(&vf->oy,READSIZE); + long bytes=(vf->callbacks.read_func)(buffer,1,READSIZE,vf->datasource); if(bytes>0)ogg_sync_wrote(&vf->oy,bytes); if(bytes==0 && errno)return(-1); return(bytes); @@ -73,15 +78,18 @@ static long _get_data(OggVorbis_File *vf){ } /* save a tiny smidge of verbosity to make the code more readable */ -static void _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ - if(vf->datasource){ - (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET); +static int _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ + if(vf->datasource){ + if(!(vf->callbacks.seek_func)|| + (vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET) == -1) + return OV_EREAD; vf->offset=offset; ogg_sync_reset(&vf->oy); }else{ /* shouldn't happen unless someone writes a broken callback */ - return; + return OV_EFAULT; } + return 0; } /* The read/seek functions track absolute position within the stream */ @@ -92,39 +100,39 @@ static void _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ boundary: -1) unbounded search 0) read no additional data; use cached only - n) search for a new page beginning for n bytes + n) search for a new page beginning for n bytes return: <0) did not find a page (OV_FALSE, OV_EOF, OV_EREAD) n) found a page at absolute offset n */ static ogg_int64_t _get_next_page(OggVorbis_File *vf,ogg_page *og, - ogg_int64_t boundary){ + ogg_int64_t boundary){ if(boundary>0)boundary+=vf->offset; while(1){ long more; if(boundary>0 && vf->offset>=boundary)return(OV_FALSE); more=ogg_sync_pageseek(&vf->oy,og); - + if(more<0){ /* skipped n bytes */ vf->offset-=more; }else{ if(more==0){ - /* send more paramedics */ - if(!boundary)return(OV_FALSE); - { - long ret=_get_data(vf); - if(ret==0)return(OV_EOF); - if(ret<0)return(OV_EREAD); - } + /* send more paramedics */ + if(!boundary)return(OV_FALSE); + { + long ret=_get_data(vf); + if(ret==0)return(OV_EOF); + if(ret<0)return(OV_EREAD); + } }else{ - /* got a page. Return the offset at the page beginning, + /* got a page. Return the offset at the page beginning, advance the internal offset past the page end */ - ogg_int64_t ret=vf->offset; - vf->offset+=more; - return(ret); - + ogg_int64_t ret=vf->offset; + vf->offset+=more; + return(ret); + } } } @@ -145,132 +153,258 @@ static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_page *og){ begin-=CHUNKSIZE; if(begin<0) begin=0; - _seek_helper(vf,begin); + + ret=_seek_helper(vf,begin); + if(ret)return(ret); + while(vf->offsetoffset); if(ret==OV_EREAD)return(OV_EREAD); if(ret<0){ - break; + break; }else{ - offset=ret; + offset=ret; } } } - /* we have the offset. Actually snork and hold the page now */ - _seek_helper(vf,offset); - ret=_get_next_page(vf,og,CHUNKSIZE); - if(ret<0) - /* this shouldn't be possible */ - return(OV_EFAULT); + /* In a fully compliant, non-multiplexed stream, we'll still be + holding the last page. In multiplexed (or noncompliant streams), + we will probably have to re-read the last page we saw */ + if(og->header_len==0){ + ret=_seek_helper(vf,offset); + if(ret)return(ret); + + ret=_get_next_page(vf,og,CHUNKSIZE); + if(ret<0) + /* this shouldn't be possible */ + return(OV_EFAULT); + } return(offset); } -/* finds each bitstream link one at a time using a bisection search - (has to begin by knowing the offset of the lb's initial page). - Recurses for each link so it can alloc the link storage after - finding them all, then unroll and fill the cache at the same time */ -static int _bisect_forward_serialno(OggVorbis_File *vf, - ogg_int64_t begin, - ogg_int64_t searched, - ogg_int64_t end, - long currentno, - long m){ - ogg_int64_t endsearched=end; - ogg_int64_t next=end; +static void _add_serialno(ogg_page *og,long **serialno_list, int *n){ + long s = ogg_page_serialno(og); + (*n)++; + + if(*serialno_list){ + *serialno_list = _ogg_realloc(*serialno_list, sizeof(**serialno_list)*(*n)); + }else{ + *serialno_list = _ogg_malloc(sizeof(**serialno_list)); + } + + (*serialno_list)[(*n)-1] = s; +} + +/* returns nonzero if found */ +static int _lookup_serialno(long s, long *serialno_list, int n){ + if(serialno_list){ + while(n--){ + if(*serialno_list == s) return 1; + serialno_list++; + } + } + return 0; +} + +static int _lookup_page_serialno(ogg_page *og, long *serialno_list, int n){ + long s = ogg_page_serialno(og); + return _lookup_serialno(s,serialno_list,n); +} + +/* performs the same search as _get_prev_page, but prefers pages of + the specified serial number. If a page of the specified serialno is + spotted during the seek-back-and-read-forward, it will return the + info of last page of the matching serial number instead of the very + last page. If no page of the specified serialno is seen, it will + return the info of last page and alter *serialno. */ +static ogg_int64_t _get_prev_page_serial(OggVorbis_File *vf, + long *serial_list, int serial_n, + int *serialno, ogg_int64_t *granpos){ ogg_page og; + ogg_int64_t begin=vf->offset; + ogg_int64_t end=begin; ogg_int64_t ret; - - /* the below guards against garbage seperating the last and - first pages of two links. */ - while(searched=0)next=ret; - }else{ - searched=ret+og.header_len+og.body_len; + + ogg_int64_t prefoffset=-1; + ogg_int64_t offset=-1; + ogg_int64_t ret_serialno=-1; + ogg_int64_t ret_gran=-1; + + while(offset==-1){ + begin-=CHUNKSIZE; + if(begin<0) + begin=0; + + ret=_seek_helper(vf,begin); + if(ret)return(ret); + + while(vf->offsetoffset); + if(ret==OV_EREAD)return(OV_EREAD); + if(ret<0){ + break; + }else{ + ret_serialno=ogg_page_serialno(&og); + ret_gran=ogg_page_granulepos(&og); + offset=ret; + + if(ret_serialno == *serialno){ + prefoffset=ret; + *granpos=ret_gran; + } + + if(!_lookup_serialno(ret_serialno,serial_list,serial_n)){ + /* we fell off the end of the link, which means we seeked + back too far and shouldn't have been looking in that link + to begin with. If we found the preferred serial number, + forget that we saw it. */ + prefoffset=-1; + } + } } } - _seek_helper(vf,next); - ret=_get_next_page(vf,&og,-1); - if(ret==OV_EREAD)return(OV_EREAD); - - if(searched>=end || ret<0){ - vf->links=m+1; - vf->offsets=_ogg_malloc((vf->links+1)*sizeof(*vf->offsets)); - vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos)); - vf->offsets[m+1]=searched; - }else{ - ret=_bisect_forward_serialno(vf,next,vf->offset, - end,ogg_page_serialno(&og),m+1); - if(ret==OV_EREAD)return(OV_EREAD); - } - - vf->offsets[m]=begin; - vf->serialnos[m]=currentno; - return(0); + /* we're not interested in the page... just the serialno and granpos. */ + if(prefoffset>=0)return(prefoffset); + + *serialno = ret_serialno; + *granpos = ret_gran; + return(offset); + } /* uses the local ogg_stream storage in vf; this is important for non-streaming input sources */ static int _fetch_headers(OggVorbis_File *vf,vorbis_info *vi,vorbis_comment *vc, - long *serialno,ogg_page *og_ptr){ + long **serialno_list, int *serialno_n, + ogg_page *og_ptr){ ogg_page og; ogg_packet op; int i,ret; - + int allbos=0; + if(!og_ptr){ ogg_int64_t llret=_get_next_page(vf,&og,CHUNKSIZE); if(llret==OV_EREAD)return(OV_EREAD); - if(llret<0)return OV_ENOTVORBIS; + if(llret<0)return(OV_ENOTVORBIS); og_ptr=&og; } - ogg_stream_reset_serialno(&vf->os,ogg_page_serialno(og_ptr)); - if(serialno)*serialno=vf->os.serialno; - vf->ready_state=STREAMSET; - - /* extract the initial header from the first page and verify that the - Ogg bitstream is in fact Vorbis data */ - vorbis_info_init(vi); vorbis_comment_init(vc); - - i=0; - while(i<3){ - ogg_stream_pagein(&vf->os,og_ptr); - while(i<3){ - int result=ogg_stream_packetout(&vf->os,&op); - if(result==0)break; - if(result==-1){ - ret=OV_EBADHEADER; - goto bail_header; + vf->ready_state=OPENED; + + /* extract the serialnos of all BOS pages + the first set of vorbis + headers we see in the link */ + + while(ogg_page_bos(og_ptr)){ + if(serialno_list){ + if(_lookup_page_serialno(og_ptr,*serialno_list,*serialno_n)){ + /* a dupe serialnumber in an initial header packet set == invalid stream */ + if(*serialno_list)_ogg_free(*serialno_list); + *serialno_list=0; + *serialno_n=0; + ret=OV_EBADHEADER; + goto bail_header; } - if((ret=vorbis_synthesis_headerin(vi,vc,&op))){ - goto bail_header; + + _add_serialno(og_ptr,serialno_list,serialno_n); + } + + if(vf->ready_stateos,ogg_page_serialno(og_ptr)); + ogg_stream_pagein(&vf->os,og_ptr); + + if(ogg_stream_packetout(&vf->os,&op) > 0 && + vorbis_synthesis_idheader(&op)){ + /* vorbis header; continue setup */ + vf->ready_state=STREAMSET; + if((ret=vorbis_synthesis_headerin(vi,vc,&op))){ + ret=OV_EBADHEADER; + goto bail_header; + } } - i++; } - if(i<3) - if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){ - ret=OV_EBADHEADER; - goto bail_header; + + /* get next page */ + { + ogg_int64_t llret=_get_next_page(vf,og_ptr,CHUNKSIZE); + if(llret==OV_EREAD){ + ret=OV_EREAD; + goto bail_header; + } + if(llret<0){ + ret=OV_ENOTVORBIS; + goto bail_header; + } + + /* if this page also belongs to our vorbis stream, submit it and break */ + if(vf->ready_state==STREAMSET && + vf->os.serialno == ogg_page_serialno(og_ptr)){ + ogg_stream_pagein(&vf->os,og_ptr); + break; + } + } + } + + if(vf->ready_state!=STREAMSET){ + ret = OV_ENOTVORBIS; + goto bail_header; + } + + while(1){ + + i=0; + while(i<2){ /* get a page loop */ + + while(i<2){ /* get a packet loop */ + + int result=ogg_stream_packetout(&vf->os,&op); + if(result==0)break; + if(result==-1){ + ret=OV_EBADHEADER; + goto bail_header; + } + + if((ret=vorbis_synthesis_headerin(vi,vc,&op))) + goto bail_header; + + i++; } + + while(i<2){ + if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){ + ret=OV_EBADHEADER; + goto bail_header; + } + + /* if this page belongs to the correct stream, go parse it */ + if(vf->os.serialno == ogg_page_serialno(og_ptr)){ + ogg_stream_pagein(&vf->os,og_ptr); + break; + } + + /* if we never see the final vorbis headers before the link + ends, abort */ + if(ogg_page_bos(og_ptr)){ + if(allbos){ + ret = OV_EBADHEADER; + goto bail_header; + }else + allbos=1; + } + + /* otherwise, keep looking */ + } + } + + return 0; } - return 0; bail_header: vorbis_info_clear(vi); @@ -280,111 +414,183 @@ static int _fetch_headers(OggVorbis_File *vf,vorbis_info *vi,vorbis_comment *vc, return ret; } -/* last step of the OggVorbis_File initialization; get all the - vorbis_info structs and PCM positions. Only called by the seekable - initialization (local stream storage is hacked slightly; pay - attention to how that's done) */ +/* Starting from current cursor position, get initial PCM offset of + next page. Consumes the page in the process without decoding + audio, however this is only called during stream parsing upon + seekable open. */ +static ogg_int64_t _initial_pcmoffset(OggVorbis_File *vf, vorbis_info *vi){ + ogg_page og; + ogg_int64_t accumulated=0; + long lastblock=-1; + int result; + int serialno = vf->os.serialno; + + while(1){ + ogg_packet op; + if(_get_next_page(vf,&og,-1)<0) + break; /* should not be possible unless the file is truncated/mangled */ + + if(ogg_page_bos(&og)) break; + if(ogg_page_serialno(&og)!=serialno) continue; + + /* count blocksizes of all frames in the page */ + ogg_stream_pagein(&vf->os,&og); + while((result=ogg_stream_packetout(&vf->os,&op))){ + if(result>0){ /* ignore holes */ + long thisblock=vorbis_packet_blocksize(vi,&op); + if(lastblock!=-1) + accumulated+=(lastblock+thisblock)>>2; + lastblock=thisblock; + } + } + + if(ogg_page_granulepos(&og)!=-1){ + /* pcm offset of last packet on the first audio page */ + accumulated= ogg_page_granulepos(&og)-accumulated; + break; + } + } + + /* less than zero? This is a stream with samples trimmed off + the beginning, a normal occurrence; set the offset to zero */ + if(accumulated<0)accumulated=0; + + return accumulated; +} -/* this is void and does not propogate errors up because we want to be - able to open and use damaged bitstreams as well as we can. Just - watch out for missing information for links in the OggVorbis_File - struct */ -static void _prefetch_all_headers(OggVorbis_File *vf, ogg_int64_t dataoffset){ +/* finds each bitstream link one at a time using a bisection search + (has to begin by knowing the offset of the lb's initial page). + Recurses for each link so it can alloc the link storage after + finding them all, then unroll and fill the cache at the same time */ +static int _bisect_forward_serialno(OggVorbis_File *vf, + ogg_int64_t begin, + ogg_int64_t searched, + ogg_int64_t end, + ogg_int64_t endgran, + int endserial, + long *currentno_list, + int currentnos, + long m){ + ogg_int64_t pcmoffset; + ogg_int64_t dataoffset=searched; + ogg_int64_t endsearched=end; + ogg_int64_t next=end; + ogg_int64_t searchgran=-1; ogg_page og; - int i; - ogg_int64_t ret; - - vf->vi=_ogg_realloc(vf->vi,vf->links*sizeof(*vf->vi)); - vf->vc=_ogg_realloc(vf->vc,vf->links*sizeof(*vf->vc)); - vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets)); - vf->pcmlengths=_ogg_malloc(vf->links*2*sizeof(*vf->pcmlengths)); - - for(i=0;ilinks;i++){ - if(i==0){ - /* we already grabbed the initial header earlier. Just set the offset */ - vf->dataoffsets[i]=dataoffset; - _seek_helper(vf,dataoffset); + ogg_int64_t ret,last; + int serialno = vf->os.serialno; - }else{ + /* invariants: + we have the headers and serialnos for the link beginning at 'begin' + we have the offset and granpos of the last page in the file (potentially + not a page we care about) + */ - /* seek to the location of the initial header */ + /* Is the last page in our list of current serialnumbers? */ + if(_lookup_serialno(endserial,currentno_list,currentnos)){ - _seek_helper(vf,vf->offsets[i]); - if(_fetch_headers(vf,vf->vi+i,vf->vc+i,NULL,NULL)<0){ - vf->dataoffsets[i]=-1; - }else{ - vf->dataoffsets[i]=vf->offset; - } + /* last page is in the starting serialno list, so we've bisected + down to (or just started with) a single link. Now we need to + find the last vorbis page belonging to the first vorbis stream + for this link. */ + + while(endserial != serialno){ + endserial = serialno; + vf->offset=_get_prev_page_serial(vf,currentno_list,currentnos,&endserial,&endgran); } - /* fetch beginning PCM offset */ + vf->links=m+1; + if(vf->offsets)_ogg_free(vf->offsets); + if(vf->serialnos)_ogg_free(vf->serialnos); + if(vf->dataoffsets)_ogg_free(vf->dataoffsets); - if(vf->dataoffsets[i]!=-1){ - ogg_int64_t accumulated=0; - long lastblock=-1; - int result; + vf->offsets=_ogg_malloc((vf->links+1)*sizeof(*vf->offsets)); + vf->vi=_ogg_realloc(vf->vi,vf->links*sizeof(*vf->vi)); + vf->vc=_ogg_realloc(vf->vc,vf->links*sizeof(*vf->vc)); + vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos)); + vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets)); + vf->pcmlengths=_ogg_malloc(vf->links*2*sizeof(*vf->pcmlengths)); - ogg_stream_reset_serialno(&vf->os,vf->serialnos[i]); + vf->offsets[m+1]=end; + vf->offsets[m]=begin; + vf->pcmlengths[m*2+1]=endgran; - while(1){ - ogg_packet op; - - ret=_get_next_page(vf,&og,-1); - if(ret<0) - /* this should not be possible unless the file is - truncated/mangled */ - break; - - if(ogg_page_serialno(&og)!=vf->serialnos[i]) - break; - - /* count blocksizes of all frames in the page */ - ogg_stream_pagein(&vf->os,&og); - while((result=ogg_stream_packetout(&vf->os,&op))){ - if(result>0){ /* ignore holes */ - long thisblock=vorbis_packet_blocksize(vf->vi+i,&op); - if(lastblock!=-1) - accumulated+=(lastblock+thisblock)>>2; - lastblock=thisblock; - } - } - - if(ogg_page_granulepos(&og)!=-1){ - /* pcm offset of last packet on the first audio page */ - accumulated= ogg_page_granulepos(&og)-accumulated; - break; - } + }else{ + + long *next_serialno_list=NULL; + int next_serialnos=0; + vorbis_info vi; + vorbis_comment vc; + + /* the below guards against garbage seperating the last and + first pages of two links. */ + while(searchedpcmlengths[i*2]=accumulated; + last=_get_next_page(vf,&og,-1); + if(last==OV_EREAD)return(OV_EREAD); + if(last<0 || !_lookup_page_serialno(&og,currentno_list,currentnos)){ + endsearched=bisect; + if(last>=0)next=last; + }else{ + searched=last+og.header_len+og.body_len; + } } - /* get the PCM length of this link. To do this, - get the last page of the stream */ - { - ogg_int64_t end=vf->offsets[i+1]; - _seek_helper(vf,end); + /* Bisection point found */ - while(1){ - ret=_get_prev_page(vf,&og); - if(ret<0){ - /* this should not be possible */ - vorbis_info_clear(vf->vi+i); - vorbis_comment_clear(vf->vc+i); - break; - } - if(ogg_page_granulepos(&og)!=-1){ - vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; - break; - } - vf->offset=ret; + /* for the time being, fetch end PCM offset the simple way */ + { + int testserial = serialno+1; + vf->offset = next; + while(testserial != serialno){ + testserial = serialno; + vf->offset=_get_prev_page_serial(vf,currentno_list,currentnos,&testserial,&searchgran); } } + + if(vf->offset!=next){ + ret=_seek_helper(vf,next); + if(ret)return(ret); + } + + ret=_fetch_headers(vf,&vi,&vc,&next_serialno_list,&next_serialnos,NULL); + if(ret)return(ret); + serialno = vf->os.serialno; + dataoffset = vf->offset; + + /* this will consume a page, however the next bistection always + starts with a raw seek */ + pcmoffset = _initial_pcmoffset(vf,&vi); + + ret=_bisect_forward_serialno(vf,next,vf->offset,end,endgran,endserial, + next_serialno_list,next_serialnos,m+1); + if(ret)return(ret); + + if(next_serialno_list)_ogg_free(next_serialno_list); + + vf->offsets[m+1]=next; + vf->serialnos[m+1]=serialno; + vf->dataoffsets[m+1]=dataoffset; + + vf->vi[m+1]=vi; + vf->vc[m+1]=vc; + + vf->pcmlengths[m*2+1]=searchgran; + vf->pcmlengths[m*2+2]=pcmoffset; + vf->pcmlengths[m*2+3]-=pcmoffset; + } + return(0); } static int _make_decode_ready(OggVorbis_File *vf){ @@ -396,7 +602,7 @@ static int _make_decode_ready(OggVorbis_File *vf){ }else{ if(vorbis_synthesis_init(&vf->vd,vf->vi)) return OV_EBADLINK; - } + } vorbis_block_init(&vf->vd,&vf->vb); vf->ready_state=INITSET; vf->bittrack=0.f; @@ -405,41 +611,47 @@ static int _make_decode_ready(OggVorbis_File *vf){ } static int _open_seekable2(OggVorbis_File *vf){ - long serialno=vf->current_serialno; - ogg_int64_t dataoffset=vf->offset, end; - ogg_page og; + ogg_int64_t dataoffset=vf->dataoffsets[0],end,endgran=-1; + int endserial=vf->os.serialno; + int serialno=vf->os.serialno; /* we're partially open and have a first link header state in storage in vf */ - /* we can seek, so set out learning all about this file */ - (vf->callbacks.seek_func)(vf->datasource,0,SEEK_END); - vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource); - - /* We get the offset for the last page of the physical bitstream. - Most OggVorbis files will contain a single logical bitstream */ - end=_get_prev_page(vf,&og); - if(end<0)return(end); - - /* more than one logical bitstream? */ - if(ogg_page_serialno(&og)!=serialno){ - /* Chained bitstream. Bisect-search each logical bitstream - section. Do so based on serial number only */ - if(_bisect_forward_serialno(vf,0,0,end+1,serialno,0)<0)return(OV_EREAD); + /* fetch initial PCM offset */ + ogg_int64_t pcmoffset = _initial_pcmoffset(vf,vf->vi); + /* we can seek, so set out learning all about this file */ + if(vf->callbacks.seek_func && vf->callbacks.tell_func){ + (vf->callbacks.seek_func)(vf->datasource,0,SEEK_END); + vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource); }else{ + vf->offset=vf->end=-1; + } - /* Only one logical bitstream */ - if(_bisect_forward_serialno(vf,0,end,end+1,serialno,0))return(OV_EREAD); + /* If seek_func is implemented, tell_func must also be implemented */ + if(vf->end==-1) return(OV_EINVAL); - } + /* Get the offset of the last page of the physical bitstream, or, if + we're lucky the last vorbis page of this link as most OggVorbis + files will contain a single logical bitstream */ + end=_get_prev_page_serial(vf,vf->serialnos+2,vf->serialnos[1],&endserial,&endgran); + if(end<0)return(end); + + /* now determine bitstream structure recursively */ + if(_bisect_forward_serialno(vf,0,dataoffset,vf->offset,endgran,endserial, + vf->serialnos+2,vf->serialnos[1],0)<0)return(OV_EREAD); - /* the initial header memory is referenced by vf after; don't free it */ - _prefetch_all_headers(vf,dataoffset); - return(ov_raw_seek(vf,0)); + vf->offsets[0]=0; + vf->serialnos[0]=serialno; + vf->dataoffsets[0]=dataoffset; + vf->pcmlengths[0]=pcmoffset; + vf->pcmlengths[1]-=pcmoffset; + + return(ov_raw_seek(vf,dataoffset)); } -/* clear out the current logical bitstream decoder */ +/* clear out the current logical bitstream decoder */ static void _decode_clear(OggVorbis_File *vf){ vorbis_dsp_clear(&vf->vd); vorbis_block_clear(&vf->vb); @@ -450,127 +662,152 @@ static void _decode_clear(OggVorbis_File *vf){ bitstream boundary and dumps the decoding machine. If the decoding machine is unloaded, it loads it. It also keeps pcm_offset up to date (seek and read both use this. seek uses a special hack with - readp). + readp). return: <0) error, OV_HOLE (lost packet) or OV_EOF 0) need more data (only if readp==0) - 1) got a packet + 1) got a packet */ static int _fetch_and_process_packet(OggVorbis_File *vf, - ogg_packet *op_in, - int readp, - int spanp){ + ogg_packet *op_in, + int readp, + int spanp){ ogg_page og; /* handle one packet. Try to fetch it from current stream state */ /* extract packets from page */ while(1){ - - /* process a packet if we can. If the machine isn't loaded, - neither is a page */ + + if(vf->ready_state==STREAMSET){ + int ret=_make_decode_ready(vf); + if(ret<0)return ret; + } + + /* process a packet if we can. */ + if(vf->ready_state==INITSET){ while(1) { - ogg_packet op; - ogg_packet *op_ptr=(op_in?op_in:&op); - int result=ogg_stream_packetout(&vf->os,op_ptr); - ogg_int64_t granulepos; - - op_in=NULL; - if(result==-1)return(OV_HOLE); /* hole in the data. */ - if(result>0){ - /* got a packet. process it */ - granulepos=op_ptr->granulepos; - if(!vorbis_synthesis(&vf->vb,op_ptr)){ /* lazy check for lazy - header handling. The - header packets aren't - audio, so if/when we - submit them, - vorbis_synthesis will - reject them */ - - /* suck in the synthesis data and track bitrate */ - { - int oldsamples=vorbis_synthesis_pcmout(&vf->vd,NULL); - /* for proper use of libvorbis within libvorbisfile, + ogg_packet op; + ogg_packet *op_ptr=(op_in?op_in:&op); + int result=ogg_stream_packetout(&vf->os,op_ptr); + ogg_int64_t granulepos; + + op_in=NULL; + if(result==-1)return(OV_HOLE); /* hole in the data. */ + if(result>0){ + /* got a packet. process it */ + granulepos=op_ptr->granulepos; + if(!vorbis_synthesis(&vf->vb,op_ptr)){ /* lazy check for lazy + header handling. The + header packets aren't + audio, so if/when we + submit them, + vorbis_synthesis will + reject them */ + + /* suck in the synthesis data and track bitrate */ + { + int oldsamples=vorbis_synthesis_pcmout(&vf->vd,NULL); + /* for proper use of libvorbis within libvorbisfile, oldsamples will always be zero. */ - if(oldsamples)return(OV_EFAULT); - - vorbis_synthesis_blockin(&vf->vd,&vf->vb); - vf->samptrack+=vorbis_synthesis_pcmout(&vf->vd,NULL)-oldsamples; - vf->bittrack+=op_ptr->bytes*8; - } - - /* update the pcm offset. */ - if(granulepos!=-1 && !op_ptr->e_o_s){ - int link=(vf->seekable?vf->current_link:0); - int i,samples; - - /* this packet has a pcm_offset on it (the last packet - completed on a page carries the offset) After processing - (above), we know the pcm position of the *last* sample - ready to be returned. Find the offset of the *first* - - As an aside, this trick is inaccurate if we begin - reading anew right at the last page; the end-of-stream - granulepos declares the last frame in the stream, and the - last packet of the last page may be a partial frame. - So, we need a previous granulepos from an in-sequence page - to have a reference point. Thus the !op_ptr->e_o_s clause - above */ - - if(vf->seekable && link>0) - granulepos-=vf->pcmlengths[link*2]; - if(granulepos<0)granulepos=0; /* actually, this - shouldn't be possible - here unless the stream - is very broken */ - - samples=vorbis_synthesis_pcmout(&vf->vd,NULL); - - granulepos-=samples; - for(i=0;ipcmlengths[i*2+1]; - vf->pcm_offset=granulepos; - } - return(1); - } - } - else - break; + if(oldsamples)return(OV_EFAULT); + + vorbis_synthesis_blockin(&vf->vd,&vf->vb); + vf->samptrack+=vorbis_synthesis_pcmout(&vf->vd,NULL)-oldsamples; + vf->bittrack+=op_ptr->bytes*8; + } + + /* update the pcm offset. */ + if(granulepos!=-1 && !op_ptr->e_o_s){ + int link=(vf->seekable?vf->current_link:0); + int i,samples; + + /* this packet has a pcm_offset on it (the last packet + completed on a page carries the offset) After processing + (above), we know the pcm position of the *last* sample + ready to be returned. Find the offset of the *first* + + As an aside, this trick is inaccurate if we begin + reading anew right at the last page; the end-of-stream + granulepos declares the last frame in the stream, and the + last packet of the last page may be a partial frame. + So, we need a previous granulepos from an in-sequence page + to have a reference point. Thus the !op_ptr->e_o_s clause + above */ + + if(vf->seekable && link>0) + granulepos-=vf->pcmlengths[link*2]; + if(granulepos<0)granulepos=0; /* actually, this + shouldn't be possible + here unless the stream + is very broken */ + + samples=vorbis_synthesis_pcmout(&vf->vd,NULL); + + granulepos-=samples; + for(i=0;ipcmlengths[i*2+1]; + vf->pcm_offset=granulepos; + } + return(1); + } + } + else + break; } } if(vf->ready_state>=OPENED){ - int ret; - if(!readp)return(0); - if((ret=_get_next_page(vf,&og,-1))<0){ - return(OV_EOF); /* eof. - leave unitialized */ - } + ogg_int64_t ret; - /* bitrate tracking; add the header's bytes here, the body bytes - are done by packet above */ - vf->bittrack+=og.header_len*8; - - /* has our decoding just traversed a bitstream boundary? */ - if(vf->ready_state==INITSET){ - if(vf->current_serialno!=ogg_page_serialno(&og)){ - if(!spanp) - return(OV_EOF); - - _decode_clear(vf); - - if(!vf->seekable){ - vorbis_info_clear(vf->vi); - vorbis_comment_clear(vf->vc); - } - } + while(1){ + /* the loop is not strictly necessary, but there's no sense in + doing the extra checks of the larger loop for the common + case in a multiplexed bistream where the page is simply + part of a different logical bitstream; keep reading until + we get one with the correct serialno */ + + if(!readp)return(0); + if((ret=_get_next_page(vf,&og,-1))<0){ + return(OV_EOF); /* eof. leave unitialized */ + } + + /* bitrate tracking; add the header's bytes here, the body bytes + are done by packet above */ + vf->bittrack+=og.header_len*8; + + if(vf->ready_state==INITSET){ + if(vf->current_serialno!=ogg_page_serialno(&og)){ + + /* two possibilities: + 1) our decoding just traversed a bitstream boundary + 2) another stream is multiplexed into this logical section */ + + if(ogg_page_bos(&og)){ + /* boundary case */ + if(!spanp) + return(OV_EOF); + + _decode_clear(vf); + + if(!vf->seekable){ + vorbis_info_clear(vf->vi); + vorbis_comment_clear(vf->vc); + } + break; + + }else + continue; /* possibility #2 */ + } + } + + break; } } /* Do we need to load a new machine before submitting the page? */ - /* This is different in the seekable and non-seekable cases. + /* This is different in the seekable and non-seekable cases. In the seekable case, we already have all the header information loaded and cached; we just initialize the machine @@ -581,45 +818,47 @@ static int _fetch_and_process_packet(OggVorbis_File *vf, we're now nominally at the header of the next bitstream */ - if(vf->ready_state!=INITSET){ + if(vf->ready_state!=INITSET){ int link; if(vf->ready_stateseekable){ - vf->current_serialno=ogg_page_serialno(&og); - - /* match the serialno to bitstream section. We use this rather than - offset positions to avoid problems near logical bitstream - boundaries */ - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links)return(OV_EBADLINK); /* sign of a bogus - stream. error out, - leave machine - uninitialized */ - - vf->current_link=link; - - ogg_stream_reset_serialno(&vf->os,vf->current_serialno); - vf->ready_state=STREAMSET; - - }else{ - /* we're streaming */ - /* fetch the three header packets, build the info struct */ - - int ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,&og); - if(ret)return(ret); - vf->current_link++; - link=0; - } - } - - { - int ret=_make_decode_ready(vf); - if(ret<0)return ret; + if(vf->seekable){ + long serialno = ogg_page_serialno(&og); + + /* match the serialno to bitstream section. We use this rather than + offset positions to avoid problems near logical bitstream + boundaries */ + + for(link=0;linklinks;link++) + if(vf->serialnos[link]==serialno)break; + + if(link==vf->links) continue; /* not the desired Vorbis + bitstream section; keep + trying */ + + vf->current_serialno=serialno; + vf->current_link=link; + + ogg_stream_reset_serialno(&vf->os,vf->current_serialno); + vf->ready_state=STREAMSET; + + }else{ + /* we're streaming */ + /* fetch the three header packets, build the info struct */ + + int ret=_fetch_headers(vf,vf->vi,vf->vc,NULL,NULL,&og); + if(ret)return(ret); + vf->current_serialno=vf->os.serialno; + vf->current_link++; + link=0; + } } } + + /* the buffered page is the data we want, and we're ready for it; + add it to the stream state */ ogg_stream_pagein(&vf->os,&og); + } } @@ -631,8 +870,10 @@ static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence){ } static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, - long ibytes, ov_callbacks callbacks){ - int offsettest=(f?callbacks.seek_func(f,0,SEEK_CUR):-1); + long ibytes, ov_callbacks callbacks){ + int offsettest=((f && callbacks.seek_func)?callbacks.seek_func(f,0,SEEK_CUR):-1); + long *serialno_list=NULL; + int serialno_list_size=0; int ret; memset(vf,0,sizeof(*vf)); @@ -644,8 +885,8 @@ static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, /* perhaps some data was previously read into a buffer for testing against other stream types. Allow initialization from this - previously read data (as we may be reading from a non-seekable - stream) */ + previously read data (especially as we may be reading from a + non-seekable stream) */ if(initial){ char *buffer=ogg_sync_buffer(&vf->oy,ibytes); memcpy(buffer,initial,ibytes); @@ -662,12 +903,29 @@ static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, vf->vc=_ogg_calloc(vf->links,sizeof(*vf->vc)); ogg_stream_init(&vf->os,-1); /* fill in the serialno later */ - /* Try to fetch the headers, maintaining all the storage */ - if((ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,NULL))<0){ + /* Fetch all BOS pages, store the vorbis header and all seen serial + numbers, load subsequent vorbis setup headers */ + if((ret=_fetch_headers(vf,vf->vi,vf->vc,&serialno_list,&serialno_list_size,NULL))<0){ vf->datasource=NULL; ov_clear(vf); - }else + }else{ + /* serial number list for first link needs to be held somewhere + for second stage of seekable stream open; this saves having to + seek/reread first link's serialnumber data then. */ + vf->serialnos=_ogg_calloc(serialno_list_size+2,sizeof(*vf->serialnos)); + vf->serialnos[0]=vf->current_serialno; + vf->serialnos[1]=serialno_list_size; + memcpy(vf->serialnos+2,serialno_list,serialno_list_size*sizeof(*vf->serialnos)); + + vf->offsets=_ogg_calloc(1,sizeof(*vf->offsets)); + vf->dataoffsets=_ogg_calloc(1,sizeof(*vf->dataoffsets)); + vf->offsets[0]=0; + vf->dataoffsets[0]=vf->offset; + vf->current_serialno=vf->os.serialno; + vf->ready_state=PARTOPEN; + } + if(serialno_list)_ogg_free(serialno_list); return(ret); } @@ -694,12 +952,12 @@ int ov_clear(OggVorbis_File *vf){ vorbis_block_clear(&vf->vb); vorbis_dsp_clear(&vf->vd); ogg_stream_clear(&vf->os); - + if(vf->vi && vf->links){ int i; for(i=0;ilinks;i++){ - vorbis_info_clear(vf->vi+i); - vorbis_comment_clear(vf->vc+i); + vorbis_info_clear(vf->vi+i); + vorbis_comment_clear(vf->vc+i); } _ogg_free(vf->vi); _ogg_free(vf->vc); @@ -709,7 +967,8 @@ int ov_clear(OggVorbis_File *vf){ if(vf->serialnos)_ogg_free(vf->serialnos); if(vf->offsets)_ogg_free(vf->offsets); ogg_sync_clear(&vf->oy); - if(vf->datasource)(vf->callbacks.close_func)(vf->datasource); + if(vf->datasource && vf->callbacks.close_func) + (vf->callbacks.close_func)(vf->datasource); memset(vf,0,sizeof(*vf)); } #ifdef DEBUG_LEAKS @@ -720,7 +979,7 @@ int ov_clear(OggVorbis_File *vf){ /* inspects the OggVorbis file and finds/documents all the logical bitstreams contained in it. Tries to be tolerant of logical - bitstream sections that are truncated/woogie. + bitstream sections that are truncated/woogie. return: -1) error 0) OK @@ -743,10 +1002,21 @@ int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ return ov_open_callbacks((void *)f, vf, initial, ibytes, callbacks); } - + +int ov_fopen(char *path,OggVorbis_File *vf){ + int ret; + FILE *f = fopen(path,"rb"); + if(!f) return -1; + + ret = ov_open(f,vf,NULL,0); + if(ret) fclose(f); + return ret; +} + + /* cheap hack for game usage where downsampling is desirable; there's no need for SRC as we can just do it cheaply in libvorbis. */ - + int ov_halfrate(OggVorbis_File *vf,int flag){ int i; if(vf->vi==NULL)return OV_EINVAL; @@ -757,7 +1027,7 @@ int ov_halfrate(OggVorbis_File *vf,int flag){ for now dumping the decode machine is needed to reinit the MDCT lookups. 1.1 libvorbis is planned to be able to switch on the fly */ - + for(i=0;ilinks;i++){ if(vorbis_synthesis_halfrate(vf->vi+i,flag)){ ov_halfrate(vf,0); @@ -793,7 +1063,7 @@ int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes){ return ov_test_callbacks((void *)f, vf, initial, ibytes, callbacks); } - + int ov_test_open(OggVorbis_File *vf){ if(vf->ready_state!=PARTOPEN)return(OV_EINVAL); return _ov_open2(vf); @@ -841,16 +1111,16 @@ long ov_bitrate(OggVorbis_File *vf,int i){ }else{ /* return nominal if set */ if(vf->vi[i].bitrate_nominal>0){ - return vf->vi[i].bitrate_nominal; + return vf->vi[i].bitrate_nominal; }else{ - if(vf->vi[i].bitrate_upper>0){ - if(vf->vi[i].bitrate_lower>0){ - return (vf->vi[i].bitrate_upper+vf->vi[i].bitrate_lower)/2; - }else{ - return vf->vi[i].bitrate_upper; - } - } - return(OV_FALSE); + if(vf->vi[i].bitrate_upper>0){ + if(vf->vi[i].bitrate_lower>0){ + return (vf->vi[i].bitrate_upper+vf->vi[i].bitrate_lower)/2; + }else{ + return vf->vi[i].bitrate_upper; + } + } + return(OV_FALSE); } } } @@ -858,7 +1128,7 @@ long ov_bitrate(OggVorbis_File *vf,int i){ /* returns the actual bitrate since last call. returns -1 if no additional data to offer since last call (or at beginning of stream), - EINVAL if stream is only partially open + EINVAL if stream is only partially open */ long ov_bitrate_instant(OggVorbis_File *vf){ int link=(vf->seekable?vf->current_link:0); @@ -884,8 +1154,8 @@ long ov_serialnumber(OggVorbis_File *vf,int i){ /* returns: total raw (compressed) length of content if i==-1 raw (compressed) length of that logical bitstream for i==0 to n - OV_EINVAL if the stream is not seekable (we can't know the length) - or if stream is only partially open + OV_EINVAL if the stream is not seekable (we can't know the length) + or if stream is only partially open */ ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i){ if(vf->ready_stateready_stateready_stateready_stateseekable) @@ -961,10 +1232,11 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ boundary */ vf->pcm_offset=-1; ogg_stream_reset_serialno(&vf->os, - vf->current_serialno); /* must set serialno */ + vf->current_serialno); /* must set serialno */ vorbis_synthesis_restart(&vf->vd); - - _seek_helper(vf,pos); + + ret=_seek_helper(vf,pos); + if(ret)goto seek_error; /* we need to make sure the pcm_offset is set, but we don't want to advance the raw cursor past good packets just to get to the first @@ -973,12 +1245,12 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ So, a hack. We use two stream states; a local scratch state and the shared vf->os stream state. We use the local state to - scan, and the shared state as a buffer for later decode. + scan, and the shared state as a buffer for later decode. Unfortuantely, on the last page we still advance to last packet because the granulepos on the last page is not necessarily on a packet boundary, and we need to make sure the granpos is - correct. + correct. */ { @@ -986,8 +1258,10 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ ogg_packet op; int lastblock=0; int accblock=0; - int thisblock; - int eosflag; + int thisblock=0; + int lastflag=0; + int firstflag=0; + ogg_int64_t pagepos=-1; ogg_stream_init(&work_os,vf->current_serialno); /* get the memory ready */ ogg_stream_reset(&work_os); /* eliminate the spurious OV_HOLE @@ -996,79 +1270,99 @@ int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ while(1){ if(vf->ready_state>=STREAMSET){ - /* snarf/scan a packet if we can */ - int result=ogg_stream_packetout(&work_os,&op); - - if(result>0){ - - if(vf->vi[vf->current_link].codec_setup){ - thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); - if(thisblock<0){ - ogg_stream_packetout(&vf->os,NULL); - thisblock=0; - }else{ - - if(eosflag) - ogg_stream_packetout(&vf->os,NULL); - else - if(lastblock)accblock+=(lastblock+thisblock)>>2; - } - - if(op.granulepos!=-1){ - int i,link=vf->current_link; - ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2]; - if(granulepos<0)granulepos=0; - - for(i=0;ipcmlengths[i*2+1]; - vf->pcm_offset=granulepos-accblock; - break; - } - lastblock=thisblock; - continue; - }else - ogg_stream_packetout(&vf->os,NULL); - } + /* snarf/scan a packet if we can */ + int result=ogg_stream_packetout(&work_os,&op); + + if(result>0){ + + if(vf->vi[vf->current_link].codec_setup){ + thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); + if(thisblock<0){ + ogg_stream_packetout(&vf->os,NULL); + thisblock=0; + }else{ + + /* We can't get a guaranteed correct pcm position out of the + last page in a stream because it might have a 'short' + granpos, which can only be detected in the presence of a + preceeding page. However, if the last page is also the first + page, the granpos rules of a first page take precedence. Not + only that, but for first==last, the EOS page must be treated + as if its a normal first page for the stream to open/play. */ + if(lastflag && !firstflag) + ogg_stream_packetout(&vf->os,NULL); + else + if(lastblock)accblock+=(lastblock+thisblock)>>2; + } + + if(op.granulepos!=-1){ + int i,link=vf->current_link; + ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2]; + if(granulepos<0)granulepos=0; + + for(i=0;ipcmlengths[i*2+1]; + vf->pcm_offset=granulepos-accblock; + if(vf->pcm_offset<0)vf->pcm_offset=0; + break; + } + lastblock=thisblock; + continue; + }else + ogg_stream_packetout(&vf->os,NULL); + } } - + if(!lastblock){ - if(_get_next_page(vf,&og,-1)<0){ - vf->pcm_offset=ov_pcm_total(vf,-1); - break; - } + pagepos=_get_next_page(vf,&og,-1); + if(pagepos<0){ + vf->pcm_offset=ov_pcm_total(vf,-1); + break; + } }else{ - /* huh? Bogus stream with packets but no granulepos */ - vf->pcm_offset=-1; - break; + /* huh? Bogus stream with packets but no granulepos */ + vf->pcm_offset=-1; + break; } - + /* has our decoding just traversed a bitstream boundary? */ - if(vf->ready_state>=STREAMSET) - if(vf->current_serialno!=ogg_page_serialno(&og)){ - _decode_clear(vf); /* clear out stream state */ - ogg_stream_clear(&work_os); - } + if(vf->ready_state>=STREAMSET){ + if(vf->current_serialno!=ogg_page_serialno(&og)){ + + /* two possibilities: + 1) our decoding just traversed a bitstream boundary + 2) another stream is multiplexed into this logical section? */ + + if(ogg_page_bos(&og)){ + /* we traversed */ + _decode_clear(vf); /* clear out stream state */ + ogg_stream_clear(&work_os); + } /* else, do nothing; next loop will scoop another page */ + } + } if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links)goto seek_error; /* sign of a bogus stream. - error out, leave - machine uninitialized */ - vf->current_link=link; - - ogg_stream_reset_serialno(&vf->os,vf->current_serialno); - ogg_stream_reset_serialno(&work_os,vf->current_serialno); - vf->ready_state=STREAMSET; - + int link; + long serialno = ogg_page_serialno(&og); + + for(link=0;linklinks;link++) + if(vf->serialnos[link]==serialno)break; + + if(link==vf->links) continue; /* not the desired Vorbis + bitstream section; keep + trying */ + vf->current_link=link; + vf->current_serialno=serialno; + ogg_stream_reset_serialno(&vf->os,serialno); + ogg_stream_reset_serialno(&work_os,serialno); + vf->ready_state=STREAMSET; + firstflag=(pagepos<=vf->dataoffsets[link]); } - + ogg_stream_pagein(&vf->os,&og); ogg_stream_pagein(&work_os,&og); - eosflag=ogg_page_eos(&og); + lastflag=ogg_page_eos(&og); + } } @@ -1100,7 +1394,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ if(!vf->seekable)return(OV_ENOSEEK); if(pos<0 || pos>total)return(OV_EINVAL); - + /* which bitstream section does this pcm offset occur in? */ for(link=vf->links-1;link>=0;link--){ total-=vf->pcmlengths[link*2+1]; @@ -1121,62 +1415,72 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime; ogg_int64_t target=pos-total+begintime; ogg_int64_t best=begin; - + ogg_page og; while(beginoffset); - if(result==OV_EREAD) goto seek_error; - if(result<0){ - if(bisect<=begin+1) - end=begin; /* found it */ - else{ - if(bisect==0) goto seek_error; - bisect-=CHUNKSIZE; - if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); - } - }else{ - ogg_int64_t granulepos=ogg_page_granulepos(&og); - if(granulepos==-1)continue; - if(granuleposoffset; /* raw offset of next page */ - begintime=granulepos; - - if(target-begintime>44100)break; - bisect=begin; /* *not* begin + 1 */ - }else{ - if(bisect<=begin+1) - end=begin; /* found it */ - else{ - if(end==vf->offset){ /* we're pretty close - we'd be stuck in */ - end=result; - bisect-=CHUNKSIZE; /* an endless loop otherwise. */ - if(bisect<=begin)bisect=begin+1; - _seek_helper(vf,bisect); - }else{ - end=result; - endtime=granulepos; - break; - } - } - } - } + result=_get_next_page(vf,&og,end-vf->offset); + if(result==OV_EREAD) goto seek_error; + if(result<0){ + if(bisect<=begin+1) + end=begin; /* found it */ + else{ + if(bisect==0) goto seek_error; + bisect-=CHUNKSIZE; + if(bisect<=begin)bisect=begin+1; + result=_seek_helper(vf,bisect); + if(result) goto seek_error; + } + }else{ + ogg_int64_t granulepos; + + if(ogg_page_serialno(&og)!=vf->serialnos[link]) + continue; + + granulepos=ogg_page_granulepos(&og); + if(granulepos==-1)continue; + + if(granuleposoffset; /* raw offset of next page */ + begintime=granulepos; + + if(target-begintime>44100)break; + bisect=begin; /* *not* begin + 1 */ + }else{ + if(bisect<=begin+1) + end=begin; /* found it */ + else{ + if(end==vf->offset){ /* we're pretty close - we'd be stuck in */ + end=result; + bisect-=CHUNKSIZE; /* an endless loop otherwise. */ + if(bisect<=begin)bisect=begin+1; + result=_seek_helper(vf,bisect); + if(result) goto seek_error; + }else{ + end=bisect; + endtime=granulepos; + break; + } + } + } + } } } @@ -1185,23 +1489,24 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ { ogg_page og; ogg_packet op; - + /* seek */ - _seek_helper(vf,best); + result=_seek_helper(vf,best); vf->pcm_offset=-1; - - if(_get_next_page(vf,&og,-1)<0)return(OV_EOF); /* shouldn't happen */ - + if(result) goto seek_error; + result=_get_next_page(vf,&og,-1); + if(result<0) goto seek_error; + if(link!=vf->current_link){ - /* Different link; dump entire decode machine */ - _decode_clear(vf); - - vf->current_link=link; - vf->current_serialno=ogg_page_serialno(&og); - vf->ready_state=STREAMSET; - + /* Different link; dump entire decode machine */ + _decode_clear(vf); + + vf->current_link=link; + vf->current_serialno=vf->serialnos[link]; + vf->ready_state=STREAMSET; + }else{ - vorbis_synthesis_restart(&vf->vd); + vorbis_synthesis_restart(&vf->vd); } ogg_stream_reset_serialno(&vf->os,vf->current_serialno); @@ -1209,40 +1514,42 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ /* pull out all but last packet; the one with granulepos */ while(1){ - result=ogg_stream_packetpeek(&vf->os,&op); - if(result==0){ - /* !!! the packet finishing this page originated on a + result=ogg_stream_packetpeek(&vf->os,&op); + if(result==0){ + /* !!! the packet finishing this page originated on a preceeding page. Keep fetching previous pages until we get one with a granulepos or without the 'continued' flag set. Then just use raw_seek for simplicity. */ - - _seek_helper(vf,best); - - while(1){ - result=_get_prev_page(vf,&og); - if(result<0) goto seek_error; - if(ogg_page_granulepos(&og)>-1 || - !ogg_page_continued(&og)){ - return ov_raw_seek(vf,result); - } - vf->offset=result; - } - } - if(result<0){ - result = OV_EBADPACKET; - goto seek_error; - } - if(op.granulepos!=-1){ - vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; - if(vf->pcm_offset<0)vf->pcm_offset=0; - vf->pcm_offset+=total; - break; - }else - result=ogg_stream_packetout(&vf->os,NULL); + + result=_seek_helper(vf,best); + if(result<0) goto seek_error; + + while(1){ + result=_get_prev_page(vf,&og); + if(result<0) goto seek_error; + if(ogg_page_serialno(&og)==vf->current_serialno && + (ogg_page_granulepos(&og)>-1 || + !ogg_page_continued(&og))){ + return ov_raw_seek(vf,result); + } + vf->offset=result; + } + } + if(result<0){ + result = OV_EBADPACKET; + goto seek_error; + } + if(op.granulepos!=-1){ + vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; + if(vf->pcm_offset<0)vf->pcm_offset=0; + vf->pcm_offset+=total; + break; + }else + result=ogg_stream_packetout(&vf->os,NULL); } } } - + /* verify result */ if(vf->pcm_offset>pos || pos>ov_pcm_total(vf,-1)){ result=OV_EFAULT; @@ -1251,7 +1558,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ vf->bittrack=0.f; vf->samptrack=0.f; return(0); - + seek_error: /* dump machine so we're in a known state */ vf->pcm_offset=-1; @@ -1259,7 +1566,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ return (int)result; } -/* seek to a sample offset relative to the decompressed pcm stream +/* seek to a sample offset relative to the decompressed pcm stream returns zero on success, nonzero on failure */ int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ @@ -1279,56 +1586,57 @@ int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ if(ret>0){ thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); if(thisblock<0){ - ogg_stream_packetout(&vf->os,NULL); - continue; /* non audio packet */ + ogg_stream_packetout(&vf->os,NULL); + continue; /* non audio packet */ } if(lastblock)vf->pcm_offset+=(lastblock+thisblock)>>2; - + if(vf->pcm_offset+((thisblock+ - vorbis_info_blocksize(vf->vi,1))>>2)>=pos)break; - + vorbis_info_blocksize(vf->vi,1))>>2)>=pos)break; + /* remove the packet from packet queue and track its granulepos */ ogg_stream_packetout(&vf->os,NULL); vorbis_synthesis_trackonly(&vf->vb,&op); /* set up a vb with only tracking, no pcm_decode */ - vorbis_synthesis_blockin(&vf->vd,&vf->vb); - + vorbis_synthesis_blockin(&vf->vd,&vf->vb); + /* end of logical stream case is hard, especially with exact - length positioning. */ - + length positioning. */ + if(op.granulepos>-1){ - int i; - /* always believe the stream markers */ - vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; - if(vf->pcm_offset<0)vf->pcm_offset=0; - for(i=0;icurrent_link;i++) - vf->pcm_offset+=vf->pcmlengths[i*2+1]; + int i; + /* always believe the stream markers */ + vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; + if(vf->pcm_offset<0)vf->pcm_offset=0; + for(i=0;icurrent_link;i++) + vf->pcm_offset+=vf->pcmlengths[i*2+1]; } - + lastblock=thisblock; - + }else{ if(ret<0 && ret!=OV_HOLE)break; - + /* suck in a new page */ if(_get_next_page(vf,&og,-1)<0)break; - if(vf->current_serialno!=ogg_page_serialno(&og))_decode_clear(vf); - + if(ogg_page_bos(&og))_decode_clear(vf); + if(vf->ready_statecurrent_serialno=ogg_page_serialno(&og); - for(link=0;linklinks;link++) - if(vf->serialnos[link]==vf->current_serialno)break; - if(link==vf->links)return(OV_EBADLINK); - vf->current_link=link; - - ogg_stream_reset_serialno(&vf->os,vf->current_serialno); - vf->ready_state=STREAMSET; - ret=_make_decode_ready(vf); - if(ret)return ret; - lastblock=0; + long serialno=ogg_page_serialno(&og); + int link; + + for(link=0;linklinks;link++) + if(vf->serialnos[link]==serialno)break; + if(link==vf->links) continue; + vf->current_link=link; + + vf->ready_state=STREAMSET; + vf->current_serialno=ogg_page_serialno(&og); + ogg_stream_reset_serialno(&vf->os,serialno); + ret=_make_decode_ready(vf); + if(ret)return ret; + lastblock=0; } ogg_stream_pagein(&vf->os,&og); @@ -1346,34 +1654,37 @@ int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ if(samples>target)samples=target; vorbis_synthesis_read(&vf->vd,samples); vf->pcm_offset+=samples; - + if(samplespcm_offset=ov_pcm_total(vf,-1); /* eof */ + vf->pcm_offset=ov_pcm_total(vf,-1); /* eof */ } return 0; } -/* seek to a playback time relative to the decompressed pcm stream +/* seek to a playback time relative to the decompressed pcm stream returns zero on success, nonzero on failure */ int ov_time_seek(OggVorbis_File *vf,double seconds){ /* translate time to PCM position and call ov_pcm_seek */ int link=-1; - ogg_int64_t pcm_total=ov_pcm_total(vf,-1); - double time_total=ov_time_total(vf,-1); + ogg_int64_t pcm_total=0; + double time_total=0.; if(vf->ready_stateseekable)return(OV_ENOSEEK); - if(seconds<0 || seconds>time_total)return(OV_EINVAL); - + if(seconds<0)return(OV_EINVAL); + /* which bitstream section does this time offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - pcm_total-=vf->pcmlengths[link*2+1]; - time_total-=ov_time_total(vf,link); - if(seconds>=time_total)break; + for(link=0;linklinks;link++){ + double addsec = ov_time_total(vf,link); + if(secondspcmlengths[link*2+1]; } + if(link==vf->links)return(OV_EINVAL); + /* enough information to convert time offset to pcm offset */ { ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; @@ -1381,26 +1692,29 @@ int ov_time_seek(OggVorbis_File *vf,double seconds){ } } -/* page-granularity version of ov_time_seek +/* page-granularity version of ov_time_seek returns zero on success, nonzero on failure */ int ov_time_seek_page(OggVorbis_File *vf,double seconds){ /* translate time to PCM position and call ov_pcm_seek */ int link=-1; - ogg_int64_t pcm_total=ov_pcm_total(vf,-1); - double time_total=ov_time_total(vf,-1); + ogg_int64_t pcm_total=0; + double time_total=0.; if(vf->ready_stateseekable)return(OV_ENOSEEK); - if(seconds<0 || seconds>time_total)return(OV_EINVAL); - + if(seconds<0)return(OV_EINVAL); + /* which bitstream section does this time offset occur in? */ - for(link=vf->links-1;link>=0;link--){ - pcm_total-=vf->pcmlengths[link*2+1]; - time_total-=ov_time_total(vf,link); - if(seconds>=time_total)break; + for(link=0;linklinks;link++){ + double addsec = ov_time_total(vf,link); + if(secondspcmlengths[link*2+1]; } + if(link==vf->links)return(OV_EINVAL); + /* enough information to convert time offset to pcm offset */ { ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; @@ -1426,12 +1740,12 @@ double ov_time_tell(OggVorbis_File *vf){ int link=0; ogg_int64_t pcm_total=0; double time_total=0.f; - + if(vf->ready_stateseekable){ pcm_total=ov_pcm_total(vf,-1); time_total=ov_time_total(vf,-1); - + /* which bitstream section does this time offset occur in? */ for(link=vf->links-1;link>=0;link--){ pcm_total-=vf->pcmlengths[link*2+1]; @@ -1446,7 +1760,7 @@ double ov_time_tell(OggVorbis_File *vf){ /* link: -1) return the vorbis_info struct for the bitstream section currently being decoded 0-n) to request information for a specific bitstream section - + In the case of a non-seekable bitstream, any call returns the current bitstream. NULL in the case that the machine is not initialized */ @@ -1455,14 +1769,14 @@ vorbis_info *ov_info(OggVorbis_File *vf,int link){ if(vf->seekable){ if(link<0) if(vf->ready_state>=STREAMSET) - return vf->vi+vf->current_link; + return vf->vi+vf->current_link; else return vf->vi; else if(link>=vf->links) - return NULL; + return NULL; else - return vf->vi+link; + return vf->vi+link; }else{ return vf->vi; } @@ -1473,14 +1787,14 @@ vorbis_comment *ov_comment(OggVorbis_File *vf,int link){ if(vf->seekable){ if(link<0) if(vf->ready_state>=STREAMSET) - return vf->vc+vf->current_link; + return vf->vc+vf->current_link; else - return vf->vc; + return vf->vc; else if(link>=vf->links) - return NULL; + return NULL; else - return vf->vc+link; + return vf->vc+link; }else{ return vf->vc; } @@ -1508,24 +1822,30 @@ static int host_is_big_endian() { index within the physical bitstream. Note that the accessor functions above are aware of this dichotomy). + ov_read_filter is exactly the same as ov_read except that it processes + the decoded audio data through a filter before packing it into the + requested format. This gives greater accuracy than applying a filter + after the audio has been converted into integral PCM. + input values: buffer) a buffer to hold packed PCM data for return - length) the byte length requested to be placed into buffer - bigendianp) should the data be packed LSB first (0) or - MSB first (1) - word) word size for output. currently 1 (byte) or - 2 (16 bit short) + length) the byte length requested to be placed into buffer + bigendianp) should the data be packed LSB first (0) or + MSB first (1) + word) word size for output. currently 1 (byte) or + 2 (16 bit short) return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) 0) EOF - n) number of bytes of PCM actually returned. The - below works on a packet-by-packet basis, so the - return length is not related to the 'length' passed - in, just guaranteed to fit. + n) number of bytes of PCM actually returned. The + below works on a packet-by-packet basis, so the + return length is not related to the 'length' passed + in, just guaranteed to fit. - *section) set to the logical bitstream number */ + *section) set to the logical bitstream number */ -long ov_read(OggVorbis_File *vf,char *buffer,int length, - int bigendianp,int word,int sgned,int *bitstream){ +long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, + int bigendianp,int word,int sgned,int *bitstream, + void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param){ int i,j; int host_endian = host_is_big_endian(); @@ -1544,17 +1864,17 @@ long ov_read(OggVorbis_File *vf,char *buffer,int length, { int ret=_fetch_and_process_packet(vf,NULL,1,1); if(ret==OV_EOF) - return(0); + return(0); if(ret<=0) - return(ret); + return(ret); } } if(samples>0){ - + /* yay! proceed to pack data into the byte buffer */ - + long channels=ov_info(vf,-1)->channels; long bytespersample=word * channels; vorbis_fpu_control fpu; @@ -1562,90 +1882,94 @@ long ov_read(OggVorbis_File *vf,char *buffer,int length, if(samples <= 0) return OV_EINVAL; - + + /* Here. */ + if(filter) + filter(pcm,channels,samples,filter_param); + /* a tight loop to pack each size */ { int val; if(word==1){ - int off=(sgned?0:128); - vorbis_fpu_setround(&fpu); - for(j=0;j127)val=127; - else if(val<-128)val=-128; - *buffer++=val+off; - } - vorbis_fpu_restore(fpu); + int off=(sgned?0:128); + vorbis_fpu_setround(&fpu); + for(j=0;j127)val=127; + else if(val<-128)val=-128; + *buffer++=val+off; + } + vorbis_fpu_restore(fpu); }else{ - int off=(sgned?0:32768); - - if(host_endian==bigendianp){ - if(sgned){ - - vorbis_fpu_setround(&fpu); - for(i=0;i32767)val=32767; - else if(val<-32768)val=-32768; - *dest=val; - dest+=channels; - } - } - vorbis_fpu_restore(fpu); - - }else{ - - vorbis_fpu_setround(&fpu); - for(i=0;i32767)val=32767; - else if(val<-32768)val=-32768; - *dest=val+off; - dest+=channels; - } - } - vorbis_fpu_restore(fpu); - - } - }else if(bigendianp){ - - vorbis_fpu_setround(&fpu); - for(j=0;j32767)val=32767; - else if(val<-32768)val=-32768; - val+=off; - *buffer++=(val>>8); - *buffer++=(val&0xff); - } - vorbis_fpu_restore(fpu); - - }else{ - int val; - vorbis_fpu_setround(&fpu); - for(j=0;j32767)val=32767; - else if(val<-32768)val=-32768; - val+=off; - *buffer++=(val&0xff); - *buffer++=(val>>8); - } - vorbis_fpu_restore(fpu); - - } + int off=(sgned?0:32768); + + if(host_endian==bigendianp){ + if(sgned){ + + vorbis_fpu_setround(&fpu); + for(i=0;i32767)val=32767; + else if(val<-32768)val=-32768; + *dest=val; + dest+=channels; + } + } + vorbis_fpu_restore(fpu); + + }else{ + + vorbis_fpu_setround(&fpu); + for(i=0;i32767)val=32767; + else if(val<-32768)val=-32768; + *dest=val+off; + dest+=channels; + } + } + vorbis_fpu_restore(fpu); + + } + }else if(bigendianp){ + + vorbis_fpu_setround(&fpu); + for(j=0;j32767)val=32767; + else if(val<-32768)val=-32768; + val+=off; + *buffer++=(val>>8); + *buffer++=(val&0xff); + } + vorbis_fpu_restore(fpu); + + }else{ + int val; + vorbis_fpu_setround(&fpu); + for(j=0;j32767)val=32767; + else if(val<-32768)val=-32768; + val+=off; + *buffer++=(val&0xff); + *buffer++=(val>>8); + } + vorbis_fpu_restore(fpu); + + } } } - + vorbis_synthesis_read(&vf->vd,samples); vf->pcm_offset+=samples; if(bitstream)*bitstream=vf->current_link; @@ -1655,22 +1979,27 @@ long ov_read(OggVorbis_File *vf,char *buffer,int length, } } +long ov_read(OggVorbis_File *vf,char *buffer,int length, + int bigendianp,int word,int sgned,int *bitstream){ + return ov_read_filter(vf, buffer, length, bigendianp, word, sgned, bitstream, NULL, NULL); +} + /* input values: pcm_channels) a float vector per channel of output - length) the sample length being read by the app + length) the sample length being read by the app return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) 0) EOF - n) number of samples of PCM actually returned. The - below works on a packet-by-packet basis, so the - return length is not related to the 'length' passed - in, just guaranteed to fit. + n) number of samples of PCM actually returned. The + below works on a packet-by-packet basis, so the + return length is not related to the 'length' passed + in, just guaranteed to fit. - *section) set to the logical bitstream number */ + *section) set to the logical bitstream number */ long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length, - int *bitstream){ + int *bitstream){ if(vf->ready_statevd,&pcm); if(samples){ - if(pcm_channels)*pcm_channels=pcm; - if(samples>length)samples=length; - vorbis_synthesis_read(&vf->vd,samples); - vf->pcm_offset+=samples; - if(bitstream)*bitstream=vf->current_link; - return samples; + if(pcm_channels)*pcm_channels=pcm; + if(samples>length)samples=length; + vorbis_synthesis_read(&vf->vd,samples); + vf->pcm_offset+=samples; + if(bitstream)*bitstream=vf->current_link; + return samples; } } @@ -1700,13 +2029,11 @@ long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length, } extern float *vorbis_window(vorbis_dsp_state *v,int W); -extern void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB, - ogg_int64_t off); static void _ov_splice(float **pcm,float **lappcm, - int n1, int n2, - int ch1, int ch2, - float *w1, float *w2){ + int n1, int n2, + int ch1, int ch2, + float *w1, float *w2){ int i,j; float *w=w1; int n=n1; @@ -1737,7 +2064,7 @@ static void _ov_splice(float **pcm,float **lappcm, } } - + /* make sure vf is INITSET */ static int _ov_initset(OggVorbis_File *vf){ while(1){ @@ -1759,13 +2086,13 @@ static int _ov_initprime(OggVorbis_File *vf){ while(1){ if(vf->ready_state==INITSET) if(vorbis_synthesis_pcmout(vd,NULL))break; - + /* suck in another packet */ { int ret=_fetch_and_process_packet(vf,NULL,1,0); if(ret<0 && ret!=OV_HOLE)return(ret); } - } + } return 0; } @@ -1773,7 +2100,7 @@ static int _ov_initprime(OggVorbis_File *vf){ unreturned, already-decoded pcm, remaining PCM we will need to decode, or synthetic postextrapolation from last packets. */ static void _ov_getlap(OggVorbis_File *vf,vorbis_info *vi,vorbis_dsp_state *vd, - float **lappcm,int lapsize){ + float **lappcm,int lapsize){ int lapcount=0,i; float **pcm; @@ -1783,7 +2110,7 @@ static void _ov_getlap(OggVorbis_File *vf,vorbis_info *vi,vorbis_dsp_state *vd, if(samples){ if(samples>lapsize-lapcount)samples=lapsize-lapcount; for(i=0;ichannels;i++) - memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); + memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); lapcount+=samples; vorbis_synthesis_read(vd,samples); }else{ @@ -1799,12 +2126,12 @@ static void _ov_getlap(OggVorbis_File *vf,vorbis_info *vi,vorbis_dsp_state *vd, int samples=vorbis_synthesis_lapout(&vf->vd,&pcm); if(samples==0){ for(i=0;ichannels;i++) - memset(lappcm[i]+lapcount,0,sizeof(**pcm)*lapsize-lapcount); + memset(lappcm[i]+lapcount,0,sizeof(**pcm)*lapsize-lapcount); lapcount=lapsize; }else{ if(samples>lapsize-lapcount)samples=lapsize-lapcount; for(i=0;ichannels;i++) - memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); + memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); lapcount+=samples; } } @@ -1852,18 +2179,21 @@ int ov_crosslap(OggVorbis_File *vf1, OggVorbis_File *vf2){ buffer of vf2 */ /* consolidate and expose the buffer. */ vorbis_synthesis_lapout(&vf2->vd,&pcm); + +#if 0 _analysis_output_always("pcmL",0,pcm[0],n1*2,0,0,0); _analysis_output_always("pcmR",0,pcm[1],n1*2,0,0,0); +#endif /* splice */ _ov_splice(pcm,lappcm,n1,n2,vi1->channels,vi2->channels,w1,w2); - + /* done */ return(0); } static int _ov_64_seek_lap(OggVorbis_File *vf,ogg_int64_t pos, - int (*localseek)(OggVorbis_File *,ogg_int64_t)){ + int (*localseek)(OggVorbis_File *,ogg_int64_t)){ vorbis_info *vi; float **lappcm; float **pcm; @@ -1876,13 +2206,13 @@ static int _ov_64_seek_lap(OggVorbis_File *vf,ogg_int64_t pos, if(ret)return(ret); vi=ov_info(vf,-1); hs=ov_halfrate_p(vf); - + ch1=vi->channels; n1=vorbis_info_blocksize(vi,0)>>(1+hs); w1=vorbis_window(&vf->vd,0); /* window arrays from libvorbis are - persistent; even if the decode state - from this link gets dumped, this - window array continues to exist */ + persistent; even if the decode state + from this link gets dumped, this + window array continues to exist */ lappcm=alloca(sizeof(*lappcm)*ch1); for(i=0;ichannels; n1=vorbis_info_blocksize(vi,0)>>(1+hs); w1=vorbis_window(&vf->vd,0); /* window arrays from libvorbis are - persistent; even if the decode state - from this link gets dumped, this - window array continues to exist */ + persistent; even if the decode state + from this link gets dumped, this + window array continues to exist */ lappcm=alloca(sizeof(*lappcm)*ch1); for(i=0;i +#include +#include "os.h" +#include "misc.h" + +static const float vwin64[32] = { + 0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, + 0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F, + 0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F, + 0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F, + 0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F, + 0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F, + 0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F, + 0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F, +}; + +static const float vwin128[64] = { + 0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F, + 0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F, + 0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F, + 0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F, + 0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F, + 0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F, + 0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F, + 0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F, + 0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F, + 0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F, + 0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F, + 0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F, + 0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F, + 0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F, + 0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F, + 0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F, +}; + +static const float vwin256[128] = { + 0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F, + 0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F, + 0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F, + 0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F, + 0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F, + 0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F, + 0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F, + 0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F, + 0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F, + 0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F, + 0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F, + 0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F, + 0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F, + 0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F, + 0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F, + 0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F, + 0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F, + 0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F, + 0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F, + 0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F, + 0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F, + 0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F, + 0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F, + 0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F, + 0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F, + 0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F, + 0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F, + 0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F, + 0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F, + 0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F, + 0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F, + 0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F, +}; + +static const float vwin512[256] = { + 0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F, + 0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F, + 0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F, + 0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F, + 0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F, + 0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F, + 0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F, + 0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F, + 0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F, + 0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F, + 0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F, + 0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F, + 0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F, + 0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F, + 0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F, + 0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F, + 0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F, + 0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F, + 0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F, + 0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F, + 0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F, + 0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F, + 0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F, + 0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F, + 0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F, + 0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F, + 0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F, + 0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F, + 0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F, + 0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F, + 0.6542670475F, 0.6614989319F, 0.6686768267F, 0.6757988210F, + 0.6828630426F, 0.6898676592F, 0.6968108799F, 0.7036909564F, + 0.7105061843F, 0.7172549043F, 0.7239355032F, 0.7305464154F, + 0.7370861235F, 0.7435531598F, 0.7499461068F, 0.7562635986F, + 0.7625043214F, 0.7686670148F, 0.7747504721F, 0.7807535410F, + 0.7866751247F, 0.7925141825F, 0.7982697296F, 0.8039408387F, + 0.8095266395F, 0.8150263196F, 0.8204391248F, 0.8257643590F, + 0.8310013848F, 0.8361496236F, 0.8412085555F, 0.8461777194F, + 0.8510567129F, 0.8558451924F, 0.8605428730F, 0.8651495278F, + 0.8696649882F, 0.8740891432F, 0.8784219392F, 0.8826633797F, + 0.8868135244F, 0.8908724888F, 0.8948404441F, 0.8987176157F, + 0.9025042831F, 0.9062007791F, 0.9098074886F, 0.9133248482F, + 0.9167533451F, 0.9200935163F, 0.9233459472F, 0.9265112712F, + 0.9295901680F, 0.9325833632F, 0.9354916263F, 0.9383157705F, + 0.9410566504F, 0.9437151618F, 0.9462922398F, 0.9487888576F, + 0.9512060252F, 0.9535447882F, 0.9558062262F, 0.9579914516F, + 0.9601016078F, 0.9621378683F, 0.9641014348F, 0.9659935361F, + 0.9678154261F, 0.9695683830F, 0.9712537071F, 0.9728727198F, + 0.9744267618F, 0.9759171916F, 0.9773453842F, 0.9787127293F, + 0.9800206298F, 0.9812705006F, 0.9824637665F, 0.9836018613F, + 0.9846862258F, 0.9857183066F, 0.9866995544F, 0.9876314227F, + 0.9885153662F, 0.9893528393F, 0.9901452948F, 0.9908941823F, + 0.9916009470F, 0.9922670279F, 0.9928938570F, 0.9934828574F, + 0.9940354423F, 0.9945530133F, 0.9950369595F, 0.9954886562F, + 0.9959094633F, 0.9963007242F, 0.9966637649F, 0.9969998925F, + 0.9973103939F, 0.9975965351F, 0.9978595598F, 0.9981006885F, + 0.9983211172F, 0.9985220166F, 0.9987045311F, 0.9988697776F, + 0.9990188449F, 0.9991527924F, 0.9992726499F, 0.9993794157F, + 0.9994740570F, 0.9995575079F, 0.9996306699F, 0.9996944099F, + 0.9997495605F, 0.9997969190F, 0.9998372465F, 0.9998712678F, + 0.9998996704F, 0.9999231041F, 0.9999421807F, 0.9999574732F, + 0.9999695157F, 0.9999788026F, 0.9999857885F, 0.9999908879F, + 0.9999944746F, 0.9999968817F, 0.9999984010F, 0.9999992833F, + 0.9999997377F, 0.9999999317F, 0.9999999911F, 0.9999999999F, +}; + +static const float vwin1024[512] = { + 0.0000036962F, 0.0000332659F, 0.0000924041F, 0.0001811086F, + 0.0002993761F, 0.0004472021F, 0.0006245811F, 0.0008315063F, + 0.0010679699F, 0.0013339631F, 0.0016294757F, 0.0019544965F, + 0.0023090133F, 0.0026930125F, 0.0031064797F, 0.0035493989F, + 0.0040217533F, 0.0045235250F, 0.0050546946F, 0.0056152418F, + 0.0062051451F, 0.0068243817F, 0.0074729278F, 0.0081507582F, + 0.0088578466F, 0.0095941655F, 0.0103596863F, 0.0111543789F, + 0.0119782122F, 0.0128311538F, 0.0137131701F, 0.0146242260F, + 0.0155642855F, 0.0165333111F, 0.0175312640F, 0.0185581042F, + 0.0196137903F, 0.0206982797F, 0.0218115284F, 0.0229534910F, + 0.0241241208F, 0.0253233698F, 0.0265511886F, 0.0278075263F, + 0.0290923308F, 0.0304055484F, 0.0317471241F, 0.0331170013F, + 0.0345151222F, 0.0359414274F, 0.0373958560F, 0.0388783456F, + 0.0403888325F, 0.0419272511F, 0.0434935347F, 0.0450876148F, + 0.0467094213F, 0.0483588828F, 0.0500359261F, 0.0517404765F, + 0.0534724575F, 0.0552317913F, 0.0570183983F, 0.0588321971F, + 0.0606731048F, 0.0625410369F, 0.0644359070F, 0.0663576272F, + 0.0683061077F, 0.0702812571F, 0.0722829821F, 0.0743111878F, + 0.0763657775F, 0.0784466526F, 0.0805537129F, 0.0826868561F, + 0.0848459782F, 0.0870309736F, 0.0892417345F, 0.0914781514F, + 0.0937401128F, 0.0960275056F, 0.0983402145F, 0.1006781223F, + 0.1030411101F, 0.1054290568F, 0.1078418397F, 0.1102793336F, + 0.1127414119F, 0.1152279457F, 0.1177388042F, 0.1202738544F, + 0.1228329618F, 0.1254159892F, 0.1280227980F, 0.1306532471F, + 0.1333071937F, 0.1359844927F, 0.1386849970F, 0.1414085575F, + 0.1441550230F, 0.1469242403F, 0.1497160539F, 0.1525303063F, + 0.1553668381F, 0.1582254875F, 0.1611060909F, 0.1640084822F, + 0.1669324936F, 0.1698779549F, 0.1728446939F, 0.1758325362F, + 0.1788413055F, 0.1818708232F, 0.1849209084F, 0.1879913785F, + 0.1910820485F, 0.1941927312F, 0.1973232376F, 0.2004733764F, + 0.2036429541F, 0.2068317752F, 0.2100396421F, 0.2132663552F, + 0.2165117125F, 0.2197755102F, 0.2230575422F, 0.2263576007F, + 0.2296754753F, 0.2330109540F, 0.2363638225F, 0.2397338646F, + 0.2431208619F, 0.2465245941F, 0.2499448389F, 0.2533813719F, + 0.2568339669F, 0.2603023956F, 0.2637864277F, 0.2672858312F, + 0.2708003718F, 0.2743298135F, 0.2778739186F, 0.2814324472F, + 0.2850051576F, 0.2885918065F, 0.2921921485F, 0.2958059366F, + 0.2994329219F, 0.3030728538F, 0.3067254799F, 0.3103905462F, + 0.3140677969F, 0.3177569747F, 0.3214578205F, 0.3251700736F, + 0.3288934718F, 0.3326277513F, 0.3363726468F, 0.3401278914F, + 0.3438932168F, 0.3476683533F, 0.3514530297F, 0.3552469734F, + 0.3590499106F, 0.3628615659F, 0.3666816630F, 0.3705099239F, + 0.3743460698F, 0.3781898204F, 0.3820408945F, 0.3858990095F, + 0.3897638820F, 0.3936352274F, 0.3975127601F, 0.4013961936F, + 0.4052852405F, 0.4091796123F, 0.4130790198F, 0.4169831732F, + 0.4208917815F, 0.4248045534F, 0.4287211965F, 0.4326414181F, + 0.4365649248F, 0.4404914225F, 0.4444206167F, 0.4483522125F, + 0.4522859146F, 0.4562214270F, 0.4601584538F, 0.4640966984F, + 0.4680358644F, 0.4719756548F, 0.4759157726F, 0.4798559209F, + 0.4837958024F, 0.4877351199F, 0.4916735765F, 0.4956108751F, + 0.4995467188F, 0.5034808109F, 0.5074128550F, 0.5113425550F, + 0.5152696149F, 0.5191937395F, 0.5231146336F, 0.5270320028F, + 0.5309455530F, 0.5348549910F, 0.5387600239F, 0.5426603597F, + 0.5465557070F, 0.5504457754F, 0.5543302752F, 0.5582089175F, + 0.5620814145F, 0.5659474793F, 0.5698068262F, 0.5736591704F, + 0.5775042283F, 0.5813417176F, 0.5851713571F, 0.5889928670F, + 0.5928059689F, 0.5966103856F, 0.6004058415F, 0.6041920626F, + 0.6079687761F, 0.6117357113F, 0.6154925986F, 0.6192391705F, + 0.6229751612F, 0.6267003064F, 0.6304143441F, 0.6341170137F, + 0.6378080569F, 0.6414872173F, 0.6451542405F, 0.6488088741F, + 0.6524508681F, 0.6560799742F, 0.6596959469F, 0.6632985424F, + 0.6668875197F, 0.6704626398F, 0.6740236662F, 0.6775703649F, + 0.6811025043F, 0.6846198554F, 0.6881221916F, 0.6916092892F, + 0.6950809269F, 0.6985368861F, 0.7019769510F, 0.7054009085F, + 0.7088085484F, 0.7121996632F, 0.7155740484F, 0.7189315023F, + 0.7222718263F, 0.7255948245F, 0.7289003043F, 0.7321880760F, + 0.7354579530F, 0.7387097518F, 0.7419432921F, 0.7451583966F, + 0.7483548915F, 0.7515326059F, 0.7546913723F, 0.7578310265F, + 0.7609514077F, 0.7640523581F, 0.7671337237F, 0.7701953535F, + 0.7732371001F, 0.7762588195F, 0.7792603711F, 0.7822416178F, + 0.7852024259F, 0.7881426654F, 0.7910622097F, 0.7939609356F, + 0.7968387237F, 0.7996954579F, 0.8025310261F, 0.8053453193F, + 0.8081382324F, 0.8109096638F, 0.8136595156F, 0.8163876936F, + 0.8190941071F, 0.8217786690F, 0.8244412960F, 0.8270819086F, + 0.8297004305F, 0.8322967896F, 0.8348709171F, 0.8374227481F, + 0.8399522213F, 0.8424592789F, 0.8449438672F, 0.8474059356F, + 0.8498454378F, 0.8522623306F, 0.8546565748F, 0.8570281348F, + 0.8593769787F, 0.8617030779F, 0.8640064080F, 0.8662869477F, + 0.8685446796F, 0.8707795899F, 0.8729916682F, 0.8751809079F, + 0.8773473059F, 0.8794908626F, 0.8816115819F, 0.8837094713F, + 0.8857845418F, 0.8878368079F, 0.8898662874F, 0.8918730019F, + 0.8938569760F, 0.8958182380F, 0.8977568194F, 0.8996727552F, + 0.9015660837F, 0.9034368465F, 0.9052850885F, 0.9071108577F, + 0.9089142057F, 0.9106951869F, 0.9124538591F, 0.9141902832F, + 0.9159045233F, 0.9175966464F, 0.9192667228F, 0.9209148257F, + 0.9225410313F, 0.9241454187F, 0.9257280701F, 0.9272890704F, + 0.9288285075F, 0.9303464720F, 0.9318430576F, 0.9333183603F, + 0.9347724792F, 0.9362055158F, 0.9376175745F, 0.9390087622F, + 0.9403791881F, 0.9417289644F, 0.9430582055F, 0.9443670283F, + 0.9456555521F, 0.9469238986F, 0.9481721917F, 0.9494005577F, + 0.9506091252F, 0.9517980248F, 0.9529673894F, 0.9541173540F, + 0.9552480557F, 0.9563596334F, 0.9574522282F, 0.9585259830F, + 0.9595810428F, 0.9606175542F, 0.9616356656F, 0.9626355274F, + 0.9636172915F, 0.9645811114F, 0.9655271425F, 0.9664555414F, + 0.9673664664F, 0.9682600774F, 0.9691365355F, 0.9699960034F, + 0.9708386448F, 0.9716646250F, 0.9724741103F, 0.9732672685F, + 0.9740442683F, 0.9748052795F, 0.9755504729F, 0.9762800205F, + 0.9769940950F, 0.9776928703F, 0.9783765210F, 0.9790452223F, + 0.9796991504F, 0.9803384823F, 0.9809633954F, 0.9815740679F, + 0.9821706784F, 0.9827534063F, 0.9833224312F, 0.9838779332F, + 0.9844200928F, 0.9849490910F, 0.9854651087F, 0.9859683274F, + 0.9864589286F, 0.9869370940F, 0.9874030054F, 0.9878568447F, + 0.9882987937F, 0.9887290343F, 0.9891477481F, 0.9895551169F, + 0.9899513220F, 0.9903365446F, 0.9907109658F, 0.9910747662F, + 0.9914281260F, 0.9917712252F, 0.9921042433F, 0.9924273593F, + 0.9927407516F, 0.9930445982F, 0.9933390763F, 0.9936243626F, + 0.9939006331F, 0.9941680631F, 0.9944268269F, 0.9946770982F, + 0.9949190498F, 0.9951528537F, 0.9953786808F, 0.9955967011F, + 0.9958070836F, 0.9960099963F, 0.9962056061F, 0.9963940787F, + 0.9965755786F, 0.9967502693F, 0.9969183129F, 0.9970798704F, + 0.9972351013F, 0.9973841640F, 0.9975272151F, 0.9976644103F, + 0.9977959036F, 0.9979218476F, 0.9980423932F, 0.9981576901F, + 0.9982678862F, 0.9983731278F, 0.9984735596F, 0.9985693247F, + 0.9986605645F, 0.9987474186F, 0.9988300248F, 0.9989085193F, + 0.9989830364F, 0.9990537085F, 0.9991206662F, 0.9991840382F, + 0.9992439513F, 0.9993005303F, 0.9993538982F, 0.9994041757F, + 0.9994514817F, 0.9994959330F, 0.9995376444F, 0.9995767286F, + 0.9996132960F, 0.9996474550F, 0.9996793121F, 0.9997089710F, + 0.9997365339F, 0.9997621003F, 0.9997857677F, 0.9998076311F, + 0.9998277836F, 0.9998463156F, 0.9998633155F, 0.9998788692F, + 0.9998930603F, 0.9999059701F, 0.9999176774F, 0.9999282586F, + 0.9999377880F, 0.9999463370F, 0.9999539749F, 0.9999607685F, + 0.9999667820F, 0.9999720773F, 0.9999767136F, 0.9999807479F, + 0.9999842344F, 0.9999872249F, 0.9999897688F, 0.9999919127F, + 0.9999937009F, 0.9999951749F, 0.9999963738F, 0.9999973342F, + 0.9999980900F, 0.9999986724F, 0.9999991103F, 0.9999994297F, + 0.9999996543F, 0.9999998049F, 0.9999999000F, 0.9999999552F, + 0.9999999836F, 0.9999999957F, 0.9999999994F, 1.0000000000F, +}; + +static const float vwin2048[1024] = { + 0.0000009241F, 0.0000083165F, 0.0000231014F, 0.0000452785F, + 0.0000748476F, 0.0001118085F, 0.0001561608F, 0.0002079041F, + 0.0002670379F, 0.0003335617F, 0.0004074748F, 0.0004887765F, + 0.0005774661F, 0.0006735427F, 0.0007770054F, 0.0008878533F, + 0.0010060853F, 0.0011317002F, 0.0012646969F, 0.0014050742F, + 0.0015528307F, 0.0017079650F, 0.0018704756F, 0.0020403610F, + 0.0022176196F, 0.0024022497F, 0.0025942495F, 0.0027936173F, + 0.0030003511F, 0.0032144490F, 0.0034359088F, 0.0036647286F, + 0.0039009061F, 0.0041444391F, 0.0043953253F, 0.0046535621F, + 0.0049191472F, 0.0051920781F, 0.0054723520F, 0.0057599664F, + 0.0060549184F, 0.0063572052F, 0.0066668239F, 0.0069837715F, + 0.0073080449F, 0.0076396410F, 0.0079785566F, 0.0083247884F, + 0.0086783330F, 0.0090391871F, 0.0094073470F, 0.0097828092F, + 0.0101655700F, 0.0105556258F, 0.0109529726F, 0.0113576065F, + 0.0117695237F, 0.0121887200F, 0.0126151913F, 0.0130489335F, + 0.0134899422F, 0.0139382130F, 0.0143937415F, 0.0148565233F, + 0.0153265536F, 0.0158038279F, 0.0162883413F, 0.0167800889F, + 0.0172790660F, 0.0177852675F, 0.0182986882F, 0.0188193231F, + 0.0193471668F, 0.0198822141F, 0.0204244594F, 0.0209738974F, + 0.0215305225F, 0.0220943289F, 0.0226653109F, 0.0232434627F, + 0.0238287784F, 0.0244212519F, 0.0250208772F, 0.0256276481F, + 0.0262415582F, 0.0268626014F, 0.0274907711F, 0.0281260608F, + 0.0287684638F, 0.0294179736F, 0.0300745833F, 0.0307382859F, + 0.0314090747F, 0.0320869424F, 0.0327718819F, 0.0334638860F, + 0.0341629474F, 0.0348690586F, 0.0355822122F, 0.0363024004F, + 0.0370296157F, 0.0377638502F, 0.0385050960F, 0.0392533451F, + 0.0400085896F, 0.0407708211F, 0.0415400315F, 0.0423162123F, + 0.0430993552F, 0.0438894515F, 0.0446864926F, 0.0454904698F, + 0.0463013742F, 0.0471191969F, 0.0479439288F, 0.0487755607F, + 0.0496140836F, 0.0504594879F, 0.0513117642F, 0.0521709031F, + 0.0530368949F, 0.0539097297F, 0.0547893979F, 0.0556758894F, + 0.0565691941F, 0.0574693019F, 0.0583762026F, 0.0592898858F, + 0.0602103410F, 0.0611375576F, 0.0620715250F, 0.0630122324F, + 0.0639596688F, 0.0649138234F, 0.0658746848F, 0.0668422421F, + 0.0678164838F, 0.0687973985F, 0.0697849746F, 0.0707792005F, + 0.0717800645F, 0.0727875547F, 0.0738016591F, 0.0748223656F, + 0.0758496620F, 0.0768835359F, 0.0779239751F, 0.0789709668F, + 0.0800244985F, 0.0810845574F, 0.0821511306F, 0.0832242052F, + 0.0843037679F, 0.0853898056F, 0.0864823050F, 0.0875812525F, + 0.0886866347F, 0.0897984378F, 0.0909166480F, 0.0920412513F, + 0.0931722338F, 0.0943095813F, 0.0954532795F, 0.0966033140F, + 0.0977596702F, 0.0989223336F, 0.1000912894F, 0.1012665227F, + 0.1024480185F, 0.1036357616F, 0.1048297369F, 0.1060299290F, + 0.1072363224F, 0.1084489014F, 0.1096676504F, 0.1108925534F, + 0.1121235946F, 0.1133607577F, 0.1146040267F, 0.1158533850F, + 0.1171088163F, 0.1183703040F, 0.1196378312F, 0.1209113812F, + 0.1221909370F, 0.1234764815F, 0.1247679974F, 0.1260654674F, + 0.1273688740F, 0.1286781995F, 0.1299934263F, 0.1313145365F, + 0.1326415121F, 0.1339743349F, 0.1353129866F, 0.1366574490F, + 0.1380077035F, 0.1393637315F, 0.1407255141F, 0.1420930325F, + 0.1434662677F, 0.1448452004F, 0.1462298115F, 0.1476200814F, + 0.1490159906F, 0.1504175195F, 0.1518246482F, 0.1532373569F, + 0.1546556253F, 0.1560794333F, 0.1575087606F, 0.1589435866F, + 0.1603838909F, 0.1618296526F, 0.1632808509F, 0.1647374648F, + 0.1661994731F, 0.1676668546F, 0.1691395880F, 0.1706176516F, + 0.1721010238F, 0.1735896829F, 0.1750836068F, 0.1765827736F, + 0.1780871610F, 0.1795967468F, 0.1811115084F, 0.1826314234F, + 0.1841564689F, 0.1856866221F, 0.1872218600F, 0.1887621595F, + 0.1903074974F, 0.1918578503F, 0.1934131947F, 0.1949735068F, + 0.1965387630F, 0.1981089393F, 0.1996840117F, 0.2012639560F, + 0.2028487479F, 0.2044383630F, 0.2060327766F, 0.2076319642F, + 0.2092359007F, 0.2108445614F, 0.2124579211F, 0.2140759545F, + 0.2156986364F, 0.2173259411F, 0.2189578432F, 0.2205943168F, + 0.2222353361F, 0.2238808751F, 0.2255309076F, 0.2271854073F, + 0.2288443480F, 0.2305077030F, 0.2321754457F, 0.2338475493F, + 0.2355239869F, 0.2372047315F, 0.2388897560F, 0.2405790329F, + 0.2422725350F, 0.2439702347F, 0.2456721043F, 0.2473781159F, + 0.2490882418F, 0.2508024539F, 0.2525207240F, 0.2542430237F, + 0.2559693248F, 0.2576995986F, 0.2594338166F, 0.2611719498F, + 0.2629139695F, 0.2646598466F, 0.2664095520F, 0.2681630564F, + 0.2699203304F, 0.2716813445F, 0.2734460691F, 0.2752144744F, + 0.2769865307F, 0.2787622079F, 0.2805414760F, 0.2823243047F, + 0.2841106637F, 0.2859005227F, 0.2876938509F, 0.2894906179F, + 0.2912907928F, 0.2930943447F, 0.2949012426F, 0.2967114554F, + 0.2985249520F, 0.3003417009F, 0.3021616708F, 0.3039848301F, + 0.3058111471F, 0.3076405901F, 0.3094731273F, 0.3113087266F, + 0.3131473560F, 0.3149889833F, 0.3168335762F, 0.3186811024F, + 0.3205315294F, 0.3223848245F, 0.3242409552F, 0.3260998886F, + 0.3279615918F, 0.3298260319F, 0.3316931758F, 0.3335629903F, + 0.3354354423F, 0.3373104982F, 0.3391881247F, 0.3410682882F, + 0.3429509551F, 0.3448360917F, 0.3467236642F, 0.3486136387F, + 0.3505059811F, 0.3524006575F, 0.3542976336F, 0.3561968753F, + 0.3580983482F, 0.3600020179F, 0.3619078499F, 0.3638158096F, + 0.3657258625F, 0.3676379737F, 0.3695521086F, 0.3714682321F, + 0.3733863094F, 0.3753063055F, 0.3772281852F, 0.3791519134F, + 0.3810774548F, 0.3830047742F, 0.3849338362F, 0.3868646053F, + 0.3887970459F, 0.3907311227F, 0.3926667998F, 0.3946040417F, + 0.3965428125F, 0.3984830765F, 0.4004247978F, 0.4023679403F, + 0.4043124683F, 0.4062583455F, 0.4082055359F, 0.4101540034F, + 0.4121037117F, 0.4140546246F, 0.4160067058F, 0.4179599190F, + 0.4199142277F, 0.4218695956F, 0.4238259861F, 0.4257833627F, + 0.4277416888F, 0.4297009279F, 0.4316610433F, 0.4336219983F, + 0.4355837562F, 0.4375462803F, 0.4395095337F, 0.4414734797F, + 0.4434380815F, 0.4454033021F, 0.4473691046F, 0.4493354521F, + 0.4513023078F, 0.4532696345F, 0.4552373954F, 0.4572055533F, + 0.4591740713F, 0.4611429123F, 0.4631120393F, 0.4650814151F, + 0.4670510028F, 0.4690207650F, 0.4709906649F, 0.4729606651F, + 0.4749307287F, 0.4769008185F, 0.4788708972F, 0.4808409279F, + 0.4828108732F, 0.4847806962F, 0.4867503597F, 0.4887198264F, + 0.4906890593F, 0.4926580213F, 0.4946266753F, 0.4965949840F, + 0.4985629105F, 0.5005304176F, 0.5024974683F, 0.5044640255F, + 0.5064300522F, 0.5083955114F, 0.5103603659F, 0.5123245790F, + 0.5142881136F, 0.5162509328F, 0.5182129997F, 0.5201742774F, + 0.5221347290F, 0.5240943178F, 0.5260530070F, 0.5280107598F, + 0.5299675395F, 0.5319233095F, 0.5338780330F, 0.5358316736F, + 0.5377841946F, 0.5397355596F, 0.5416857320F, 0.5436346755F, + 0.5455823538F, 0.5475287304F, 0.5494737691F, 0.5514174337F, + 0.5533596881F, 0.5553004962F, 0.5572398218F, 0.5591776291F, + 0.5611138821F, 0.5630485449F, 0.5649815818F, 0.5669129570F, + 0.5688426349F, 0.5707705799F, 0.5726967564F, 0.5746211290F, + 0.5765436624F, 0.5784643212F, 0.5803830702F, 0.5822998743F, + 0.5842146984F, 0.5861275076F, 0.5880382669F, 0.5899469416F, + 0.5918534968F, 0.5937578981F, 0.5956601107F, 0.5975601004F, + 0.5994578326F, 0.6013532732F, 0.6032463880F, 0.6051371429F, + 0.6070255039F, 0.6089114372F, 0.6107949090F, 0.6126758856F, + 0.6145543334F, 0.6164302191F, 0.6183035092F, 0.6201741706F, + 0.6220421700F, 0.6239074745F, 0.6257700513F, 0.6276298674F, + 0.6294868903F, 0.6313410873F, 0.6331924262F, 0.6350408745F, + 0.6368864001F, 0.6387289710F, 0.6405685552F, 0.6424051209F, + 0.6442386364F, 0.6460690702F, 0.6478963910F, 0.6497205673F, + 0.6515415682F, 0.6533593625F, 0.6551739194F, 0.6569852082F, + 0.6587931984F, 0.6605978593F, 0.6623991609F, 0.6641970728F, + 0.6659915652F, 0.6677826081F, 0.6695701718F, 0.6713542268F, + 0.6731347437F, 0.6749116932F, 0.6766850461F, 0.6784547736F, + 0.6802208469F, 0.6819832374F, 0.6837419164F, 0.6854968559F, + 0.6872480275F, 0.6889954034F, 0.6907389556F, 0.6924786566F, + 0.6942144788F, 0.6959463950F, 0.6976743780F, 0.6993984008F, + 0.7011184365F, 0.7028344587F, 0.7045464407F, 0.7062543564F, + 0.7079581796F, 0.7096578844F, 0.7113534450F, 0.7130448359F, + 0.7147320316F, 0.7164150070F, 0.7180937371F, 0.7197681970F, + 0.7214383620F, 0.7231042077F, 0.7247657098F, 0.7264228443F, + 0.7280755871F, 0.7297239147F, 0.7313678035F, 0.7330072301F, + 0.7346421715F, 0.7362726046F, 0.7378985069F, 0.7395198556F, + 0.7411366285F, 0.7427488034F, 0.7443563584F, 0.7459592717F, + 0.7475575218F, 0.7491510873F, 0.7507399471F, 0.7523240803F, + 0.7539034661F, 0.7554780839F, 0.7570479136F, 0.7586129349F, + 0.7601731279F, 0.7617284730F, 0.7632789506F, 0.7648245416F, + 0.7663652267F, 0.7679009872F, 0.7694318044F, 0.7709576599F, + 0.7724785354F, 0.7739944130F, 0.7755052749F, 0.7770111035F, + 0.7785118815F, 0.7800075916F, 0.7814982170F, 0.7829837410F, + 0.7844641472F, 0.7859394191F, 0.7874095408F, 0.7888744965F, + 0.7903342706F, 0.7917888476F, 0.7932382124F, 0.7946823501F, + 0.7961212460F, 0.7975548855F, 0.7989832544F, 0.8004063386F, + 0.8018241244F, 0.8032365981F, 0.8046437463F, 0.8060455560F, + 0.8074420141F, 0.8088331080F, 0.8102188253F, 0.8115991536F, + 0.8129740810F, 0.8143435957F, 0.8157076861F, 0.8170663409F, + 0.8184195489F, 0.8197672994F, 0.8211095817F, 0.8224463853F, + 0.8237777001F, 0.8251035161F, 0.8264238235F, 0.8277386129F, + 0.8290478750F, 0.8303516008F, 0.8316497814F, 0.8329424083F, + 0.8342294731F, 0.8355109677F, 0.8367868841F, 0.8380572148F, + 0.8393219523F, 0.8405810893F, 0.8418346190F, 0.8430825345F, + 0.8443248294F, 0.8455614974F, 0.8467925323F, 0.8480179285F, + 0.8492376802F, 0.8504517822F, 0.8516602292F, 0.8528630164F, + 0.8540601391F, 0.8552515928F, 0.8564373733F, 0.8576174766F, + 0.8587918990F, 0.8599606368F, 0.8611236868F, 0.8622810460F, + 0.8634327113F, 0.8645786802F, 0.8657189504F, 0.8668535195F, + 0.8679823857F, 0.8691055472F, 0.8702230025F, 0.8713347503F, + 0.8724407896F, 0.8735411194F, 0.8746357394F, 0.8757246489F, + 0.8768078479F, 0.8778853364F, 0.8789571146F, 0.8800231832F, + 0.8810835427F, 0.8821381942F, 0.8831871387F, 0.8842303777F, + 0.8852679127F, 0.8862997456F, 0.8873258784F, 0.8883463132F, + 0.8893610527F, 0.8903700994F, 0.8913734562F, 0.8923711263F, + 0.8933631129F, 0.8943494196F, 0.8953300500F, 0.8963050083F, + 0.8972742985F, 0.8982379249F, 0.8991958922F, 0.9001482052F, + 0.9010948688F, 0.9020358883F, 0.9029712690F, 0.9039010165F, + 0.9048251367F, 0.9057436357F, 0.9066565195F, 0.9075637946F, + 0.9084654678F, 0.9093615456F, 0.9102520353F, 0.9111369440F, + 0.9120162792F, 0.9128900484F, 0.9137582595F, 0.9146209204F, + 0.9154780394F, 0.9163296248F, 0.9171756853F, 0.9180162296F, + 0.9188512667F, 0.9196808057F, 0.9205048559F, 0.9213234270F, + 0.9221365285F, 0.9229441704F, 0.9237463629F, 0.9245431160F, + 0.9253344404F, 0.9261203465F, 0.9269008453F, 0.9276759477F, + 0.9284456648F, 0.9292100080F, 0.9299689889F, 0.9307226190F, + 0.9314709103F, 0.9322138747F, 0.9329515245F, 0.9336838721F, + 0.9344109300F, 0.9351327108F, 0.9358492275F, 0.9365604931F, + 0.9372665208F, 0.9379673239F, 0.9386629160F, 0.9393533107F, + 0.9400385220F, 0.9407185637F, 0.9413934501F, 0.9420631954F, + 0.9427278141F, 0.9433873208F, 0.9440417304F, 0.9446910576F, + 0.9453353176F, 0.9459745255F, 0.9466086968F, 0.9472378469F, + 0.9478619915F, 0.9484811463F, 0.9490953274F, 0.9497045506F, + 0.9503088323F, 0.9509081888F, 0.9515026365F, 0.9520921921F, + 0.9526768723F, 0.9532566940F, 0.9538316742F, 0.9544018300F, + 0.9549671786F, 0.9555277375F, 0.9560835241F, 0.9566345562F, + 0.9571808513F, 0.9577224275F, 0.9582593027F, 0.9587914949F, + 0.9593190225F, 0.9598419038F, 0.9603601571F, 0.9608738012F, + 0.9613828546F, 0.9618873361F, 0.9623872646F, 0.9628826591F, + 0.9633735388F, 0.9638599227F, 0.9643418303F, 0.9648192808F, + 0.9652922939F, 0.9657608890F, 0.9662250860F, 0.9666849046F, + 0.9671403646F, 0.9675914861F, 0.9680382891F, 0.9684807937F, + 0.9689190202F, 0.9693529890F, 0.9697827203F, 0.9702082347F, + 0.9706295529F, 0.9710466953F, 0.9714596828F, 0.9718685362F, + 0.9722732762F, 0.9726739240F, 0.9730705005F, 0.9734630267F, + 0.9738515239F, 0.9742360134F, 0.9746165163F, 0.9749930540F, + 0.9753656481F, 0.9757343198F, 0.9760990909F, 0.9764599829F, + 0.9768170175F, 0.9771702164F, 0.9775196013F, 0.9778651941F, + 0.9782070167F, 0.9785450909F, 0.9788794388F, 0.9792100824F, + 0.9795370437F, 0.9798603449F, 0.9801800080F, 0.9804960554F, + 0.9808085092F, 0.9811173916F, 0.9814227251F, 0.9817245318F, + 0.9820228343F, 0.9823176549F, 0.9826090160F, 0.9828969402F, + 0.9831814498F, 0.9834625674F, 0.9837403156F, 0.9840147169F, + 0.9842857939F, 0.9845535692F, 0.9848180654F, 0.9850793052F, + 0.9853373113F, 0.9855921062F, 0.9858437127F, 0.9860921535F, + 0.9863374512F, 0.9865796287F, 0.9868187085F, 0.9870547136F, + 0.9872876664F, 0.9875175899F, 0.9877445067F, 0.9879684396F, + 0.9881894112F, 0.9884074444F, 0.9886225619F, 0.9888347863F, + 0.9890441404F, 0.9892506468F, 0.9894543284F, 0.9896552077F, + 0.9898533074F, 0.9900486502F, 0.9902412587F, 0.9904311555F, + 0.9906183633F, 0.9908029045F, 0.9909848019F, 0.9911640779F, + 0.9913407550F, 0.9915148557F, 0.9916864025F, 0.9918554179F, + 0.9920219241F, 0.9921859437F, 0.9923474989F, 0.9925066120F, + 0.9926633054F, 0.9928176012F, 0.9929695218F, 0.9931190891F, + 0.9932663254F, 0.9934112527F, 0.9935538932F, 0.9936942686F, + 0.9938324012F, 0.9939683126F, 0.9941020248F, 0.9942335597F, + 0.9943629388F, 0.9944901841F, 0.9946153170F, 0.9947383593F, + 0.9948593325F, 0.9949782579F, 0.9950951572F, 0.9952100516F, + 0.9953229625F, 0.9954339111F, 0.9955429186F, 0.9956500062F, + 0.9957551948F, 0.9958585056F, 0.9959599593F, 0.9960595769F, + 0.9961573792F, 0.9962533869F, 0.9963476206F, 0.9964401009F, + 0.9965308483F, 0.9966198833F, 0.9967072261F, 0.9967928971F, + 0.9968769164F, 0.9969593041F, 0.9970400804F, 0.9971192651F, + 0.9971968781F, 0.9972729391F, 0.9973474680F, 0.9974204842F, + 0.9974920074F, 0.9975620569F, 0.9976306521F, 0.9976978122F, + 0.9977635565F, 0.9978279039F, 0.9978908736F, 0.9979524842F, + 0.9980127547F, 0.9980717037F, 0.9981293499F, 0.9981857116F, + 0.9982408073F, 0.9982946554F, 0.9983472739F, 0.9983986810F, + 0.9984488947F, 0.9984979328F, 0.9985458132F, 0.9985925534F, + 0.9986381711F, 0.9986826838F, 0.9987261086F, 0.9987684630F, + 0.9988097640F, 0.9988500286F, 0.9988892738F, 0.9989275163F, + 0.9989647727F, 0.9990010597F, 0.9990363938F, 0.9990707911F, + 0.9991042679F, 0.9991368404F, 0.9991685244F, 0.9991993358F, + 0.9992292905F, 0.9992584038F, 0.9992866914F, 0.9993141686F, + 0.9993408506F, 0.9993667526F, 0.9993918895F, 0.9994162761F, + 0.9994399273F, 0.9994628576F, 0.9994850815F, 0.9995066133F, + 0.9995274672F, 0.9995476574F, 0.9995671978F, 0.9995861021F, + 0.9996043841F, 0.9996220573F, 0.9996391352F, 0.9996556310F, + 0.9996715579F, 0.9996869288F, 0.9997017568F, 0.9997160543F, + 0.9997298342F, 0.9997431088F, 0.9997558905F, 0.9997681914F, + 0.9997800236F, 0.9997913990F, 0.9998023292F, 0.9998128261F, + 0.9998229009F, 0.9998325650F, 0.9998418296F, 0.9998507058F, + 0.9998592044F, 0.9998673362F, 0.9998751117F, 0.9998825415F, + 0.9998896358F, 0.9998964047F, 0.9999028584F, 0.9999090066F, + 0.9999148590F, 0.9999204253F, 0.9999257148F, 0.9999307368F, + 0.9999355003F, 0.9999400144F, 0.9999442878F, 0.9999483293F, + 0.9999521472F, 0.9999557499F, 0.9999591457F, 0.9999623426F, + 0.9999653483F, 0.9999681708F, 0.9999708175F, 0.9999732959F, + 0.9999756132F, 0.9999777765F, 0.9999797928F, 0.9999816688F, + 0.9999834113F, 0.9999850266F, 0.9999865211F, 0.9999879009F, + 0.9999891721F, 0.9999903405F, 0.9999914118F, 0.9999923914F, + 0.9999932849F, 0.9999940972F, 0.9999948336F, 0.9999954989F, + 0.9999960978F, 0.9999966349F, 0.9999971146F, 0.9999975411F, + 0.9999979185F, 0.9999982507F, 0.9999985414F, 0.9999987944F, + 0.9999990129F, 0.9999992003F, 0.9999993596F, 0.9999994939F, + 0.9999996059F, 0.9999996981F, 0.9999997732F, 0.9999998333F, + 0.9999998805F, 0.9999999170F, 0.9999999444F, 0.9999999643F, + 0.9999999784F, 0.9999999878F, 0.9999999937F, 0.9999999972F, + 0.9999999990F, 0.9999999997F, 1.0000000000F, 1.0000000000F, +}; + +static const float vwin4096[2048] = { + 0.0000002310F, 0.0000020791F, 0.0000057754F, 0.0000113197F, + 0.0000187121F, 0.0000279526F, 0.0000390412F, 0.0000519777F, + 0.0000667623F, 0.0000833949F, 0.0001018753F, 0.0001222036F, + 0.0001443798F, 0.0001684037F, 0.0001942754F, 0.0002219947F, + 0.0002515616F, 0.0002829761F, 0.0003162380F, 0.0003513472F, + 0.0003883038F, 0.0004271076F, 0.0004677584F, 0.0005102563F, + 0.0005546011F, 0.0006007928F, 0.0006488311F, 0.0006987160F, + 0.0007504474F, 0.0008040251F, 0.0008594490F, 0.0009167191F, + 0.0009758351F, 0.0010367969F, 0.0010996044F, 0.0011642574F, + 0.0012307558F, 0.0012990994F, 0.0013692880F, 0.0014413216F, + 0.0015151998F, 0.0015909226F, 0.0016684898F, 0.0017479011F, + 0.0018291565F, 0.0019122556F, 0.0019971983F, 0.0020839845F, + 0.0021726138F, 0.0022630861F, 0.0023554012F, 0.0024495588F, + 0.0025455588F, 0.0026434008F, 0.0027430847F, 0.0028446103F, + 0.0029479772F, 0.0030531853F, 0.0031602342F, 0.0032691238F, + 0.0033798538F, 0.0034924239F, 0.0036068338F, 0.0037230833F, + 0.0038411721F, 0.0039610999F, 0.0040828664F, 0.0042064714F, + 0.0043319145F, 0.0044591954F, 0.0045883139F, 0.0047192696F, + 0.0048520622F, 0.0049866914F, 0.0051231569F, 0.0052614583F, + 0.0054015953F, 0.0055435676F, 0.0056873748F, 0.0058330166F, + 0.0059804926F, 0.0061298026F, 0.0062809460F, 0.0064339226F, + 0.0065887320F, 0.0067453738F, 0.0069038476F, 0.0070641531F, + 0.0072262899F, 0.0073902575F, 0.0075560556F, 0.0077236838F, + 0.0078931417F, 0.0080644288F, 0.0082375447F, 0.0084124891F, + 0.0085892615F, 0.0087678614F, 0.0089482885F, 0.0091305422F, + 0.0093146223F, 0.0095005281F, 0.0096882592F, 0.0098778153F, + 0.0100691958F, 0.0102624002F, 0.0104574281F, 0.0106542791F, + 0.0108529525F, 0.0110534480F, 0.0112557651F, 0.0114599032F, + 0.0116658618F, 0.0118736405F, 0.0120832387F, 0.0122946560F, + 0.0125078917F, 0.0127229454F, 0.0129398166F, 0.0131585046F, + 0.0133790090F, 0.0136013292F, 0.0138254647F, 0.0140514149F, + 0.0142791792F, 0.0145087572F, 0.0147401481F, 0.0149733515F, + 0.0152083667F, 0.0154451932F, 0.0156838304F, 0.0159242777F, + 0.0161665345F, 0.0164106001F, 0.0166564741F, 0.0169041557F, + 0.0171536443F, 0.0174049393F, 0.0176580401F, 0.0179129461F, + 0.0181696565F, 0.0184281708F, 0.0186884883F, 0.0189506084F, + 0.0192145303F, 0.0194802535F, 0.0197477772F, 0.0200171008F, + 0.0202882236F, 0.0205611449F, 0.0208358639F, 0.0211123801F, + 0.0213906927F, 0.0216708011F, 0.0219527043F, 0.0222364019F, + 0.0225218930F, 0.0228091769F, 0.0230982529F, 0.0233891203F, + 0.0236817782F, 0.0239762259F, 0.0242724628F, 0.0245704880F, + 0.0248703007F, 0.0251719002F, 0.0254752858F, 0.0257804565F, + 0.0260874117F, 0.0263961506F, 0.0267066722F, 0.0270189760F, + 0.0273330609F, 0.0276489263F, 0.0279665712F, 0.0282859949F, + 0.0286071966F, 0.0289301753F, 0.0292549303F, 0.0295814607F, + 0.0299097656F, 0.0302398442F, 0.0305716957F, 0.0309053191F, + 0.0312407135F, 0.0315778782F, 0.0319168122F, 0.0322575145F, + 0.0325999844F, 0.0329442209F, 0.0332902231F, 0.0336379900F, + 0.0339875208F, 0.0343388146F, 0.0346918703F, 0.0350466871F, + 0.0354032640F, 0.0357616000F, 0.0361216943F, 0.0364835458F, + 0.0368471535F, 0.0372125166F, 0.0375796339F, 0.0379485046F, + 0.0383191276F, 0.0386915020F, 0.0390656267F, 0.0394415008F, + 0.0398191231F, 0.0401984927F, 0.0405796086F, 0.0409624698F, + 0.0413470751F, 0.0417334235F, 0.0421215141F, 0.0425113457F, + 0.0429029172F, 0.0432962277F, 0.0436912760F, 0.0440880610F, + 0.0444865817F, 0.0448868370F, 0.0452888257F, 0.0456925468F, + 0.0460979992F, 0.0465051816F, 0.0469140931F, 0.0473247325F, + 0.0477370986F, 0.0481511902F, 0.0485670064F, 0.0489845458F, + 0.0494038074F, 0.0498247899F, 0.0502474922F, 0.0506719131F, + 0.0510980514F, 0.0515259060F, 0.0519554756F, 0.0523867590F, + 0.0528197550F, 0.0532544624F, 0.0536908800F, 0.0541290066F, + 0.0545688408F, 0.0550103815F, 0.0554536274F, 0.0558985772F, + 0.0563452297F, 0.0567935837F, 0.0572436377F, 0.0576953907F, + 0.0581488412F, 0.0586039880F, 0.0590608297F, 0.0595193651F, + 0.0599795929F, 0.0604415117F, 0.0609051202F, 0.0613704170F, + 0.0618374009F, 0.0623060704F, 0.0627764243F, 0.0632484611F, + 0.0637221795F, 0.0641975781F, 0.0646746555F, 0.0651534104F, + 0.0656338413F, 0.0661159469F, 0.0665997257F, 0.0670851763F, + 0.0675722973F, 0.0680610873F, 0.0685515448F, 0.0690436684F, + 0.0695374567F, 0.0700329081F, 0.0705300213F, 0.0710287947F, + 0.0715292269F, 0.0720313163F, 0.0725350616F, 0.0730404612F, + 0.0735475136F, 0.0740562172F, 0.0745665707F, 0.0750785723F, + 0.0755922207F, 0.0761075143F, 0.0766244515F, 0.0771430307F, + 0.0776632505F, 0.0781851092F, 0.0787086052F, 0.0792337371F, + 0.0797605032F, 0.0802889018F, 0.0808189315F, 0.0813505905F, + 0.0818838773F, 0.0824187903F, 0.0829553277F, 0.0834934881F, + 0.0840332697F, 0.0845746708F, 0.0851176899F, 0.0856623252F, + 0.0862085751F, 0.0867564379F, 0.0873059119F, 0.0878569954F, + 0.0884096867F, 0.0889639840F, 0.0895198858F, 0.0900773902F, + 0.0906364955F, 0.0911972000F, 0.0917595019F, 0.0923233995F, + 0.0928888909F, 0.0934559745F, 0.0940246485F, 0.0945949110F, + 0.0951667604F, 0.0957401946F, 0.0963152121F, 0.0968918109F, + 0.0974699893F, 0.0980497454F, 0.0986310773F, 0.0992139832F, + 0.0997984614F, 0.1003845098F, 0.1009721267F, 0.1015613101F, + 0.1021520582F, 0.1027443692F, 0.1033382410F, 0.1039336718F, + 0.1045306597F, 0.1051292027F, 0.1057292990F, 0.1063309466F, + 0.1069341435F, 0.1075388878F, 0.1081451776F, 0.1087530108F, + 0.1093623856F, 0.1099732998F, 0.1105857516F, 0.1111997389F, + 0.1118152597F, 0.1124323121F, 0.1130508939F, 0.1136710032F, + 0.1142926379F, 0.1149157960F, 0.1155404755F, 0.1161666742F, + 0.1167943901F, 0.1174236211F, 0.1180543652F, 0.1186866202F, + 0.1193203841F, 0.1199556548F, 0.1205924300F, 0.1212307078F, + 0.1218704860F, 0.1225117624F, 0.1231545349F, 0.1237988013F, + 0.1244445596F, 0.1250918074F, 0.1257405427F, 0.1263907632F, + 0.1270424667F, 0.1276956512F, 0.1283503142F, 0.1290064537F, + 0.1296640674F, 0.1303231530F, 0.1309837084F, 0.1316457312F, + 0.1323092193F, 0.1329741703F, 0.1336405820F, 0.1343084520F, + 0.1349777782F, 0.1356485582F, 0.1363207897F, 0.1369944704F, + 0.1376695979F, 0.1383461700F, 0.1390241842F, 0.1397036384F, + 0.1403845300F, 0.1410668567F, 0.1417506162F, 0.1424358061F, + 0.1431224240F, 0.1438104674F, 0.1444999341F, 0.1451908216F, + 0.1458831274F, 0.1465768492F, 0.1472719844F, 0.1479685308F, + 0.1486664857F, 0.1493658468F, 0.1500666115F, 0.1507687775F, + 0.1514723422F, 0.1521773031F, 0.1528836577F, 0.1535914035F, + 0.1543005380F, 0.1550110587F, 0.1557229631F, 0.1564362485F, + 0.1571509124F, 0.1578669524F, 0.1585843657F, 0.1593031499F, + 0.1600233024F, 0.1607448205F, 0.1614677017F, 0.1621919433F, + 0.1629175428F, 0.1636444975F, 0.1643728047F, 0.1651024619F, + 0.1658334665F, 0.1665658156F, 0.1672995067F, 0.1680345371F, + 0.1687709041F, 0.1695086050F, 0.1702476372F, 0.1709879978F, + 0.1717296843F, 0.1724726938F, 0.1732170237F, 0.1739626711F, + 0.1747096335F, 0.1754579079F, 0.1762074916F, 0.1769583819F, + 0.1777105760F, 0.1784640710F, 0.1792188642F, 0.1799749529F, + 0.1807323340F, 0.1814910049F, 0.1822509628F, 0.1830122046F, + 0.1837747277F, 0.1845385292F, 0.1853036062F, 0.1860699558F, + 0.1868375751F, 0.1876064613F, 0.1883766114F, 0.1891480226F, + 0.1899206919F, 0.1906946164F, 0.1914697932F, 0.1922462194F, + 0.1930238919F, 0.1938028079F, 0.1945829643F, 0.1953643583F, + 0.1961469868F, 0.1969308468F, 0.1977159353F, 0.1985022494F, + 0.1992897859F, 0.2000785420F, 0.2008685145F, 0.2016597005F, + 0.2024520968F, 0.2032457005F, 0.2040405084F, 0.2048365175F, + 0.2056337247F, 0.2064321269F, 0.2072317211F, 0.2080325041F, + 0.2088344727F, 0.2096376240F, 0.2104419547F, 0.2112474618F, + 0.2120541420F, 0.2128619923F, 0.2136710094F, 0.2144811902F, + 0.2152925315F, 0.2161050301F, 0.2169186829F, 0.2177334866F, + 0.2185494381F, 0.2193665340F, 0.2201847712F, 0.2210041465F, + 0.2218246565F, 0.2226462981F, 0.2234690680F, 0.2242929629F, + 0.2251179796F, 0.2259441147F, 0.2267713650F, 0.2275997272F, + 0.2284291979F, 0.2292597739F, 0.2300914518F, 0.2309242283F, + 0.2317581001F, 0.2325930638F, 0.2334291160F, 0.2342662534F, + 0.2351044727F, 0.2359437703F, 0.2367841431F, 0.2376255875F, + 0.2384681001F, 0.2393116776F, 0.2401563165F, 0.2410020134F, + 0.2418487649F, 0.2426965675F, 0.2435454178F, 0.2443953122F, + 0.2452462474F, 0.2460982199F, 0.2469512262F, 0.2478052628F, + 0.2486603262F, 0.2495164129F, 0.2503735194F, 0.2512316421F, + 0.2520907776F, 0.2529509222F, 0.2538120726F, 0.2546742250F, + 0.2555373760F, 0.2564015219F, 0.2572666593F, 0.2581327845F, + 0.2589998939F, 0.2598679840F, 0.2607370510F, 0.2616070916F, + 0.2624781019F, 0.2633500783F, 0.2642230173F, 0.2650969152F, + 0.2659717684F, 0.2668475731F, 0.2677243257F, 0.2686020226F, + 0.2694806601F, 0.2703602344F, 0.2712407419F, 0.2721221789F, + 0.2730045417F, 0.2738878265F, 0.2747720297F, 0.2756571474F, + 0.2765431760F, 0.2774301117F, 0.2783179508F, 0.2792066895F, + 0.2800963240F, 0.2809868505F, 0.2818782654F, 0.2827705647F, + 0.2836637447F, 0.2845578016F, 0.2854527315F, 0.2863485307F, + 0.2872451953F, 0.2881427215F, 0.2890411055F, 0.2899403433F, + 0.2908404312F, 0.2917413654F, 0.2926431418F, 0.2935457567F, + 0.2944492061F, 0.2953534863F, 0.2962585932F, 0.2971645230F, + 0.2980712717F, 0.2989788356F, 0.2998872105F, 0.3007963927F, + 0.3017063781F, 0.3026171629F, 0.3035287430F, 0.3044411145F, + 0.3053542736F, 0.3062682161F, 0.3071829381F, 0.3080984356F, + 0.3090147047F, 0.3099317413F, 0.3108495414F, 0.3117681011F, + 0.3126874163F, 0.3136074830F, 0.3145282972F, 0.3154498548F, + 0.3163721517F, 0.3172951841F, 0.3182189477F, 0.3191434385F, + 0.3200686525F, 0.3209945856F, 0.3219212336F, 0.3228485927F, + 0.3237766585F, 0.3247054271F, 0.3256348943F, 0.3265650560F, + 0.3274959081F, 0.3284274465F, 0.3293596671F, 0.3302925657F, + 0.3312261382F, 0.3321603804F, 0.3330952882F, 0.3340308574F, + 0.3349670838F, 0.3359039634F, 0.3368414919F, 0.3377796651F, + 0.3387184789F, 0.3396579290F, 0.3405980113F, 0.3415387216F, + 0.3424800556F, 0.3434220091F, 0.3443645779F, 0.3453077578F, + 0.3462515446F, 0.3471959340F, 0.3481409217F, 0.3490865036F, + 0.3500326754F, 0.3509794328F, 0.3519267715F, 0.3528746873F, + 0.3538231759F, 0.3547722330F, 0.3557218544F, 0.3566720357F, + 0.3576227727F, 0.3585740610F, 0.3595258964F, 0.3604782745F, + 0.3614311910F, 0.3623846417F, 0.3633386221F, 0.3642931280F, + 0.3652481549F, 0.3662036987F, 0.3671597548F, 0.3681163191F, + 0.3690733870F, 0.3700309544F, 0.3709890167F, 0.3719475696F, + 0.3729066089F, 0.3738661299F, 0.3748261285F, 0.3757866002F, + 0.3767475406F, 0.3777089453F, 0.3786708100F, 0.3796331302F, + 0.3805959014F, 0.3815591194F, 0.3825227796F, 0.3834868777F, + 0.3844514093F, 0.3854163698F, 0.3863817549F, 0.3873475601F, + 0.3883137810F, 0.3892804131F, 0.3902474521F, 0.3912148933F, + 0.3921827325F, 0.3931509650F, 0.3941195865F, 0.3950885925F, + 0.3960579785F, 0.3970277400F, 0.3979978725F, 0.3989683716F, + 0.3999392328F, 0.4009104516F, 0.4018820234F, 0.4028539438F, + 0.4038262084F, 0.4047988125F, 0.4057717516F, 0.4067450214F, + 0.4077186172F, 0.4086925345F, 0.4096667688F, 0.4106413155F, + 0.4116161703F, 0.4125913284F, 0.4135667854F, 0.4145425368F, + 0.4155185780F, 0.4164949044F, 0.4174715116F, 0.4184483949F, + 0.4194255498F, 0.4204029718F, 0.4213806563F, 0.4223585987F, + 0.4233367946F, 0.4243152392F, 0.4252939281F, 0.4262728566F, + 0.4272520202F, 0.4282314144F, 0.4292110345F, 0.4301908760F, + 0.4311709343F, 0.4321512047F, 0.4331316828F, 0.4341123639F, + 0.4350932435F, 0.4360743168F, 0.4370555794F, 0.4380370267F, + 0.4390186540F, 0.4400004567F, 0.4409824303F, 0.4419645701F, + 0.4429468716F, 0.4439293300F, 0.4449119409F, 0.4458946996F, + 0.4468776014F, 0.4478606418F, 0.4488438162F, 0.4498271199F, + 0.4508105483F, 0.4517940967F, 0.4527777607F, 0.4537615355F, + 0.4547454165F, 0.4557293991F, 0.4567134786F, 0.4576976505F, + 0.4586819101F, 0.4596662527F, 0.4606506738F, 0.4616351687F, + 0.4626197328F, 0.4636043614F, 0.4645890499F, 0.4655737936F, + 0.4665585880F, 0.4675434284F, 0.4685283101F, 0.4695132286F, + 0.4704981791F, 0.4714831570F, 0.4724681577F, 0.4734531766F, + 0.4744382089F, 0.4754232501F, 0.4764082956F, 0.4773933406F, + 0.4783783806F, 0.4793634108F, 0.4803484267F, 0.4813334237F, + 0.4823183969F, 0.4833033419F, 0.4842882540F, 0.4852731285F, + 0.4862579608F, 0.4872427462F, 0.4882274802F, 0.4892121580F, + 0.4901967751F, 0.4911813267F, 0.4921658083F, 0.4931502151F, + 0.4941345427F, 0.4951187863F, 0.4961029412F, 0.4970870029F, + 0.4980709667F, 0.4990548280F, 0.5000385822F, 0.5010222245F, + 0.5020057505F, 0.5029891553F, 0.5039724345F, 0.5049555834F, + 0.5059385973F, 0.5069214716F, 0.5079042018F, 0.5088867831F, + 0.5098692110F, 0.5108514808F, 0.5118335879F, 0.5128155277F, + 0.5137972956F, 0.5147788869F, 0.5157602971F, 0.5167415215F, + 0.5177225555F, 0.5187033945F, 0.5196840339F, 0.5206644692F, + 0.5216446956F, 0.5226247086F, 0.5236045035F, 0.5245840759F, + 0.5255634211F, 0.5265425344F, 0.5275214114F, 0.5285000474F, + 0.5294784378F, 0.5304565781F, 0.5314344637F, 0.5324120899F, + 0.5333894522F, 0.5343665461F, 0.5353433670F, 0.5363199102F, + 0.5372961713F, 0.5382721457F, 0.5392478287F, 0.5402232159F, + 0.5411983027F, 0.5421730845F, 0.5431475569F, 0.5441217151F, + 0.5450955548F, 0.5460690714F, 0.5470422602F, 0.5480151169F, + 0.5489876368F, 0.5499598155F, 0.5509316484F, 0.5519031310F, + 0.5528742587F, 0.5538450271F, 0.5548154317F, 0.5557854680F, + 0.5567551314F, 0.5577244174F, 0.5586933216F, 0.5596618395F, + 0.5606299665F, 0.5615976983F, 0.5625650302F, 0.5635319580F, + 0.5644984770F, 0.5654645828F, 0.5664302709F, 0.5673955370F, + 0.5683603765F, 0.5693247850F, 0.5702887580F, 0.5712522912F, + 0.5722153800F, 0.5731780200F, 0.5741402069F, 0.5751019362F, + 0.5760632034F, 0.5770240042F, 0.5779843341F, 0.5789441889F, + 0.5799035639F, 0.5808624549F, 0.5818208575F, 0.5827787673F, + 0.5837361800F, 0.5846930910F, 0.5856494961F, 0.5866053910F, + 0.5875607712F, 0.5885156324F, 0.5894699703F, 0.5904237804F, + 0.5913770586F, 0.5923298004F, 0.5932820016F, 0.5942336578F, + 0.5951847646F, 0.5961353179F, 0.5970853132F, 0.5980347464F, + 0.5989836131F, 0.5999319090F, 0.6008796298F, 0.6018267713F, + 0.6027733292F, 0.6037192993F, 0.6046646773F, 0.6056094589F, + 0.6065536400F, 0.6074972162F, 0.6084401833F, 0.6093825372F, + 0.6103242736F, 0.6112653884F, 0.6122058772F, 0.6131457359F, + 0.6140849604F, 0.6150235464F, 0.6159614897F, 0.6168987862F, + 0.6178354318F, 0.6187714223F, 0.6197067535F, 0.6206414213F, + 0.6215754215F, 0.6225087501F, 0.6234414028F, 0.6243733757F, + 0.6253046646F, 0.6262352654F, 0.6271651739F, 0.6280943862F, + 0.6290228982F, 0.6299507057F, 0.6308778048F, 0.6318041913F, + 0.6327298612F, 0.6336548105F, 0.6345790352F, 0.6355025312F, + 0.6364252945F, 0.6373473211F, 0.6382686070F, 0.6391891483F, + 0.6401089409F, 0.6410279808F, 0.6419462642F, 0.6428637869F, + 0.6437805452F, 0.6446965350F, 0.6456117524F, 0.6465261935F, + 0.6474398544F, 0.6483527311F, 0.6492648197F, 0.6501761165F, + 0.6510866174F, 0.6519963186F, 0.6529052162F, 0.6538133064F, + 0.6547205854F, 0.6556270492F, 0.6565326941F, 0.6574375162F, + 0.6583415117F, 0.6592446769F, 0.6601470079F, 0.6610485009F, + 0.6619491521F, 0.6628489578F, 0.6637479143F, 0.6646460177F, + 0.6655432643F, 0.6664396505F, 0.6673351724F, 0.6682298264F, + 0.6691236087F, 0.6700165157F, 0.6709085436F, 0.6717996889F, + 0.6726899478F, 0.6735793167F, 0.6744677918F, 0.6753553697F, + 0.6762420466F, 0.6771278190F, 0.6780126832F, 0.6788966357F, + 0.6797796728F, 0.6806617909F, 0.6815429866F, 0.6824232562F, + 0.6833025961F, 0.6841810030F, 0.6850584731F, 0.6859350031F, + 0.6868105894F, 0.6876852284F, 0.6885589168F, 0.6894316510F, + 0.6903034275F, 0.6911742430F, 0.6920440939F, 0.6929129769F, + 0.6937808884F, 0.6946478251F, 0.6955137837F, 0.6963787606F, + 0.6972427525F, 0.6981057560F, 0.6989677678F, 0.6998287845F, + 0.7006888028F, 0.7015478194F, 0.7024058309F, 0.7032628340F, + 0.7041188254F, 0.7049738019F, 0.7058277601F, 0.7066806969F, + 0.7075326089F, 0.7083834929F, 0.7092333457F, 0.7100821640F, + 0.7109299447F, 0.7117766846F, 0.7126223804F, 0.7134670291F, + 0.7143106273F, 0.7151531721F, 0.7159946602F, 0.7168350885F, + 0.7176744539F, 0.7185127534F, 0.7193499837F, 0.7201861418F, + 0.7210212247F, 0.7218552293F, 0.7226881526F, 0.7235199914F, + 0.7243507428F, 0.7251804039F, 0.7260089715F, 0.7268364426F, + 0.7276628144F, 0.7284880839F, 0.7293122481F, 0.7301353040F, + 0.7309572487F, 0.7317780794F, 0.7325977930F, 0.7334163868F, + 0.7342338579F, 0.7350502033F, 0.7358654202F, 0.7366795059F, + 0.7374924573F, 0.7383042718F, 0.7391149465F, 0.7399244787F, + 0.7407328655F, 0.7415401041F, 0.7423461920F, 0.7431511261F, + 0.7439549040F, 0.7447575227F, 0.7455589797F, 0.7463592723F, + 0.7471583976F, 0.7479563532F, 0.7487531363F, 0.7495487443F, + 0.7503431745F, 0.7511364244F, 0.7519284913F, 0.7527193726F, + 0.7535090658F, 0.7542975683F, 0.7550848776F, 0.7558709910F, + 0.7566559062F, 0.7574396205F, 0.7582221314F, 0.7590034366F, + 0.7597835334F, 0.7605624194F, 0.7613400923F, 0.7621165495F, + 0.7628917886F, 0.7636658072F, 0.7644386030F, 0.7652101735F, + 0.7659805164F, 0.7667496292F, 0.7675175098F, 0.7682841556F, + 0.7690495645F, 0.7698137341F, 0.7705766622F, 0.7713383463F, + 0.7720987844F, 0.7728579741F, 0.7736159132F, 0.7743725994F, + 0.7751280306F, 0.7758822046F, 0.7766351192F, 0.7773867722F, + 0.7781371614F, 0.7788862848F, 0.7796341401F, 0.7803807253F, + 0.7811260383F, 0.7818700769F, 0.7826128392F, 0.7833543230F, + 0.7840945263F, 0.7848334471F, 0.7855710833F, 0.7863074330F, + 0.7870424941F, 0.7877762647F, 0.7885087428F, 0.7892399264F, + 0.7899698137F, 0.7906984026F, 0.7914256914F, 0.7921516780F, + 0.7928763607F, 0.7935997375F, 0.7943218065F, 0.7950425661F, + 0.7957620142F, 0.7964801492F, 0.7971969692F, 0.7979124724F, + 0.7986266570F, 0.7993395214F, 0.8000510638F, 0.8007612823F, + 0.8014701754F, 0.8021777413F, 0.8028839784F, 0.8035888849F, + 0.8042924592F, 0.8049946997F, 0.8056956048F, 0.8063951727F, + 0.8070934020F, 0.8077902910F, 0.8084858381F, 0.8091800419F, + 0.8098729007F, 0.8105644130F, 0.8112545774F, 0.8119433922F, + 0.8126308561F, 0.8133169676F, 0.8140017251F, 0.8146851272F, + 0.8153671726F, 0.8160478598F, 0.8167271874F, 0.8174051539F, + 0.8180817582F, 0.8187569986F, 0.8194308741F, 0.8201033831F, + 0.8207745244F, 0.8214442966F, 0.8221126986F, 0.8227797290F, + 0.8234453865F, 0.8241096700F, 0.8247725781F, 0.8254341097F, + 0.8260942636F, 0.8267530385F, 0.8274104334F, 0.8280664470F, + 0.8287210782F, 0.8293743259F, 0.8300261889F, 0.8306766662F, + 0.8313257566F, 0.8319734591F, 0.8326197727F, 0.8332646963F, + 0.8339082288F, 0.8345503692F, 0.8351911167F, 0.8358304700F, + 0.8364684284F, 0.8371049907F, 0.8377401562F, 0.8383739238F, + 0.8390062927F, 0.8396372618F, 0.8402668305F, 0.8408949977F, + 0.8415217626F, 0.8421471245F, 0.8427710823F, 0.8433936354F, + 0.8440147830F, 0.8446345242F, 0.8452528582F, 0.8458697844F, + 0.8464853020F, 0.8470994102F, 0.8477121084F, 0.8483233958F, + 0.8489332718F, 0.8495417356F, 0.8501487866F, 0.8507544243F, + 0.8513586479F, 0.8519614568F, 0.8525628505F, 0.8531628283F, + 0.8537613897F, 0.8543585341F, 0.8549542611F, 0.8555485699F, + 0.8561414603F, 0.8567329315F, 0.8573229832F, 0.8579116149F, + 0.8584988262F, 0.8590846165F, 0.8596689855F, 0.8602519327F, + 0.8608334577F, 0.8614135603F, 0.8619922399F, 0.8625694962F, + 0.8631453289F, 0.8637197377F, 0.8642927222F, 0.8648642821F, + 0.8654344172F, 0.8660031272F, 0.8665704118F, 0.8671362708F, + 0.8677007039F, 0.8682637109F, 0.8688252917F, 0.8693854460F, + 0.8699441737F, 0.8705014745F, 0.8710573485F, 0.8716117953F, + 0.8721648150F, 0.8727164073F, 0.8732665723F, 0.8738153098F, + 0.8743626197F, 0.8749085021F, 0.8754529569F, 0.8759959840F, + 0.8765375835F, 0.8770777553F, 0.8776164996F, 0.8781538162F, + 0.8786897054F, 0.8792241670F, 0.8797572013F, 0.8802888082F, + 0.8808189880F, 0.8813477407F, 0.8818750664F, 0.8824009653F, + 0.8829254375F, 0.8834484833F, 0.8839701028F, 0.8844902961F, + 0.8850090636F, 0.8855264054F, 0.8860423218F, 0.8865568131F, + 0.8870698794F, 0.8875815212F, 0.8880917386F, 0.8886005319F, + 0.8891079016F, 0.8896138479F, 0.8901183712F, 0.8906214719F, + 0.8911231503F, 0.8916234067F, 0.8921222417F, 0.8926196556F, + 0.8931156489F, 0.8936102219F, 0.8941033752F, 0.8945951092F, + 0.8950854244F, 0.8955743212F, 0.8960618003F, 0.8965478621F, + 0.8970325071F, 0.8975157359F, 0.8979975490F, 0.8984779471F, + 0.8989569307F, 0.8994345004F, 0.8999106568F, 0.9003854005F, + 0.9008587323F, 0.9013306526F, 0.9018011623F, 0.9022702619F, + 0.9027379521F, 0.9032042337F, 0.9036691074F, 0.9041325739F, + 0.9045946339F, 0.9050552882F, 0.9055145376F, 0.9059723828F, + 0.9064288246F, 0.9068838638F, 0.9073375013F, 0.9077897379F, + 0.9082405743F, 0.9086900115F, 0.9091380503F, 0.9095846917F, + 0.9100299364F, 0.9104737854F, 0.9109162397F, 0.9113573001F, + 0.9117969675F, 0.9122352430F, 0.9126721275F, 0.9131076219F, + 0.9135417273F, 0.9139744447F, 0.9144057750F, 0.9148357194F, + 0.9152642787F, 0.9156914542F, 0.9161172468F, 0.9165416576F, + 0.9169646877F, 0.9173863382F, 0.9178066102F, 0.9182255048F, + 0.9186430232F, 0.9190591665F, 0.9194739359F, 0.9198873324F, + 0.9202993574F, 0.9207100120F, 0.9211192973F, 0.9215272147F, + 0.9219337653F, 0.9223389504F, 0.9227427713F, 0.9231452290F, + 0.9235463251F, 0.9239460607F, 0.9243444371F, 0.9247414557F, + 0.9251371177F, 0.9255314245F, 0.9259243774F, 0.9263159778F, + 0.9267062270F, 0.9270951264F, 0.9274826774F, 0.9278688814F, + 0.9282537398F, 0.9286372540F, 0.9290194254F, 0.9294002555F, + 0.9297797458F, 0.9301578976F, 0.9305347125F, 0.9309101919F, + 0.9312843373F, 0.9316571503F, 0.9320286323F, 0.9323987849F, + 0.9327676097F, 0.9331351080F, 0.9335012816F, 0.9338661320F, + 0.9342296607F, 0.9345918694F, 0.9349527596F, 0.9353123330F, + 0.9356705911F, 0.9360275357F, 0.9363831683F, 0.9367374905F, + 0.9370905042F, 0.9374422108F, 0.9377926122F, 0.9381417099F, + 0.9384895057F, 0.9388360014F, 0.9391811985F, 0.9395250989F, + 0.9398677043F, 0.9402090165F, 0.9405490371F, 0.9408877680F, + 0.9412252110F, 0.9415613678F, 0.9418962402F, 0.9422298301F, + 0.9425621392F, 0.9428931695F, 0.9432229226F, 0.9435514005F, + 0.9438786050F, 0.9442045381F, 0.9445292014F, 0.9448525971F, + 0.9451747268F, 0.9454955926F, 0.9458151963F, 0.9461335399F, + 0.9464506253F, 0.9467664545F, 0.9470810293F, 0.9473943517F, + 0.9477064238F, 0.9480172474F, 0.9483268246F, 0.9486351573F, + 0.9489422475F, 0.9492480973F, 0.9495527087F, 0.9498560837F, + 0.9501582243F, 0.9504591325F, 0.9507588105F, 0.9510572603F, + 0.9513544839F, 0.9516504834F, 0.9519452609F, 0.9522388186F, + 0.9525311584F, 0.9528222826F, 0.9531121932F, 0.9534008923F, + 0.9536883821F, 0.9539746647F, 0.9542597424F, 0.9545436171F, + 0.9548262912F, 0.9551077667F, 0.9553880459F, 0.9556671309F, + 0.9559450239F, 0.9562217272F, 0.9564972429F, 0.9567715733F, + 0.9570447206F, 0.9573166871F, 0.9575874749F, 0.9578570863F, + 0.9581255236F, 0.9583927890F, 0.9586588849F, 0.9589238134F, + 0.9591875769F, 0.9594501777F, 0.9597116180F, 0.9599719003F, + 0.9602310267F, 0.9604889995F, 0.9607458213F, 0.9610014942F, + 0.9612560206F, 0.9615094028F, 0.9617616433F, 0.9620127443F, + 0.9622627083F, 0.9625115376F, 0.9627592345F, 0.9630058016F, + 0.9632512411F, 0.9634955555F, 0.9637387471F, 0.9639808185F, + 0.9642217720F, 0.9644616100F, 0.9647003349F, 0.9649379493F, + 0.9651744556F, 0.9654098561F, 0.9656441534F, 0.9658773499F, + 0.9661094480F, 0.9663404504F, 0.9665703593F, 0.9667991774F, + 0.9670269071F, 0.9672535509F, 0.9674791114F, 0.9677035909F, + 0.9679269921F, 0.9681493174F, 0.9683705694F, 0.9685907506F, + 0.9688098636F, 0.9690279108F, 0.9692448948F, 0.9694608182F, + 0.9696756836F, 0.9698894934F, 0.9701022503F, 0.9703139569F, + 0.9705246156F, 0.9707342291F, 0.9709428000F, 0.9711503309F, + 0.9713568243F, 0.9715622829F, 0.9717667093F, 0.9719701060F, + 0.9721724757F, 0.9723738210F, 0.9725741446F, 0.9727734490F, + 0.9729717369F, 0.9731690109F, 0.9733652737F, 0.9735605279F, + 0.9737547762F, 0.9739480212F, 0.9741402656F, 0.9743315120F, + 0.9745217631F, 0.9747110216F, 0.9748992901F, 0.9750865714F, + 0.9752728681F, 0.9754581829F, 0.9756425184F, 0.9758258775F, + 0.9760082627F, 0.9761896768F, 0.9763701224F, 0.9765496024F, + 0.9767281193F, 0.9769056760F, 0.9770822751F, 0.9772579193F, + 0.9774326114F, 0.9776063542F, 0.9777791502F, 0.9779510023F, + 0.9781219133F, 0.9782918858F, 0.9784609226F, 0.9786290264F, + 0.9787962000F, 0.9789624461F, 0.9791277676F, 0.9792921671F, + 0.9794556474F, 0.9796182113F, 0.9797798615F, 0.9799406009F, + 0.9801004321F, 0.9802593580F, 0.9804173813F, 0.9805745049F, + 0.9807307314F, 0.9808860637F, 0.9810405046F, 0.9811940568F, + 0.9813467232F, 0.9814985065F, 0.9816494095F, 0.9817994351F, + 0.9819485860F, 0.9820968650F, 0.9822442750F, 0.9823908186F, + 0.9825364988F, 0.9826813184F, 0.9828252801F, 0.9829683868F, + 0.9831106413F, 0.9832520463F, 0.9833926048F, 0.9835323195F, + 0.9836711932F, 0.9838092288F, 0.9839464291F, 0.9840827969F, + 0.9842183351F, 0.9843530464F, 0.9844869337F, 0.9846199998F, + 0.9847522475F, 0.9848836798F, 0.9850142993F, 0.9851441090F, + 0.9852731117F, 0.9854013101F, 0.9855287073F, 0.9856553058F, + 0.9857811087F, 0.9859061188F, 0.9860303388F, 0.9861537717F, + 0.9862764202F, 0.9863982872F, 0.9865193756F, 0.9866396882F, + 0.9867592277F, 0.9868779972F, 0.9869959993F, 0.9871132370F, + 0.9872297131F, 0.9873454304F, 0.9874603918F, 0.9875746001F, + 0.9876880581F, 0.9878007688F, 0.9879127348F, 0.9880239592F, + 0.9881344447F, 0.9882441941F, 0.9883532104F, 0.9884614962F, + 0.9885690546F, 0.9886758883F, 0.9887820001F, 0.9888873930F, + 0.9889920697F, 0.9890960331F, 0.9891992859F, 0.9893018312F, + 0.9894036716F, 0.9895048100F, 0.9896052493F, 0.9897049923F, + 0.9898040418F, 0.9899024006F, 0.9900000717F, 0.9900970577F, + 0.9901933616F, 0.9902889862F, 0.9903839343F, 0.9904782087F, + 0.9905718122F, 0.9906647477F, 0.9907570180F, 0.9908486259F, + 0.9909395742F, 0.9910298658F, 0.9911195034F, 0.9912084899F, + 0.9912968281F, 0.9913845208F, 0.9914715708F, 0.9915579810F, + 0.9916437540F, 0.9917288928F, 0.9918134001F, 0.9918972788F, + 0.9919805316F, 0.9920631613F, 0.9921451707F, 0.9922265626F, + 0.9923073399F, 0.9923875052F, 0.9924670615F, 0.9925460114F, + 0.9926243577F, 0.9927021033F, 0.9927792508F, 0.9928558032F, + 0.9929317631F, 0.9930071333F, 0.9930819167F, 0.9931561158F, + 0.9932297337F, 0.9933027728F, 0.9933752362F, 0.9934471264F, + 0.9935184462F, 0.9935891985F, 0.9936593859F, 0.9937290112F, + 0.9937980771F, 0.9938665864F, 0.9939345418F, 0.9940019460F, + 0.9940688018F, 0.9941351118F, 0.9942008789F, 0.9942661057F, + 0.9943307950F, 0.9943949494F, 0.9944585717F, 0.9945216645F, + 0.9945842307F, 0.9946462728F, 0.9947077936F, 0.9947687957F, + 0.9948292820F, 0.9948892550F, 0.9949487174F, 0.9950076719F, + 0.9950661212F, 0.9951240679F, 0.9951815148F, 0.9952384645F, + 0.9952949196F, 0.9953508828F, 0.9954063568F, 0.9954613442F, + 0.9955158476F, 0.9955698697F, 0.9956234132F, 0.9956764806F, + 0.9957290746F, 0.9957811978F, 0.9958328528F, 0.9958840423F, + 0.9959347688F, 0.9959850351F, 0.9960348435F, 0.9960841969F, + 0.9961330977F, 0.9961815486F, 0.9962295521F, 0.9962771108F, + 0.9963242274F, 0.9963709043F, 0.9964171441F, 0.9964629494F, + 0.9965083228F, 0.9965532668F, 0.9965977840F, 0.9966418768F, + 0.9966855479F, 0.9967287998F, 0.9967716350F, 0.9968140559F, + 0.9968560653F, 0.9968976655F, 0.9969388591F, 0.9969796485F, + 0.9970200363F, 0.9970600250F, 0.9970996170F, 0.9971388149F, + 0.9971776211F, 0.9972160380F, 0.9972540683F, 0.9972917142F, + 0.9973289783F, 0.9973658631F, 0.9974023709F, 0.9974385042F, + 0.9974742655F, 0.9975096571F, 0.9975446816F, 0.9975793413F, + 0.9976136386F, 0.9976475759F, 0.9976811557F, 0.9977143803F, + 0.9977472521F, 0.9977797736F, 0.9978119470F, 0.9978437748F, + 0.9978752593F, 0.9979064029F, 0.9979372079F, 0.9979676768F, + 0.9979978117F, 0.9980276151F, 0.9980570893F, 0.9980862367F, + 0.9981150595F, 0.9981435600F, 0.9981717406F, 0.9981996035F, + 0.9982271511F, 0.9982543856F, 0.9982813093F, 0.9983079246F, + 0.9983342336F, 0.9983602386F, 0.9983859418F, 0.9984113456F, + 0.9984364522F, 0.9984612638F, 0.9984857825F, 0.9985100108F, + 0.9985339507F, 0.9985576044F, 0.9985809743F, 0.9986040624F, + 0.9986268710F, 0.9986494022F, 0.9986716583F, 0.9986936413F, + 0.9987153535F, 0.9987367969F, 0.9987579738F, 0.9987788864F, + 0.9987995366F, 0.9988199267F, 0.9988400587F, 0.9988599348F, + 0.9988795572F, 0.9988989278F, 0.9989180487F, 0.9989369222F, + 0.9989555501F, 0.9989739347F, 0.9989920780F, 0.9990099820F, + 0.9990276487F, 0.9990450803F, 0.9990622787F, 0.9990792460F, + 0.9990959841F, 0.9991124952F, 0.9991287812F, 0.9991448440F, + 0.9991606858F, 0.9991763084F, 0.9991917139F, 0.9992069042F, + 0.9992218813F, 0.9992366471F, 0.9992512035F, 0.9992655525F, + 0.9992796961F, 0.9992936361F, 0.9993073744F, 0.9993209131F, + 0.9993342538F, 0.9993473987F, 0.9993603494F, 0.9993731080F, + 0.9993856762F, 0.9993980559F, 0.9994102490F, 0.9994222573F, + 0.9994340827F, 0.9994457269F, 0.9994571918F, 0.9994684793F, + 0.9994795910F, 0.9994905288F, 0.9995012945F, 0.9995118898F, + 0.9995223165F, 0.9995325765F, 0.9995426713F, 0.9995526029F, + 0.9995623728F, 0.9995719829F, 0.9995814349F, 0.9995907304F, + 0.9995998712F, 0.9996088590F, 0.9996176954F, 0.9996263821F, + 0.9996349208F, 0.9996433132F, 0.9996515609F, 0.9996596656F, + 0.9996676288F, 0.9996754522F, 0.9996831375F, 0.9996906862F, + 0.9996981000F, 0.9997053804F, 0.9997125290F, 0.9997195474F, + 0.9997264371F, 0.9997331998F, 0.9997398369F, 0.9997463500F, + 0.9997527406F, 0.9997590103F, 0.9997651606F, 0.9997711930F, + 0.9997771089F, 0.9997829098F, 0.9997885973F, 0.9997941728F, + 0.9997996378F, 0.9998049936F, 0.9998102419F, 0.9998153839F, + 0.9998204211F, 0.9998253550F, 0.9998301868F, 0.9998349182F, + 0.9998395503F, 0.9998440847F, 0.9998485226F, 0.9998528654F, + 0.9998571146F, 0.9998612713F, 0.9998653370F, 0.9998693130F, + 0.9998732007F, 0.9998770012F, 0.9998807159F, 0.9998843461F, + 0.9998878931F, 0.9998913581F, 0.9998947424F, 0.9998980473F, + 0.9999012740F, 0.9999044237F, 0.9999074976F, 0.9999104971F, + 0.9999134231F, 0.9999162771F, 0.9999190601F, 0.9999217733F, + 0.9999244179F, 0.9999269950F, 0.9999295058F, 0.9999319515F, + 0.9999343332F, 0.9999366519F, 0.9999389088F, 0.9999411050F, + 0.9999432416F, 0.9999453196F, 0.9999473402F, 0.9999493044F, + 0.9999512132F, 0.9999530677F, 0.9999548690F, 0.9999566180F, + 0.9999583157F, 0.9999599633F, 0.9999615616F, 0.9999631116F, + 0.9999646144F, 0.9999660709F, 0.9999674820F, 0.9999688487F, + 0.9999701719F, 0.9999714526F, 0.9999726917F, 0.9999738900F, + 0.9999750486F, 0.9999761682F, 0.9999772497F, 0.9999782941F, + 0.9999793021F, 0.9999802747F, 0.9999812126F, 0.9999821167F, + 0.9999829878F, 0.9999838268F, 0.9999846343F, 0.9999854113F, + 0.9999861584F, 0.9999868765F, 0.9999875664F, 0.9999882287F, + 0.9999888642F, 0.9999894736F, 0.9999900577F, 0.9999906172F, + 0.9999911528F, 0.9999916651F, 0.9999921548F, 0.9999926227F, + 0.9999930693F, 0.9999934954F, 0.9999939015F, 0.9999942883F, + 0.9999946564F, 0.9999950064F, 0.9999953390F, 0.9999956547F, + 0.9999959541F, 0.9999962377F, 0.9999965062F, 0.9999967601F, + 0.9999969998F, 0.9999972260F, 0.9999974392F, 0.9999976399F, + 0.9999978285F, 0.9999980056F, 0.9999981716F, 0.9999983271F, + 0.9999984724F, 0.9999986081F, 0.9999987345F, 0.9999988521F, + 0.9999989613F, 0.9999990625F, 0.9999991562F, 0.9999992426F, + 0.9999993223F, 0.9999993954F, 0.9999994625F, 0.9999995239F, + 0.9999995798F, 0.9999996307F, 0.9999996768F, 0.9999997184F, + 0.9999997559F, 0.9999997895F, 0.9999998195F, 0.9999998462F, + 0.9999998698F, 0.9999998906F, 0.9999999088F, 0.9999999246F, + 0.9999999383F, 0.9999999500F, 0.9999999600F, 0.9999999684F, + 0.9999999754F, 0.9999999811F, 0.9999999858F, 0.9999999896F, + 0.9999999925F, 0.9999999948F, 0.9999999965F, 0.9999999978F, + 0.9999999986F, 0.9999999992F, 0.9999999996F, 0.9999999998F, + 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, +}; + +static const float vwin8192[4096] = { + 0.0000000578F, 0.0000005198F, 0.0000014438F, 0.0000028299F, + 0.0000046780F, 0.0000069882F, 0.0000097604F, 0.0000129945F, + 0.0000166908F, 0.0000208490F, 0.0000254692F, 0.0000305515F, + 0.0000360958F, 0.0000421021F, 0.0000485704F, 0.0000555006F, + 0.0000628929F, 0.0000707472F, 0.0000790635F, 0.0000878417F, + 0.0000970820F, 0.0001067842F, 0.0001169483F, 0.0001275744F, + 0.0001386625F, 0.0001502126F, 0.0001622245F, 0.0001746984F, + 0.0001876343F, 0.0002010320F, 0.0002148917F, 0.0002292132F, + 0.0002439967F, 0.0002592421F, 0.0002749493F, 0.0002911184F, + 0.0003077493F, 0.0003248421F, 0.0003423967F, 0.0003604132F, + 0.0003788915F, 0.0003978316F, 0.0004172335F, 0.0004370971F, + 0.0004574226F, 0.0004782098F, 0.0004994587F, 0.0005211694F, + 0.0005433418F, 0.0005659759F, 0.0005890717F, 0.0006126292F, + 0.0006366484F, 0.0006611292F, 0.0006860716F, 0.0007114757F, + 0.0007373414F, 0.0007636687F, 0.0007904576F, 0.0008177080F, + 0.0008454200F, 0.0008735935F, 0.0009022285F, 0.0009313250F, + 0.0009608830F, 0.0009909025F, 0.0010213834F, 0.0010523257F, + 0.0010837295F, 0.0011155946F, 0.0011479211F, 0.0011807090F, + 0.0012139582F, 0.0012476687F, 0.0012818405F, 0.0013164736F, + 0.0013515679F, 0.0013871235F, 0.0014231402F, 0.0014596182F, + 0.0014965573F, 0.0015339576F, 0.0015718190F, 0.0016101415F, + 0.0016489251F, 0.0016881698F, 0.0017278754F, 0.0017680421F, + 0.0018086698F, 0.0018497584F, 0.0018913080F, 0.0019333185F, + 0.0019757898F, 0.0020187221F, 0.0020621151F, 0.0021059690F, + 0.0021502837F, 0.0021950591F, 0.0022402953F, 0.0022859921F, + 0.0023321497F, 0.0023787679F, 0.0024258467F, 0.0024733861F, + 0.0025213861F, 0.0025698466F, 0.0026187676F, 0.0026681491F, + 0.0027179911F, 0.0027682935F, 0.0028190562F, 0.0028702794F, + 0.0029219628F, 0.0029741066F, 0.0030267107F, 0.0030797749F, + 0.0031332994F, 0.0031872841F, 0.0032417289F, 0.0032966338F, + 0.0033519988F, 0.0034078238F, 0.0034641089F, 0.0035208539F, + 0.0035780589F, 0.0036357237F, 0.0036938485F, 0.0037524331F, + 0.0038114775F, 0.0038709817F, 0.0039309456F, 0.0039913692F, + 0.0040522524F, 0.0041135953F, 0.0041753978F, 0.0042376599F, + 0.0043003814F, 0.0043635624F, 0.0044272029F, 0.0044913028F, + 0.0045558620F, 0.0046208806F, 0.0046863585F, 0.0047522955F, + 0.0048186919F, 0.0048855473F, 0.0049528619F, 0.0050206356F, + 0.0050888684F, 0.0051575601F, 0.0052267108F, 0.0052963204F, + 0.0053663890F, 0.0054369163F, 0.0055079025F, 0.0055793474F, + 0.0056512510F, 0.0057236133F, 0.0057964342F, 0.0058697137F, + 0.0059434517F, 0.0060176482F, 0.0060923032F, 0.0061674166F, + 0.0062429883F, 0.0063190183F, 0.0063955066F, 0.0064724532F, + 0.0065498579F, 0.0066277207F, 0.0067060416F, 0.0067848205F, + 0.0068640575F, 0.0069437523F, 0.0070239051F, 0.0071045157F, + 0.0071855840F, 0.0072671102F, 0.0073490940F, 0.0074315355F, + 0.0075144345F, 0.0075977911F, 0.0076816052F, 0.0077658768F, + 0.0078506057F, 0.0079357920F, 0.0080214355F, 0.0081075363F, + 0.0081940943F, 0.0082811094F, 0.0083685816F, 0.0084565108F, + 0.0085448970F, 0.0086337401F, 0.0087230401F, 0.0088127969F, + 0.0089030104F, 0.0089936807F, 0.0090848076F, 0.0091763911F, + 0.0092684311F, 0.0093609276F, 0.0094538805F, 0.0095472898F, + 0.0096411554F, 0.0097354772F, 0.0098302552F, 0.0099254894F, + 0.0100211796F, 0.0101173259F, 0.0102139281F, 0.0103109863F, + 0.0104085002F, 0.0105064700F, 0.0106048955F, 0.0107037766F, + 0.0108031133F, 0.0109029056F, 0.0110031534F, 0.0111038565F, + 0.0112050151F, 0.0113066289F, 0.0114086980F, 0.0115112222F, + 0.0116142015F, 0.0117176359F, 0.0118215252F, 0.0119258695F, + 0.0120306686F, 0.0121359225F, 0.0122416312F, 0.0123477944F, + 0.0124544123F, 0.0125614847F, 0.0126690116F, 0.0127769928F, + 0.0128854284F, 0.0129943182F, 0.0131036623F, 0.0132134604F, + 0.0133237126F, 0.0134344188F, 0.0135455790F, 0.0136571929F, + 0.0137692607F, 0.0138817821F, 0.0139947572F, 0.0141081859F, + 0.0142220681F, 0.0143364037F, 0.0144511927F, 0.0145664350F, + 0.0146821304F, 0.0147982791F, 0.0149148808F, 0.0150319355F, + 0.0151494431F, 0.0152674036F, 0.0153858168F, 0.0155046828F, + 0.0156240014F, 0.0157437726F, 0.0158639962F, 0.0159846723F, + 0.0161058007F, 0.0162273814F, 0.0163494142F, 0.0164718991F, + 0.0165948361F, 0.0167182250F, 0.0168420658F, 0.0169663584F, + 0.0170911027F, 0.0172162987F, 0.0173419462F, 0.0174680452F, + 0.0175945956F, 0.0177215974F, 0.0178490504F, 0.0179769545F, + 0.0181053098F, 0.0182341160F, 0.0183633732F, 0.0184930812F, + 0.0186232399F, 0.0187538494F, 0.0188849094F, 0.0190164200F, + 0.0191483809F, 0.0192807923F, 0.0194136539F, 0.0195469656F, + 0.0196807275F, 0.0198149394F, 0.0199496012F, 0.0200847128F, + 0.0202202742F, 0.0203562853F, 0.0204927460F, 0.0206296561F, + 0.0207670157F, 0.0209048245F, 0.0210430826F, 0.0211817899F, + 0.0213209462F, 0.0214605515F, 0.0216006057F, 0.0217411086F, + 0.0218820603F, 0.0220234605F, 0.0221653093F, 0.0223076066F, + 0.0224503521F, 0.0225935459F, 0.0227371879F, 0.0228812779F, + 0.0230258160F, 0.0231708018F, 0.0233162355F, 0.0234621169F, + 0.0236084459F, 0.0237552224F, 0.0239024462F, 0.0240501175F, + 0.0241982359F, 0.0243468015F, 0.0244958141F, 0.0246452736F, + 0.0247951800F, 0.0249455331F, 0.0250963329F, 0.0252475792F, + 0.0253992720F, 0.0255514111F, 0.0257039965F, 0.0258570281F, + 0.0260105057F, 0.0261644293F, 0.0263187987F, 0.0264736139F, + 0.0266288747F, 0.0267845811F, 0.0269407330F, 0.0270973302F, + 0.0272543727F, 0.0274118604F, 0.0275697930F, 0.0277281707F, + 0.0278869932F, 0.0280462604F, 0.0282059723F, 0.0283661287F, + 0.0285267295F, 0.0286877747F, 0.0288492641F, 0.0290111976F, + 0.0291735751F, 0.0293363965F, 0.0294996617F, 0.0296633706F, + 0.0298275231F, 0.0299921190F, 0.0301571583F, 0.0303226409F, + 0.0304885667F, 0.0306549354F, 0.0308217472F, 0.0309890017F, + 0.0311566989F, 0.0313248388F, 0.0314934211F, 0.0316624459F, + 0.0318319128F, 0.0320018220F, 0.0321721732F, 0.0323429663F, + 0.0325142013F, 0.0326858779F, 0.0328579962F, 0.0330305559F, + 0.0332035570F, 0.0333769994F, 0.0335508829F, 0.0337252074F, + 0.0338999728F, 0.0340751790F, 0.0342508259F, 0.0344269134F, + 0.0346034412F, 0.0347804094F, 0.0349578178F, 0.0351356663F, + 0.0353139548F, 0.0354926831F, 0.0356718511F, 0.0358514588F, + 0.0360315059F, 0.0362119924F, 0.0363929182F, 0.0365742831F, + 0.0367560870F, 0.0369383297F, 0.0371210113F, 0.0373041315F, + 0.0374876902F, 0.0376716873F, 0.0378561226F, 0.0380409961F, + 0.0382263077F, 0.0384120571F, 0.0385982443F, 0.0387848691F, + 0.0389719315F, 0.0391594313F, 0.0393473683F, 0.0395357425F, + 0.0397245537F, 0.0399138017F, 0.0401034866F, 0.0402936080F, + 0.0404841660F, 0.0406751603F, 0.0408665909F, 0.0410584576F, + 0.0412507603F, 0.0414434988F, 0.0416366731F, 0.0418302829F, + 0.0420243282F, 0.0422188088F, 0.0424137246F, 0.0426090755F, + 0.0428048613F, 0.0430010819F, 0.0431977371F, 0.0433948269F, + 0.0435923511F, 0.0437903095F, 0.0439887020F, 0.0441875285F, + 0.0443867889F, 0.0445864830F, 0.0447866106F, 0.0449871717F, + 0.0451881661F, 0.0453895936F, 0.0455914542F, 0.0457937477F, + 0.0459964738F, 0.0461996326F, 0.0464032239F, 0.0466072475F, + 0.0468117032F, 0.0470165910F, 0.0472219107F, 0.0474276622F, + 0.0476338452F, 0.0478404597F, 0.0480475056F, 0.0482549827F, + 0.0484628907F, 0.0486712297F, 0.0488799994F, 0.0490891998F, + 0.0492988306F, 0.0495088917F, 0.0497193830F, 0.0499303043F, + 0.0501416554F, 0.0503534363F, 0.0505656468F, 0.0507782867F, + 0.0509913559F, 0.0512048542F, 0.0514187815F, 0.0516331376F, + 0.0518479225F, 0.0520631358F, 0.0522787775F, 0.0524948475F, + 0.0527113455F, 0.0529282715F, 0.0531456252F, 0.0533634066F, + 0.0535816154F, 0.0538002515F, 0.0540193148F, 0.0542388051F, + 0.0544587222F, 0.0546790660F, 0.0548998364F, 0.0551210331F, + 0.0553426561F, 0.0555647051F, 0.0557871801F, 0.0560100807F, + 0.0562334070F, 0.0564571587F, 0.0566813357F, 0.0569059378F, + 0.0571309649F, 0.0573564168F, 0.0575822933F, 0.0578085942F, + 0.0580353195F, 0.0582624689F, 0.0584900423F, 0.0587180396F, + 0.0589464605F, 0.0591753049F, 0.0594045726F, 0.0596342635F, + 0.0598643774F, 0.0600949141F, 0.0603258735F, 0.0605572555F, + 0.0607890597F, 0.0610212862F, 0.0612539346F, 0.0614870049F, + 0.0617204968F, 0.0619544103F, 0.0621887451F, 0.0624235010F, + 0.0626586780F, 0.0628942758F, 0.0631302942F, 0.0633667331F, + 0.0636035923F, 0.0638408717F, 0.0640785710F, 0.0643166901F, + 0.0645552288F, 0.0647941870F, 0.0650335645F, 0.0652733610F, + 0.0655135765F, 0.0657542108F, 0.0659952636F, 0.0662367348F, + 0.0664786242F, 0.0667209316F, 0.0669636570F, 0.0672068000F, + 0.0674503605F, 0.0676943384F, 0.0679387334F, 0.0681835454F, + 0.0684287742F, 0.0686744196F, 0.0689204814F, 0.0691669595F, + 0.0694138536F, 0.0696611637F, 0.0699088894F, 0.0701570307F, + 0.0704055873F, 0.0706545590F, 0.0709039458F, 0.0711537473F, + 0.0714039634F, 0.0716545939F, 0.0719056387F, 0.0721570975F, + 0.0724089702F, 0.0726612565F, 0.0729139563F, 0.0731670694F, + 0.0734205956F, 0.0736745347F, 0.0739288866F, 0.0741836510F, + 0.0744388277F, 0.0746944166F, 0.0749504175F, 0.0752068301F, + 0.0754636543F, 0.0757208899F, 0.0759785367F, 0.0762365946F, + 0.0764950632F, 0.0767539424F, 0.0770132320F, 0.0772729319F, + 0.0775330418F, 0.0777935616F, 0.0780544909F, 0.0783158298F, + 0.0785775778F, 0.0788397349F, 0.0791023009F, 0.0793652755F, + 0.0796286585F, 0.0798924498F, 0.0801566492F, 0.0804212564F, + 0.0806862712F, 0.0809516935F, 0.0812175231F, 0.0814837597F, + 0.0817504031F, 0.0820174532F, 0.0822849097F, 0.0825527724F, + 0.0828210412F, 0.0830897158F, 0.0833587960F, 0.0836282816F, + 0.0838981724F, 0.0841684682F, 0.0844391688F, 0.0847102740F, + 0.0849817835F, 0.0852536973F, 0.0855260150F, 0.0857987364F, + 0.0860718614F, 0.0863453897F, 0.0866193211F, 0.0868936554F, + 0.0871683924F, 0.0874435319F, 0.0877190737F, 0.0879950175F, + 0.0882713632F, 0.0885481105F, 0.0888252592F, 0.0891028091F, + 0.0893807600F, 0.0896591117F, 0.0899378639F, 0.0902170165F, + 0.0904965692F, 0.0907765218F, 0.0910568740F, 0.0913376258F, + 0.0916187767F, 0.0919003268F, 0.0921822756F, 0.0924646230F, + 0.0927473687F, 0.0930305126F, 0.0933140545F, 0.0935979940F, + 0.0938823310F, 0.0941670653F, 0.0944521966F, 0.0947377247F, + 0.0950236494F, 0.0953099704F, 0.0955966876F, 0.0958838007F, + 0.0961713094F, 0.0964592136F, 0.0967475131F, 0.0970362075F, + 0.0973252967F, 0.0976147805F, 0.0979046585F, 0.0981949307F, + 0.0984855967F, 0.0987766563F, 0.0990681093F, 0.0993599555F, + 0.0996521945F, 0.0999448263F, 0.1002378506F, 0.1005312671F, + 0.1008250755F, 0.1011192757F, 0.1014138675F, 0.1017088505F, + 0.1020042246F, 0.1022999895F, 0.1025961450F, 0.1028926909F, + 0.1031896268F, 0.1034869526F, 0.1037846680F, 0.1040827729F, + 0.1043812668F, 0.1046801497F, 0.1049794213F, 0.1052790813F, + 0.1055791294F, 0.1058795656F, 0.1061803894F, 0.1064816006F, + 0.1067831991F, 0.1070851846F, 0.1073875568F, 0.1076903155F, + 0.1079934604F, 0.1082969913F, 0.1086009079F, 0.1089052101F, + 0.1092098975F, 0.1095149699F, 0.1098204270F, 0.1101262687F, + 0.1104324946F, 0.1107391045F, 0.1110460982F, 0.1113534754F, + 0.1116612359F, 0.1119693793F, 0.1122779055F, 0.1125868142F, + 0.1128961052F, 0.1132057781F, 0.1135158328F, 0.1138262690F, + 0.1141370863F, 0.1144482847F, 0.1147598638F, 0.1150718233F, + 0.1153841631F, 0.1156968828F, 0.1160099822F, 0.1163234610F, + 0.1166373190F, 0.1169515559F, 0.1172661714F, 0.1175811654F, + 0.1178965374F, 0.1182122874F, 0.1185284149F, 0.1188449198F, + 0.1191618018F, 0.1194790606F, 0.1197966960F, 0.1201147076F, + 0.1204330953F, 0.1207518587F, 0.1210709976F, 0.1213905118F, + 0.1217104009F, 0.1220306647F, 0.1223513029F, 0.1226723153F, + 0.1229937016F, 0.1233154615F, 0.1236375948F, 0.1239601011F, + 0.1242829803F, 0.1246062319F, 0.1249298559F, 0.1252538518F, + 0.1255782195F, 0.1259029586F, 0.1262280689F, 0.1265535501F, + 0.1268794019F, 0.1272056241F, 0.1275322163F, 0.1278591784F, + 0.1281865099F, 0.1285142108F, 0.1288422805F, 0.1291707190F, + 0.1294995259F, 0.1298287009F, 0.1301582437F, 0.1304881542F, + 0.1308184319F, 0.1311490766F, 0.1314800881F, 0.1318114660F, + 0.1321432100F, 0.1324753200F, 0.1328077955F, 0.1331406364F, + 0.1334738422F, 0.1338074129F, 0.1341413479F, 0.1344756472F, + 0.1348103103F, 0.1351453370F, 0.1354807270F, 0.1358164801F, + 0.1361525959F, 0.1364890741F, 0.1368259145F, 0.1371631167F, + 0.1375006805F, 0.1378386056F, 0.1381768917F, 0.1385155384F, + 0.1388545456F, 0.1391939129F, 0.1395336400F, 0.1398737266F, + 0.1402141724F, 0.1405549772F, 0.1408961406F, 0.1412376623F, + 0.1415795421F, 0.1419217797F, 0.1422643746F, 0.1426073268F, + 0.1429506358F, 0.1432943013F, 0.1436383231F, 0.1439827008F, + 0.1443274342F, 0.1446725229F, 0.1450179667F, 0.1453637652F, + 0.1457099181F, 0.1460564252F, 0.1464032861F, 0.1467505006F, + 0.1470980682F, 0.1474459888F, 0.1477942620F, 0.1481428875F, + 0.1484918651F, 0.1488411942F, 0.1491908748F, 0.1495409065F, + 0.1498912889F, 0.1502420218F, 0.1505931048F, 0.1509445376F, + 0.1512963200F, 0.1516484516F, 0.1520009321F, 0.1523537612F, + 0.1527069385F, 0.1530604638F, 0.1534143368F, 0.1537685571F, + 0.1541231244F, 0.1544780384F, 0.1548332987F, 0.1551889052F, + 0.1555448574F, 0.1559011550F, 0.1562577978F, 0.1566147853F, + 0.1569721173F, 0.1573297935F, 0.1576878135F, 0.1580461771F, + 0.1584048838F, 0.1587639334F, 0.1591233255F, 0.1594830599F, + 0.1598431361F, 0.1602035540F, 0.1605643131F, 0.1609254131F, + 0.1612868537F, 0.1616486346F, 0.1620107555F, 0.1623732160F, + 0.1627360158F, 0.1630991545F, 0.1634626319F, 0.1638264476F, + 0.1641906013F, 0.1645550926F, 0.1649199212F, 0.1652850869F, + 0.1656505892F, 0.1660164278F, 0.1663826024F, 0.1667491127F, + 0.1671159583F, 0.1674831388F, 0.1678506541F, 0.1682185036F, + 0.1685866872F, 0.1689552044F, 0.1693240549F, 0.1696932384F, + 0.1700627545F, 0.1704326029F, 0.1708027833F, 0.1711732952F, + 0.1715441385F, 0.1719153127F, 0.1722868175F, 0.1726586526F, + 0.1730308176F, 0.1734033121F, 0.1737761359F, 0.1741492886F, + 0.1745227698F, 0.1748965792F, 0.1752707164F, 0.1756451812F, + 0.1760199731F, 0.1763950918F, 0.1767705370F, 0.1771463083F, + 0.1775224054F, 0.1778988279F, 0.1782755754F, 0.1786526477F, + 0.1790300444F, 0.1794077651F, 0.1797858094F, 0.1801641771F, + 0.1805428677F, 0.1809218810F, 0.1813012165F, 0.1816808739F, + 0.1820608528F, 0.1824411530F, 0.1828217739F, 0.1832027154F, + 0.1835839770F, 0.1839655584F, 0.1843474592F, 0.1847296790F, + 0.1851122175F, 0.1854950744F, 0.1858782492F, 0.1862617417F, + 0.1866455514F, 0.1870296780F, 0.1874141211F, 0.1877988804F, + 0.1881839555F, 0.1885693461F, 0.1889550517F, 0.1893410721F, + 0.1897274068F, 0.1901140555F, 0.1905010178F, 0.1908882933F, + 0.1912758818F, 0.1916637828F, 0.1920519959F, 0.1924405208F, + 0.1928293571F, 0.1932185044F, 0.1936079625F, 0.1939977308F, + 0.1943878091F, 0.1947781969F, 0.1951688939F, 0.1955598998F, + 0.1959512141F, 0.1963428364F, 0.1967347665F, 0.1971270038F, + 0.1975195482F, 0.1979123990F, 0.1983055561F, 0.1986990190F, + 0.1990927873F, 0.1994868607F, 0.1998812388F, 0.2002759212F, + 0.2006709075F, 0.2010661974F, 0.2014617904F, 0.2018576862F, + 0.2022538844F, 0.2026503847F, 0.2030471865F, 0.2034442897F, + 0.2038416937F, 0.2042393982F, 0.2046374028F, 0.2050357071F, + 0.2054343107F, 0.2058332133F, 0.2062324145F, 0.2066319138F, + 0.2070317110F, 0.2074318055F, 0.2078321970F, 0.2082328852F, + 0.2086338696F, 0.2090351498F, 0.2094367255F, 0.2098385962F, + 0.2102407617F, 0.2106432213F, 0.2110459749F, 0.2114490220F, + 0.2118523621F, 0.2122559950F, 0.2126599202F, 0.2130641373F, + 0.2134686459F, 0.2138734456F, 0.2142785361F, 0.2146839168F, + 0.2150895875F, 0.2154955478F, 0.2159017972F, 0.2163083353F, + 0.2167151617F, 0.2171222761F, 0.2175296780F, 0.2179373670F, + 0.2183453428F, 0.2187536049F, 0.2191621529F, 0.2195709864F, + 0.2199801051F, 0.2203895085F, 0.2207991961F, 0.2212091677F, + 0.2216194228F, 0.2220299610F, 0.2224407818F, 0.2228518850F, + 0.2232632699F, 0.2236749364F, 0.2240868839F, 0.2244991121F, + 0.2249116204F, 0.2253244086F, 0.2257374763F, 0.2261508229F, + 0.2265644481F, 0.2269783514F, 0.2273925326F, 0.2278069911F, + 0.2282217265F, 0.2286367384F, 0.2290520265F, 0.2294675902F, + 0.2298834292F, 0.2302995431F, 0.2307159314F, 0.2311325937F, + 0.2315495297F, 0.2319667388F, 0.2323842207F, 0.2328019749F, + 0.2332200011F, 0.2336382988F, 0.2340568675F, 0.2344757070F, + 0.2348948166F, 0.2353141961F, 0.2357338450F, 0.2361537629F, + 0.2365739493F, 0.2369944038F, 0.2374151261F, 0.2378361156F, + 0.2382573720F, 0.2386788948F, 0.2391006836F, 0.2395227380F, + 0.2399450575F, 0.2403676417F, 0.2407904902F, 0.2412136026F, + 0.2416369783F, 0.2420606171F, 0.2424845185F, 0.2429086820F, + 0.2433331072F, 0.2437577936F, 0.2441827409F, 0.2446079486F, + 0.2450334163F, 0.2454591435F, 0.2458851298F, 0.2463113747F, + 0.2467378779F, 0.2471646389F, 0.2475916573F, 0.2480189325F, + 0.2484464643F, 0.2488742521F, 0.2493022955F, 0.2497305940F, + 0.2501591473F, 0.2505879549F, 0.2510170163F, 0.2514463311F, + 0.2518758989F, 0.2523057193F, 0.2527357916F, 0.2531661157F, + 0.2535966909F, 0.2540275169F, 0.2544585931F, 0.2548899193F, + 0.2553214948F, 0.2557533193F, 0.2561853924F, 0.2566177135F, + 0.2570502822F, 0.2574830981F, 0.2579161608F, 0.2583494697F, + 0.2587830245F, 0.2592168246F, 0.2596508697F, 0.2600851593F, + 0.2605196929F, 0.2609544701F, 0.2613894904F, 0.2618247534F, + 0.2622602586F, 0.2626960055F, 0.2631319938F, 0.2635682230F, + 0.2640046925F, 0.2644414021F, 0.2648783511F, 0.2653155391F, + 0.2657529657F, 0.2661906305F, 0.2666285329F, 0.2670666725F, + 0.2675050489F, 0.2679436616F, 0.2683825101F, 0.2688215940F, + 0.2692609127F, 0.2697004660F, 0.2701402532F, 0.2705802739F, + 0.2710205278F, 0.2714610142F, 0.2719017327F, 0.2723426830F, + 0.2727838644F, 0.2732252766F, 0.2736669191F, 0.2741087914F, + 0.2745508930F, 0.2749932235F, 0.2754357824F, 0.2758785693F, + 0.2763215837F, 0.2767648251F, 0.2772082930F, 0.2776519870F, + 0.2780959066F, 0.2785400513F, 0.2789844207F, 0.2794290143F, + 0.2798738316F, 0.2803188722F, 0.2807641355F, 0.2812096211F, + 0.2816553286F, 0.2821012574F, 0.2825474071F, 0.2829937773F, + 0.2834403673F, 0.2838871768F, 0.2843342053F, 0.2847814523F, + 0.2852289174F, 0.2856765999F, 0.2861244996F, 0.2865726159F, + 0.2870209482F, 0.2874694962F, 0.2879182594F, 0.2883672372F, + 0.2888164293F, 0.2892658350F, 0.2897154540F, 0.2901652858F, + 0.2906153298F, 0.2910655856F, 0.2915160527F, 0.2919667306F, + 0.2924176189F, 0.2928687171F, 0.2933200246F, 0.2937715409F, + 0.2942232657F, 0.2946751984F, 0.2951273386F, 0.2955796856F, + 0.2960322391F, 0.2964849986F, 0.2969379636F, 0.2973911335F, + 0.2978445080F, 0.2982980864F, 0.2987518684F, 0.2992058534F, + 0.2996600409F, 0.3001144305F, 0.3005690217F, 0.3010238139F, + 0.3014788067F, 0.3019339995F, 0.3023893920F, 0.3028449835F, + 0.3033007736F, 0.3037567618F, 0.3042129477F, 0.3046693306F, + 0.3051259102F, 0.3055826859F, 0.3060396572F, 0.3064968236F, + 0.3069541847F, 0.3074117399F, 0.3078694887F, 0.3083274307F, + 0.3087855653F, 0.3092438920F, 0.3097024104F, 0.3101611199F, + 0.3106200200F, 0.3110791103F, 0.3115383902F, 0.3119978592F, + 0.3124575169F, 0.3129173627F, 0.3133773961F, 0.3138376166F, + 0.3142980238F, 0.3147586170F, 0.3152193959F, 0.3156803598F, + 0.3161415084F, 0.3166028410F, 0.3170643573F, 0.3175260566F, + 0.3179879384F, 0.3184500023F, 0.3189122478F, 0.3193746743F, + 0.3198372814F, 0.3203000685F, 0.3207630351F, 0.3212261807F, + 0.3216895048F, 0.3221530069F, 0.3226166865F, 0.3230805430F, + 0.3235445760F, 0.3240087849F, 0.3244731693F, 0.3249377285F, + 0.3254024622F, 0.3258673698F, 0.3263324507F, 0.3267977045F, + 0.3272631306F, 0.3277287286F, 0.3281944978F, 0.3286604379F, + 0.3291265482F, 0.3295928284F, 0.3300592777F, 0.3305258958F, + 0.3309926821F, 0.3314596361F, 0.3319267573F, 0.3323940451F, + 0.3328614990F, 0.3333291186F, 0.3337969033F, 0.3342648525F, + 0.3347329658F, 0.3352012427F, 0.3356696825F, 0.3361382849F, + 0.3366070492F, 0.3370759749F, 0.3375450616F, 0.3380143087F, + 0.3384837156F, 0.3389532819F, 0.3394230071F, 0.3398928905F, + 0.3403629317F, 0.3408331302F, 0.3413034854F, 0.3417739967F, + 0.3422446638F, 0.3427154860F, 0.3431864628F, 0.3436575938F, + 0.3441288782F, 0.3446003158F, 0.3450719058F, 0.3455436478F, + 0.3460155412F, 0.3464875856F, 0.3469597804F, 0.3474321250F, + 0.3479046189F, 0.3483772617F, 0.3488500527F, 0.3493229914F, + 0.3497960774F, 0.3502693100F, 0.3507426887F, 0.3512162131F, + 0.3516898825F, 0.3521636965F, 0.3526376545F, 0.3531117559F, + 0.3535860003F, 0.3540603870F, 0.3545349157F, 0.3550095856F, + 0.3554843964F, 0.3559593474F, 0.3564344381F, 0.3569096680F, + 0.3573850366F, 0.3578605432F, 0.3583361875F, 0.3588119687F, + 0.3592878865F, 0.3597639402F, 0.3602401293F, 0.3607164533F, + 0.3611929117F, 0.3616695038F, 0.3621462292F, 0.3626230873F, + 0.3631000776F, 0.3635771995F, 0.3640544525F, 0.3645318360F, + 0.3650093496F, 0.3654869926F, 0.3659647645F, 0.3664426648F, + 0.3669206930F, 0.3673988484F, 0.3678771306F, 0.3683555390F, + 0.3688340731F, 0.3693127322F, 0.3697915160F, 0.3702704237F, + 0.3707494549F, 0.3712286091F, 0.3717078857F, 0.3721872840F, + 0.3726668037F, 0.3731464441F, 0.3736262047F, 0.3741060850F, + 0.3745860843F, 0.3750662023F, 0.3755464382F, 0.3760267915F, + 0.3765072618F, 0.3769878484F, 0.3774685509F, 0.3779493686F, + 0.3784303010F, 0.3789113475F, 0.3793925076F, 0.3798737809F, + 0.3803551666F, 0.3808366642F, 0.3813182733F, 0.3817999932F, + 0.3822818234F, 0.3827637633F, 0.3832458124F, 0.3837279702F, + 0.3842102360F, 0.3846926093F, 0.3851750897F, 0.3856576764F, + 0.3861403690F, 0.3866231670F, 0.3871060696F, 0.3875890765F, + 0.3880721870F, 0.3885554007F, 0.3890387168F, 0.3895221349F, + 0.3900056544F, 0.3904892748F, 0.3909729955F, 0.3914568160F, + 0.3919407356F, 0.3924247539F, 0.3929088702F, 0.3933930841F, + 0.3938773949F, 0.3943618021F, 0.3948463052F, 0.3953309035F, + 0.3958155966F, 0.3963003838F, 0.3967852646F, 0.3972702385F, + 0.3977553048F, 0.3982404631F, 0.3987257127F, 0.3992110531F, + 0.3996964838F, 0.4001820041F, 0.4006676136F, 0.4011533116F, + 0.4016390976F, 0.4021249710F, 0.4026109313F, 0.4030969779F, + 0.4035831102F, 0.4040693277F, 0.4045556299F, 0.4050420160F, + 0.4055284857F, 0.4060150383F, 0.4065016732F, 0.4069883899F, + 0.4074751879F, 0.4079620665F, 0.4084490252F, 0.4089360635F, + 0.4094231807F, 0.4099103763F, 0.4103976498F, 0.4108850005F, + 0.4113724280F, 0.4118599315F, 0.4123475107F, 0.4128351648F, + 0.4133228934F, 0.4138106959F, 0.4142985716F, 0.4147865201F, + 0.4152745408F, 0.4157626330F, 0.4162507963F, 0.4167390301F, + 0.4172273337F, 0.4177157067F, 0.4182041484F, 0.4186926583F, + 0.4191812359F, 0.4196698805F, 0.4201585915F, 0.4206473685F, + 0.4211362108F, 0.4216251179F, 0.4221140892F, 0.4226031241F, + 0.4230922221F, 0.4235813826F, 0.4240706050F, 0.4245598887F, + 0.4250492332F, 0.4255386379F, 0.4260281022F, 0.4265176256F, + 0.4270072075F, 0.4274968473F, 0.4279865445F, 0.4284762984F, + 0.4289661086F, 0.4294559743F, 0.4299458951F, 0.4304358704F, + 0.4309258996F, 0.4314159822F, 0.4319061175F, 0.4323963050F, + 0.4328865441F, 0.4333768342F, 0.4338671749F, 0.4343575654F, + 0.4348480052F, 0.4353384938F, 0.4358290306F, 0.4363196149F, + 0.4368102463F, 0.4373009241F, 0.4377916478F, 0.4382824168F, + 0.4387732305F, 0.4392640884F, 0.4397549899F, 0.4402459343F, + 0.4407369212F, 0.4412279499F, 0.4417190198F, 0.4422101305F, + 0.4427012813F, 0.4431924717F, 0.4436837010F, 0.4441749686F, + 0.4446662742F, 0.4451576169F, 0.4456489963F, 0.4461404118F, + 0.4466318628F, 0.4471233487F, 0.4476148690F, 0.4481064230F, + 0.4485980103F, 0.4490896302F, 0.4495812821F, 0.4500729654F, + 0.4505646797F, 0.4510564243F, 0.4515481986F, 0.4520400021F, + 0.4525318341F, 0.4530236942F, 0.4535155816F, 0.4540074959F, + 0.4544994365F, 0.4549914028F, 0.4554833941F, 0.4559754100F, + 0.4564674499F, 0.4569595131F, 0.4574515991F, 0.4579437074F, + 0.4584358372F, 0.4589279881F, 0.4594201595F, 0.4599123508F, + 0.4604045615F, 0.4608967908F, 0.4613890383F, 0.4618813034F, + 0.4623735855F, 0.4628658841F, 0.4633581984F, 0.4638505281F, + 0.4643428724F, 0.4648352308F, 0.4653276028F, 0.4658199877F, + 0.4663123849F, 0.4668047940F, 0.4672972143F, 0.4677896451F, + 0.4682820861F, 0.4687745365F, 0.4692669958F, 0.4697594634F, + 0.4702519387F, 0.4707444211F, 0.4712369102F, 0.4717294052F, + 0.4722219056F, 0.4727144109F, 0.4732069204F, 0.4736994336F, + 0.4741919498F, 0.4746844686F, 0.4751769893F, 0.4756695113F, + 0.4761620341F, 0.4766545571F, 0.4771470797F, 0.4776396013F, + 0.4781321213F, 0.4786246392F, 0.4791171544F, 0.4796096663F, + 0.4801021744F, 0.4805946779F, 0.4810871765F, 0.4815796694F, + 0.4820721561F, 0.4825646360F, 0.4830571086F, 0.4835495732F, + 0.4840420293F, 0.4845344763F, 0.4850269136F, 0.4855193407F, + 0.4860117569F, 0.4865041617F, 0.4869965545F, 0.4874889347F, + 0.4879813018F, 0.4884736551F, 0.4889659941F, 0.4894583182F, + 0.4899506268F, 0.4904429193F, 0.4909351952F, 0.4914274538F, + 0.4919196947F, 0.4924119172F, 0.4929041207F, 0.4933963046F, + 0.4938884685F, 0.4943806116F, 0.4948727335F, 0.4953648335F, + 0.4958569110F, 0.4963489656F, 0.4968409965F, 0.4973330032F, + 0.4978249852F, 0.4983169419F, 0.4988088726F, 0.4993007768F, + 0.4997926539F, 0.5002845034F, 0.5007763247F, 0.5012681171F, + 0.5017598801F, 0.5022516132F, 0.5027433157F, 0.5032349871F, + 0.5037266268F, 0.5042182341F, 0.5047098086F, 0.5052013497F, + 0.5056928567F, 0.5061843292F, 0.5066757664F, 0.5071671679F, + 0.5076585330F, 0.5081498613F, 0.5086411520F, 0.5091324047F, + 0.5096236187F, 0.5101147934F, 0.5106059284F, 0.5110970230F, + 0.5115880766F, 0.5120790887F, 0.5125700587F, 0.5130609860F, + 0.5135518700F, 0.5140427102F, 0.5145335059F, 0.5150242566F, + 0.5155149618F, 0.5160056208F, 0.5164962331F, 0.5169867980F, + 0.5174773151F, 0.5179677837F, 0.5184582033F, 0.5189485733F, + 0.5194388931F, 0.5199291621F, 0.5204193798F, 0.5209095455F, + 0.5213996588F, 0.5218897190F, 0.5223797256F, 0.5228696779F, + 0.5233595755F, 0.5238494177F, 0.5243392039F, 0.5248289337F, + 0.5253186063F, 0.5258082213F, 0.5262977781F, 0.5267872760F, + 0.5272767146F, 0.5277660932F, 0.5282554112F, 0.5287446682F, + 0.5292338635F, 0.5297229965F, 0.5302120667F, 0.5307010736F, + 0.5311900164F, 0.5316788947F, 0.5321677079F, 0.5326564554F, + 0.5331451366F, 0.5336337511F, 0.5341222981F, 0.5346107771F, + 0.5350991876F, 0.5355875290F, 0.5360758007F, 0.5365640021F, + 0.5370521327F, 0.5375401920F, 0.5380281792F, 0.5385160939F, + 0.5390039355F, 0.5394917034F, 0.5399793971F, 0.5404670159F, + 0.5409545594F, 0.5414420269F, 0.5419294179F, 0.5424167318F, + 0.5429039680F, 0.5433911261F, 0.5438782053F, 0.5443652051F, + 0.5448521250F, 0.5453389644F, 0.5458257228F, 0.5463123995F, + 0.5467989940F, 0.5472855057F, 0.5477719341F, 0.5482582786F, + 0.5487445387F, 0.5492307137F, 0.5497168031F, 0.5502028063F, + 0.5506887228F, 0.5511745520F, 0.5516602934F, 0.5521459463F, + 0.5526315103F, 0.5531169847F, 0.5536023690F, 0.5540876626F, + 0.5545728649F, 0.5550579755F, 0.5555429937F, 0.5560279189F, + 0.5565127507F, 0.5569974884F, 0.5574821315F, 0.5579666794F, + 0.5584511316F, 0.5589354875F, 0.5594197465F, 0.5599039080F, + 0.5603879716F, 0.5608719367F, 0.5613558026F, 0.5618395689F, + 0.5623232350F, 0.5628068002F, 0.5632902642F, 0.5637736262F, + 0.5642568858F, 0.5647400423F, 0.5652230953F, 0.5657060442F, + 0.5661888883F, 0.5666716272F, 0.5671542603F, 0.5676367870F, + 0.5681192069F, 0.5686015192F, 0.5690837235F, 0.5695658192F, + 0.5700478058F, 0.5705296827F, 0.5710114494F, 0.5714931052F, + 0.5719746497F, 0.5724560822F, 0.5729374023F, 0.5734186094F, + 0.5738997029F, 0.5743806823F, 0.5748615470F, 0.5753422965F, + 0.5758229301F, 0.5763034475F, 0.5767838480F, 0.5772641310F, + 0.5777442960F, 0.5782243426F, 0.5787042700F, 0.5791840778F, + 0.5796637654F, 0.5801433322F, 0.5806227778F, 0.5811021016F, + 0.5815813029F, 0.5820603814F, 0.5825393363F, 0.5830181673F, + 0.5834968737F, 0.5839754549F, 0.5844539105F, 0.5849322399F, + 0.5854104425F, 0.5858885179F, 0.5863664653F, 0.5868442844F, + 0.5873219746F, 0.5877995353F, 0.5882769660F, 0.5887542661F, + 0.5892314351F, 0.5897084724F, 0.5901853776F, 0.5906621500F, + 0.5911387892F, 0.5916152945F, 0.5920916655F, 0.5925679016F, + 0.5930440022F, 0.5935199669F, 0.5939957950F, 0.5944714861F, + 0.5949470396F, 0.5954224550F, 0.5958977317F, 0.5963728692F, + 0.5968478669F, 0.5973227244F, 0.5977974411F, 0.5982720163F, + 0.5987464497F, 0.5992207407F, 0.5996948887F, 0.6001688932F, + 0.6006427537F, 0.6011164696F, 0.6015900405F, 0.6020634657F, + 0.6025367447F, 0.6030098770F, 0.6034828621F, 0.6039556995F, + 0.6044283885F, 0.6049009288F, 0.6053733196F, 0.6058455606F, + 0.6063176512F, 0.6067895909F, 0.6072613790F, 0.6077330152F, + 0.6082044989F, 0.6086758295F, 0.6091470065F, 0.6096180294F, + 0.6100888977F, 0.6105596108F, 0.6110301682F, 0.6115005694F, + 0.6119708139F, 0.6124409011F, 0.6129108305F, 0.6133806017F, + 0.6138502139F, 0.6143196669F, 0.6147889599F, 0.6152580926F, + 0.6157270643F, 0.6161958746F, 0.6166645230F, 0.6171330088F, + 0.6176013317F, 0.6180694910F, 0.6185374863F, 0.6190053171F, + 0.6194729827F, 0.6199404828F, 0.6204078167F, 0.6208749841F, + 0.6213419842F, 0.6218088168F, 0.6222754811F, 0.6227419768F, + 0.6232083032F, 0.6236744600F, 0.6241404465F, 0.6246062622F, + 0.6250719067F, 0.6255373795F, 0.6260026799F, 0.6264678076F, + 0.6269327619F, 0.6273975425F, 0.6278621487F, 0.6283265800F, + 0.6287908361F, 0.6292549163F, 0.6297188201F, 0.6301825471F, + 0.6306460966F, 0.6311094683F, 0.6315726617F, 0.6320356761F, + 0.6324985111F, 0.6329611662F, 0.6334236410F, 0.6338859348F, + 0.6343480472F, 0.6348099777F, 0.6352717257F, 0.6357332909F, + 0.6361946726F, 0.6366558704F, 0.6371168837F, 0.6375777122F, + 0.6380383552F, 0.6384988123F, 0.6389590830F, 0.6394191668F, + 0.6398790631F, 0.6403387716F, 0.6407982916F, 0.6412576228F, + 0.6417167645F, 0.6421757163F, 0.6426344778F, 0.6430930483F, + 0.6435514275F, 0.6440096149F, 0.6444676098F, 0.6449254119F, + 0.6453830207F, 0.6458404356F, 0.6462976562F, 0.6467546820F, + 0.6472115125F, 0.6476681472F, 0.6481245856F, 0.6485808273F, + 0.6490368717F, 0.6494927183F, 0.6499483667F, 0.6504038164F, + 0.6508590670F, 0.6513141178F, 0.6517689684F, 0.6522236185F, + 0.6526780673F, 0.6531323146F, 0.6535863598F, 0.6540402024F, + 0.6544938419F, 0.6549472779F, 0.6554005099F, 0.6558535373F, + 0.6563063598F, 0.6567589769F, 0.6572113880F, 0.6576635927F, + 0.6581155906F, 0.6585673810F, 0.6590189637F, 0.6594703380F, + 0.6599215035F, 0.6603724598F, 0.6608232064F, 0.6612737427F, + 0.6617240684F, 0.6621741829F, 0.6626240859F, 0.6630737767F, + 0.6635232550F, 0.6639725202F, 0.6644215720F, 0.6648704098F, + 0.6653190332F, 0.6657674417F, 0.6662156348F, 0.6666636121F, + 0.6671113731F, 0.6675589174F, 0.6680062445F, 0.6684533538F, + 0.6689002450F, 0.6693469177F, 0.6697933712F, 0.6702396052F, + 0.6706856193F, 0.6711314129F, 0.6715769855F, 0.6720223369F, + 0.6724674664F, 0.6729123736F, 0.6733570581F, 0.6738015194F, + 0.6742457570F, 0.6746897706F, 0.6751335596F, 0.6755771236F, + 0.6760204621F, 0.6764635747F, 0.6769064609F, 0.6773491204F, + 0.6777915525F, 0.6782337570F, 0.6786757332F, 0.6791174809F, + 0.6795589995F, 0.6800002886F, 0.6804413477F, 0.6808821765F, + 0.6813227743F, 0.6817631409F, 0.6822032758F, 0.6826431785F, + 0.6830828485F, 0.6835222855F, 0.6839614890F, 0.6844004585F, + 0.6848391936F, 0.6852776939F, 0.6857159589F, 0.6861539883F, + 0.6865917815F, 0.6870293381F, 0.6874666576F, 0.6879037398F, + 0.6883405840F, 0.6887771899F, 0.6892135571F, 0.6896496850F, + 0.6900855733F, 0.6905212216F, 0.6909566294F, 0.6913917963F, + 0.6918267218F, 0.6922614055F, 0.6926958471F, 0.6931300459F, + 0.6935640018F, 0.6939977141F, 0.6944311825F, 0.6948644066F, + 0.6952973859F, 0.6957301200F, 0.6961626085F, 0.6965948510F, + 0.6970268470F, 0.6974585961F, 0.6978900980F, 0.6983213521F, + 0.6987523580F, 0.6991831154F, 0.6996136238F, 0.7000438828F, + 0.7004738921F, 0.7009036510F, 0.7013331594F, 0.7017624166F, + 0.7021914224F, 0.7026201763F, 0.7030486779F, 0.7034769268F, + 0.7039049226F, 0.7043326648F, 0.7047601531F, 0.7051873870F, + 0.7056143662F, 0.7060410902F, 0.7064675586F, 0.7068937711F, + 0.7073197271F, 0.7077454264F, 0.7081708684F, 0.7085960529F, + 0.7090209793F, 0.7094456474F, 0.7098700566F, 0.7102942066F, + 0.7107180970F, 0.7111417274F, 0.7115650974F, 0.7119882066F, + 0.7124110545F, 0.7128336409F, 0.7132559653F, 0.7136780272F, + 0.7140998264F, 0.7145213624F, 0.7149426348F, 0.7153636433F, + 0.7157843874F, 0.7162048668F, 0.7166250810F, 0.7170450296F, + 0.7174647124F, 0.7178841289F, 0.7183032786F, 0.7187221613F, + 0.7191407765F, 0.7195591239F, 0.7199772030F, 0.7203950135F, + 0.7208125550F, 0.7212298271F, 0.7216468294F, 0.7220635616F, + 0.7224800233F, 0.7228962140F, 0.7233121335F, 0.7237277813F, + 0.7241431571F, 0.7245582604F, 0.7249730910F, 0.7253876484F, + 0.7258019322F, 0.7262159422F, 0.7266296778F, 0.7270431388F, + 0.7274563247F, 0.7278692353F, 0.7282818700F, 0.7286942287F, + 0.7291063108F, 0.7295181160F, 0.7299296440F, 0.7303408944F, + 0.7307518669F, 0.7311625609F, 0.7315729763F, 0.7319831126F, + 0.7323929695F, 0.7328025466F, 0.7332118435F, 0.7336208600F, + 0.7340295955F, 0.7344380499F, 0.7348462226F, 0.7352541134F, + 0.7356617220F, 0.7360690478F, 0.7364760907F, 0.7368828502F, + 0.7372893259F, 0.7376955176F, 0.7381014249F, 0.7385070475F, + 0.7389123849F, 0.7393174368F, 0.7397222029F, 0.7401266829F, + 0.7405308763F, 0.7409347829F, 0.7413384023F, 0.7417417341F, + 0.7421447780F, 0.7425475338F, 0.7429500009F, 0.7433521791F, + 0.7437540681F, 0.7441556674F, 0.7445569769F, 0.7449579960F, + 0.7453587245F, 0.7457591621F, 0.7461593084F, 0.7465591631F, + 0.7469587259F, 0.7473579963F, 0.7477569741F, 0.7481556590F, + 0.7485540506F, 0.7489521486F, 0.7493499526F, 0.7497474623F, + 0.7501446775F, 0.7505415977F, 0.7509382227F, 0.7513345521F, + 0.7517305856F, 0.7521263229F, 0.7525217636F, 0.7529169074F, + 0.7533117541F, 0.7537063032F, 0.7541005545F, 0.7544945076F, + 0.7548881623F, 0.7552815182F, 0.7556745749F, 0.7560673323F, + 0.7564597899F, 0.7568519474F, 0.7572438046F, 0.7576353611F, + 0.7580266166F, 0.7584175708F, 0.7588082235F, 0.7591985741F, + 0.7595886226F, 0.7599783685F, 0.7603678116F, 0.7607569515F, + 0.7611457879F, 0.7615343206F, 0.7619225493F, 0.7623104735F, + 0.7626980931F, 0.7630854078F, 0.7634724171F, 0.7638591209F, + 0.7642455188F, 0.7646316106F, 0.7650173959F, 0.7654028744F, + 0.7657880459F, 0.7661729100F, 0.7665574664F, 0.7669417150F, + 0.7673256553F, 0.7677092871F, 0.7680926100F, 0.7684756239F, + 0.7688583284F, 0.7692407232F, 0.7696228080F, 0.7700045826F, + 0.7703860467F, 0.7707671999F, 0.7711480420F, 0.7715285728F, + 0.7719087918F, 0.7722886989F, 0.7726682938F, 0.7730475762F, + 0.7734265458F, 0.7738052023F, 0.7741835454F, 0.7745615750F, + 0.7749392906F, 0.7753166921F, 0.7756937791F, 0.7760705514F, + 0.7764470087F, 0.7768231508F, 0.7771989773F, 0.7775744880F, + 0.7779496827F, 0.7783245610F, 0.7786991227F, 0.7790733676F, + 0.7794472953F, 0.7798209056F, 0.7801941982F, 0.7805671729F, + 0.7809398294F, 0.7813121675F, 0.7816841869F, 0.7820558873F, + 0.7824272684F, 0.7827983301F, 0.7831690720F, 0.7835394940F, + 0.7839095957F, 0.7842793768F, 0.7846488373F, 0.7850179767F, + 0.7853867948F, 0.7857552914F, 0.7861234663F, 0.7864913191F, + 0.7868588497F, 0.7872260578F, 0.7875929431F, 0.7879595055F, + 0.7883257445F, 0.7886916601F, 0.7890572520F, 0.7894225198F, + 0.7897874635F, 0.7901520827F, 0.7905163772F, 0.7908803468F, + 0.7912439912F, 0.7916073102F, 0.7919703035F, 0.7923329710F, + 0.7926953124F, 0.7930573274F, 0.7934190158F, 0.7937803774F, + 0.7941414120F, 0.7945021193F, 0.7948624991F, 0.7952225511F, + 0.7955822752F, 0.7959416711F, 0.7963007387F, 0.7966594775F, + 0.7970178875F, 0.7973759685F, 0.7977337201F, 0.7980911422F, + 0.7984482346F, 0.7988049970F, 0.7991614292F, 0.7995175310F, + 0.7998733022F, 0.8002287426F, 0.8005838519F, 0.8009386299F, + 0.8012930765F, 0.8016471914F, 0.8020009744F, 0.8023544253F, + 0.8027075438F, 0.8030603298F, 0.8034127831F, 0.8037649035F, + 0.8041166906F, 0.8044681445F, 0.8048192647F, 0.8051700512F, + 0.8055205038F, 0.8058706222F, 0.8062204062F, 0.8065698556F, + 0.8069189702F, 0.8072677499F, 0.8076161944F, 0.8079643036F, + 0.8083120772F, 0.8086595151F, 0.8090066170F, 0.8093533827F, + 0.8096998122F, 0.8100459051F, 0.8103916613F, 0.8107370806F, + 0.8110821628F, 0.8114269077F, 0.8117713151F, 0.8121153849F, + 0.8124591169F, 0.8128025108F, 0.8131455666F, 0.8134882839F, + 0.8138306627F, 0.8141727027F, 0.8145144038F, 0.8148557658F, + 0.8151967886F, 0.8155374718F, 0.8158778154F, 0.8162178192F, + 0.8165574830F, 0.8168968067F, 0.8172357900F, 0.8175744328F, + 0.8179127349F, 0.8182506962F, 0.8185883164F, 0.8189255955F, + 0.8192625332F, 0.8195991295F, 0.8199353840F, 0.8202712967F, + 0.8206068673F, 0.8209420958F, 0.8212769820F, 0.8216115256F, + 0.8219457266F, 0.8222795848F, 0.8226131000F, 0.8229462721F, + 0.8232791009F, 0.8236115863F, 0.8239437280F, 0.8242755260F, + 0.8246069801F, 0.8249380901F, 0.8252688559F, 0.8255992774F, + 0.8259293544F, 0.8262590867F, 0.8265884741F, 0.8269175167F, + 0.8272462141F, 0.8275745663F, 0.8279025732F, 0.8282302344F, + 0.8285575501F, 0.8288845199F, 0.8292111437F, 0.8295374215F, + 0.8298633530F, 0.8301889382F, 0.8305141768F, 0.8308390688F, + 0.8311636141F, 0.8314878124F, 0.8318116637F, 0.8321351678F, + 0.8324583246F, 0.8327811340F, 0.8331035957F, 0.8334257098F, + 0.8337474761F, 0.8340688944F, 0.8343899647F, 0.8347106867F, + 0.8350310605F, 0.8353510857F, 0.8356707624F, 0.8359900904F, + 0.8363090696F, 0.8366276999F, 0.8369459811F, 0.8372639131F, + 0.8375814958F, 0.8378987292F, 0.8382156130F, 0.8385321472F, + 0.8388483316F, 0.8391641662F, 0.8394796508F, 0.8397947853F, + 0.8401095697F, 0.8404240037F, 0.8407380873F, 0.8410518204F, + 0.8413652029F, 0.8416782347F, 0.8419909156F, 0.8423032456F, + 0.8426152245F, 0.8429268523F, 0.8432381289F, 0.8435490541F, + 0.8438596279F, 0.8441698502F, 0.8444797208F, 0.8447892396F, + 0.8450984067F, 0.8454072218F, 0.8457156849F, 0.8460237959F, + 0.8463315547F, 0.8466389612F, 0.8469460154F, 0.8472527170F, + 0.8475590661F, 0.8478650625F, 0.8481707063F, 0.8484759971F, + 0.8487809351F, 0.8490855201F, 0.8493897521F, 0.8496936308F, + 0.8499971564F, 0.8503003286F, 0.8506031474F, 0.8509056128F, + 0.8512077246F, 0.8515094828F, 0.8518108872F, 0.8521119379F, + 0.8524126348F, 0.8527129777F, 0.8530129666F, 0.8533126015F, + 0.8536118822F, 0.8539108087F, 0.8542093809F, 0.8545075988F, + 0.8548054623F, 0.8551029712F, 0.8554001257F, 0.8556969255F, + 0.8559933707F, 0.8562894611F, 0.8565851968F, 0.8568805775F, + 0.8571756034F, 0.8574702743F, 0.8577645902F, 0.8580585509F, + 0.8583521566F, 0.8586454070F, 0.8589383021F, 0.8592308420F, + 0.8595230265F, 0.8598148556F, 0.8601063292F, 0.8603974473F, + 0.8606882098F, 0.8609786167F, 0.8612686680F, 0.8615583636F, + 0.8618477034F, 0.8621366874F, 0.8624253156F, 0.8627135878F, + 0.8630015042F, 0.8632890646F, 0.8635762690F, 0.8638631173F, + 0.8641496096F, 0.8644357457F, 0.8647215257F, 0.8650069495F, + 0.8652920171F, 0.8655767283F, 0.8658610833F, 0.8661450820F, + 0.8664287243F, 0.8667120102F, 0.8669949397F, 0.8672775127F, + 0.8675597293F, 0.8678415894F, 0.8681230929F, 0.8684042398F, + 0.8686850302F, 0.8689654640F, 0.8692455412F, 0.8695252617F, + 0.8698046255F, 0.8700836327F, 0.8703622831F, 0.8706405768F, + 0.8709185138F, 0.8711960940F, 0.8714733174F, 0.8717501840F, + 0.8720266939F, 0.8723028469F, 0.8725786430F, 0.8728540824F, + 0.8731291648F, 0.8734038905F, 0.8736782592F, 0.8739522711F, + 0.8742259261F, 0.8744992242F, 0.8747721653F, 0.8750447496F, + 0.8753169770F, 0.8755888475F, 0.8758603611F, 0.8761315177F, + 0.8764023175F, 0.8766727603F, 0.8769428462F, 0.8772125752F, + 0.8774819474F, 0.8777509626F, 0.8780196209F, 0.8782879224F, + 0.8785558669F, 0.8788234546F, 0.8790906854F, 0.8793575594F, + 0.8796240765F, 0.8798902368F, 0.8801560403F, 0.8804214870F, + 0.8806865768F, 0.8809513099F, 0.8812156863F, 0.8814797059F, + 0.8817433687F, 0.8820066749F, 0.8822696243F, 0.8825322171F, + 0.8827944532F, 0.8830563327F, 0.8833178556F, 0.8835790219F, + 0.8838398316F, 0.8841002848F, 0.8843603815F, 0.8846201217F, + 0.8848795054F, 0.8851385327F, 0.8853972036F, 0.8856555182F, + 0.8859134764F, 0.8861710783F, 0.8864283239F, 0.8866852133F, + 0.8869417464F, 0.8871979234F, 0.8874537443F, 0.8877092090F, + 0.8879643177F, 0.8882190704F, 0.8884734671F, 0.8887275078F, + 0.8889811927F, 0.8892345216F, 0.8894874948F, 0.8897401122F, + 0.8899923738F, 0.8902442798F, 0.8904958301F, 0.8907470248F, + 0.8909978640F, 0.8912483477F, 0.8914984759F, 0.8917482487F, + 0.8919976662F, 0.8922467284F, 0.8924954353F, 0.8927437871F, + 0.8929917837F, 0.8932394252F, 0.8934867118F, 0.8937336433F, + 0.8939802199F, 0.8942264417F, 0.8944723087F, 0.8947178210F, + 0.8949629785F, 0.8952077815F, 0.8954522299F, 0.8956963239F, + 0.8959400634F, 0.8961834486F, 0.8964264795F, 0.8966691561F, + 0.8969114786F, 0.8971534470F, 0.8973950614F, 0.8976363219F, + 0.8978772284F, 0.8981177812F, 0.8983579802F, 0.8985978256F, + 0.8988373174F, 0.8990764556F, 0.8993152405F, 0.8995536720F, + 0.8997917502F, 0.9000294751F, 0.9002668470F, 0.9005038658F, + 0.9007405317F, 0.9009768446F, 0.9012128048F, 0.9014484123F, + 0.9016836671F, 0.9019185693F, 0.9021531191F, 0.9023873165F, + 0.9026211616F, 0.9028546546F, 0.9030877954F, 0.9033205841F, + 0.9035530210F, 0.9037851059F, 0.9040168392F, 0.9042482207F, + 0.9044792507F, 0.9047099293F, 0.9049402564F, 0.9051702323F, + 0.9053998569F, 0.9056291305F, 0.9058580531F, 0.9060866248F, + 0.9063148457F, 0.9065427159F, 0.9067702355F, 0.9069974046F, + 0.9072242233F, 0.9074506917F, 0.9076768100F, 0.9079025782F, + 0.9081279964F, 0.9083530647F, 0.9085777833F, 0.9088021523F, + 0.9090261717F, 0.9092498417F, 0.9094731623F, 0.9096961338F, + 0.9099187561F, 0.9101410295F, 0.9103629540F, 0.9105845297F, + 0.9108057568F, 0.9110266354F, 0.9112471656F, 0.9114673475F, + 0.9116871812F, 0.9119066668F, 0.9121258046F, 0.9123445945F, + 0.9125630367F, 0.9127811314F, 0.9129988786F, 0.9132162785F, + 0.9134333312F, 0.9136500368F, 0.9138663954F, 0.9140824073F, + 0.9142980724F, 0.9145133910F, 0.9147283632F, 0.9149429890F, + 0.9151572687F, 0.9153712023F, 0.9155847900F, 0.9157980319F, + 0.9160109282F, 0.9162234790F, 0.9164356844F, 0.9166475445F, + 0.9168590595F, 0.9170702296F, 0.9172810548F, 0.9174915354F, + 0.9177016714F, 0.9179114629F, 0.9181209102F, 0.9183300134F, + 0.9185387726F, 0.9187471879F, 0.9189552595F, 0.9191629876F, + 0.9193703723F, 0.9195774136F, 0.9197841119F, 0.9199904672F, + 0.9201964797F, 0.9204021495F, 0.9206074767F, 0.9208124616F, + 0.9210171043F, 0.9212214049F, 0.9214253636F, 0.9216289805F, + 0.9218322558F, 0.9220351896F, 0.9222377821F, 0.9224400335F, + 0.9226419439F, 0.9228435134F, 0.9230447423F, 0.9232456307F, + 0.9234461787F, 0.9236463865F, 0.9238462543F, 0.9240457822F, + 0.9242449704F, 0.9244438190F, 0.9246423282F, 0.9248404983F, + 0.9250383293F, 0.9252358214F, 0.9254329747F, 0.9256297896F, + 0.9258262660F, 0.9260224042F, 0.9262182044F, 0.9264136667F, + 0.9266087913F, 0.9268035783F, 0.9269980280F, 0.9271921405F, + 0.9273859160F, 0.9275793546F, 0.9277724566F, 0.9279652221F, + 0.9281576513F, 0.9283497443F, 0.9285415014F, 0.9287329227F, + 0.9289240084F, 0.9291147586F, 0.9293051737F, 0.9294952536F, + 0.9296849987F, 0.9298744091F, 0.9300634850F, 0.9302522266F, + 0.9304406340F, 0.9306287074F, 0.9308164471F, 0.9310038532F, + 0.9311909259F, 0.9313776654F, 0.9315640719F, 0.9317501455F, + 0.9319358865F, 0.9321212951F, 0.9323063713F, 0.9324911155F, + 0.9326755279F, 0.9328596085F, 0.9330433577F, 0.9332267756F, + 0.9334098623F, 0.9335926182F, 0.9337750434F, 0.9339571380F, + 0.9341389023F, 0.9343203366F, 0.9345014409F, 0.9346822155F, + 0.9348626606F, 0.9350427763F, 0.9352225630F, 0.9354020207F, + 0.9355811498F, 0.9357599503F, 0.9359384226F, 0.9361165667F, + 0.9362943830F, 0.9364718716F, 0.9366490327F, 0.9368258666F, + 0.9370023733F, 0.9371785533F, 0.9373544066F, 0.9375299335F, + 0.9377051341F, 0.9378800087F, 0.9380545576F, 0.9382287809F, + 0.9384026787F, 0.9385762515F, 0.9387494993F, 0.9389224223F, + 0.9390950209F, 0.9392672951F, 0.9394392453F, 0.9396108716F, + 0.9397821743F, 0.9399531536F, 0.9401238096F, 0.9402941427F, + 0.9404641530F, 0.9406338407F, 0.9408032061F, 0.9409722495F, + 0.9411409709F, 0.9413093707F, 0.9414774491F, 0.9416452062F, + 0.9418126424F, 0.9419797579F, 0.9421465528F, 0.9423130274F, + 0.9424791819F, 0.9426450166F, 0.9428105317F, 0.9429757274F, + 0.9431406039F, 0.9433051616F, 0.9434694005F, 0.9436333209F, + 0.9437969232F, 0.9439602074F, 0.9441231739F, 0.9442858229F, + 0.9444481545F, 0.9446101691F, 0.9447718669F, 0.9449332481F, + 0.9450943129F, 0.9452550617F, 0.9454154945F, 0.9455756118F, + 0.9457354136F, 0.9458949003F, 0.9460540721F, 0.9462129292F, + 0.9463714719F, 0.9465297003F, 0.9466876149F, 0.9468452157F, + 0.9470025031F, 0.9471594772F, 0.9473161384F, 0.9474724869F, + 0.9476285229F, 0.9477842466F, 0.9479396584F, 0.9480947585F, + 0.9482495470F, 0.9484040243F, 0.9485581906F, 0.9487120462F, + 0.9488655913F, 0.9490188262F, 0.9491717511F, 0.9493243662F, + 0.9494766718F, 0.9496286683F, 0.9497803557F, 0.9499317345F, + 0.9500828047F, 0.9502335668F, 0.9503840209F, 0.9505341673F, + 0.9506840062F, 0.9508335380F, 0.9509827629F, 0.9511316810F, + 0.9512802928F, 0.9514285984F, 0.9515765982F, 0.9517242923F, + 0.9518716810F, 0.9520187646F, 0.9521655434F, 0.9523120176F, + 0.9524581875F, 0.9526040534F, 0.9527496154F, 0.9528948739F, + 0.9530398292F, 0.9531844814F, 0.9533288310F, 0.9534728780F, + 0.9536166229F, 0.9537600659F, 0.9539032071F, 0.9540460470F, + 0.9541885858F, 0.9543308237F, 0.9544727611F, 0.9546143981F, + 0.9547557351F, 0.9548967723F, 0.9550375100F, 0.9551779485F, + 0.9553180881F, 0.9554579290F, 0.9555974714F, 0.9557367158F, + 0.9558756623F, 0.9560143112F, 0.9561526628F, 0.9562907174F, + 0.9564284752F, 0.9565659366F, 0.9567031017F, 0.9568399710F, + 0.9569765446F, 0.9571128229F, 0.9572488061F, 0.9573844944F, + 0.9575198883F, 0.9576549879F, 0.9577897936F, 0.9579243056F, + 0.9580585242F, 0.9581924497F, 0.9583260824F, 0.9584594226F, + 0.9585924705F, 0.9587252264F, 0.9588576906F, 0.9589898634F, + 0.9591217452F, 0.9592533360F, 0.9593846364F, 0.9595156465F, + 0.9596463666F, 0.9597767971F, 0.9599069382F, 0.9600367901F, + 0.9601663533F, 0.9602956279F, 0.9604246143F, 0.9605533128F, + 0.9606817236F, 0.9608098471F, 0.9609376835F, 0.9610652332F, + 0.9611924963F, 0.9613194733F, 0.9614461644F, 0.9615725699F, + 0.9616986901F, 0.9618245253F, 0.9619500757F, 0.9620753418F, + 0.9622003238F, 0.9623250219F, 0.9624494365F, 0.9625735679F, + 0.9626974163F, 0.9628209821F, 0.9629442656F, 0.9630672671F, + 0.9631899868F, 0.9633124251F, 0.9634345822F, 0.9635564585F, + 0.9636780543F, 0.9637993699F, 0.9639204056F, 0.9640411616F, + 0.9641616383F, 0.9642818359F, 0.9644017549F, 0.9645213955F, + 0.9646407579F, 0.9647598426F, 0.9648786497F, 0.9649971797F, + 0.9651154328F, 0.9652334092F, 0.9653511095F, 0.9654685337F, + 0.9655856823F, 0.9657025556F, 0.9658191538F, 0.9659354773F, + 0.9660515263F, 0.9661673013F, 0.9662828024F, 0.9663980300F, + 0.9665129845F, 0.9666276660F, 0.9667420750F, 0.9668562118F, + 0.9669700766F, 0.9670836698F, 0.9671969917F, 0.9673100425F, + 0.9674228227F, 0.9675353325F, 0.9676475722F, 0.9677595422F, + 0.9678712428F, 0.9679826742F, 0.9680938368F, 0.9682047309F, + 0.9683153569F, 0.9684257150F, 0.9685358056F, 0.9686456289F, + 0.9687551853F, 0.9688644752F, 0.9689734987F, 0.9690822564F, + 0.9691907483F, 0.9692989750F, 0.9694069367F, 0.9695146337F, + 0.9696220663F, 0.9697292349F, 0.9698361398F, 0.9699427813F, + 0.9700491597F, 0.9701552754F, 0.9702611286F, 0.9703667197F, + 0.9704720490F, 0.9705771169F, 0.9706819236F, 0.9707864695F, + 0.9708907549F, 0.9709947802F, 0.9710985456F, 0.9712020514F, + 0.9713052981F, 0.9714082859F, 0.9715110151F, 0.9716134862F, + 0.9717156993F, 0.9718176549F, 0.9719193532F, 0.9720207946F, + 0.9721219794F, 0.9722229080F, 0.9723235806F, 0.9724239976F, + 0.9725241593F, 0.9726240661F, 0.9727237183F, 0.9728231161F, + 0.9729222601F, 0.9730211503F, 0.9731197873F, 0.9732181713F, + 0.9733163027F, 0.9734141817F, 0.9735118088F, 0.9736091842F, + 0.9737063083F, 0.9738031814F, 0.9738998039F, 0.9739961760F, + 0.9740922981F, 0.9741881706F, 0.9742837938F, 0.9743791680F, + 0.9744742935F, 0.9745691707F, 0.9746637999F, 0.9747581814F, + 0.9748523157F, 0.9749462029F, 0.9750398435F, 0.9751332378F, + 0.9752263861F, 0.9753192887F, 0.9754119461F, 0.9755043585F, + 0.9755965262F, 0.9756884496F, 0.9757801291F, 0.9758715650F, + 0.9759627575F, 0.9760537071F, 0.9761444141F, 0.9762348789F, + 0.9763251016F, 0.9764150828F, 0.9765048228F, 0.9765943218F, + 0.9766835802F, 0.9767725984F, 0.9768613767F, 0.9769499154F, + 0.9770382149F, 0.9771262755F, 0.9772140976F, 0.9773016815F, + 0.9773890275F, 0.9774761360F, 0.9775630073F, 0.9776496418F, + 0.9777360398F, 0.9778222016F, 0.9779081277F, 0.9779938182F, + 0.9780792736F, 0.9781644943F, 0.9782494805F, 0.9783342326F, + 0.9784187509F, 0.9785030359F, 0.9785870877F, 0.9786709069F, + 0.9787544936F, 0.9788378484F, 0.9789209714F, 0.9790038631F, + 0.9790865238F, 0.9791689538F, 0.9792511535F, 0.9793331232F, + 0.9794148633F, 0.9794963742F, 0.9795776561F, 0.9796587094F, + 0.9797395345F, 0.9798201316F, 0.9799005013F, 0.9799806437F, + 0.9800605593F, 0.9801402483F, 0.9802197112F, 0.9802989483F, + 0.9803779600F, 0.9804567465F, 0.9805353082F, 0.9806136455F, + 0.9806917587F, 0.9807696482F, 0.9808473143F, 0.9809247574F, + 0.9810019778F, 0.9810789759F, 0.9811557519F, 0.9812323064F, + 0.9813086395F, 0.9813847517F, 0.9814606433F, 0.9815363147F, + 0.9816117662F, 0.9816869981F, 0.9817620108F, 0.9818368047F, + 0.9819113801F, 0.9819857374F, 0.9820598769F, 0.9821337989F, + 0.9822075038F, 0.9822809920F, 0.9823542638F, 0.9824273195F, + 0.9825001596F, 0.9825727843F, 0.9826451940F, 0.9827173891F, + 0.9827893700F, 0.9828611368F, 0.9829326901F, 0.9830040302F, + 0.9830751574F, 0.9831460720F, 0.9832167745F, 0.9832872652F, + 0.9833575444F, 0.9834276124F, 0.9834974697F, 0.9835671166F, + 0.9836365535F, 0.9837057806F, 0.9837747983F, 0.9838436071F, + 0.9839122072F, 0.9839805990F, 0.9840487829F, 0.9841167591F, + 0.9841845282F, 0.9842520903F, 0.9843194459F, 0.9843865953F, + 0.9844535389F, 0.9845202771F, 0.9845868101F, 0.9846531383F, + 0.9847192622F, 0.9847851820F, 0.9848508980F, 0.9849164108F, + 0.9849817205F, 0.9850468276F, 0.9851117324F, 0.9851764352F, + 0.9852409365F, 0.9853052366F, 0.9853693358F, 0.9854332344F, + 0.9854969330F, 0.9855604317F, 0.9856237309F, 0.9856868310F, + 0.9857497325F, 0.9858124355F, 0.9858749404F, 0.9859372477F, + 0.9859993577F, 0.9860612707F, 0.9861229871F, 0.9861845072F, + 0.9862458315F, 0.9863069601F, 0.9863678936F, 0.9864286322F, + 0.9864891764F, 0.9865495264F, 0.9866096826F, 0.9866696454F, + 0.9867294152F, 0.9867889922F, 0.9868483769F, 0.9869075695F, + 0.9869665706F, 0.9870253803F, 0.9870839991F, 0.9871424273F, + 0.9872006653F, 0.9872587135F, 0.9873165721F, 0.9873742415F, + 0.9874317222F, 0.9874890144F, 0.9875461185F, 0.9876030348F, + 0.9876597638F, 0.9877163057F, 0.9877726610F, 0.9878288300F, + 0.9878848130F, 0.9879406104F, 0.9879962225F, 0.9880516497F, + 0.9881068924F, 0.9881619509F, 0.9882168256F, 0.9882715168F, + 0.9883260249F, 0.9883803502F, 0.9884344931F, 0.9884884539F, + 0.9885422331F, 0.9885958309F, 0.9886492477F, 0.9887024838F, + 0.9887555397F, 0.9888084157F, 0.9888611120F, 0.9889136292F, + 0.9889659675F, 0.9890181273F, 0.9890701089F, 0.9891219128F, + 0.9891735392F, 0.9892249885F, 0.9892762610F, 0.9893273572F, + 0.9893782774F, 0.9894290219F, 0.9894795911F, 0.9895299853F, + 0.9895802049F, 0.9896302502F, 0.9896801217F, 0.9897298196F, + 0.9897793443F, 0.9898286961F, 0.9898778755F, 0.9899268828F, + 0.9899757183F, 0.9900243823F, 0.9900728753F, 0.9901211976F, + 0.9901693495F, 0.9902173314F, 0.9902651436F, 0.9903127865F, + 0.9903602605F, 0.9904075659F, 0.9904547031F, 0.9905016723F, + 0.9905484740F, 0.9905951086F, 0.9906415763F, 0.9906878775F, + 0.9907340126F, 0.9907799819F, 0.9908257858F, 0.9908714247F, + 0.9909168988F, 0.9909622086F, 0.9910073543F, 0.9910523364F, + 0.9910971552F, 0.9911418110F, 0.9911863042F, 0.9912306351F, + 0.9912748042F, 0.9913188117F, 0.9913626580F, 0.9914063435F, + 0.9914498684F, 0.9914932333F, 0.9915364383F, 0.9915794839F, + 0.9916223703F, 0.9916650981F, 0.9917076674F, 0.9917500787F, + 0.9917923323F, 0.9918344286F, 0.9918763679F, 0.9919181505F, + 0.9919597769F, 0.9920012473F, 0.9920425621F, 0.9920837217F, + 0.9921247263F, 0.9921655765F, 0.9922062724F, 0.9922468145F, + 0.9922872030F, 0.9923274385F, 0.9923675211F, 0.9924074513F, + 0.9924472294F, 0.9924868557F, 0.9925263306F, 0.9925656544F, + 0.9926048275F, 0.9926438503F, 0.9926827230F, 0.9927214461F, + 0.9927600199F, 0.9927984446F, 0.9928367208F, 0.9928748486F, + 0.9929128285F, 0.9929506608F, 0.9929883459F, 0.9930258841F, + 0.9930632757F, 0.9931005211F, 0.9931376207F, 0.9931745747F, + 0.9932113836F, 0.9932480476F, 0.9932845671F, 0.9933209425F, + 0.9933571742F, 0.9933932623F, 0.9934292074F, 0.9934650097F, + 0.9935006696F, 0.9935361874F, 0.9935715635F, 0.9936067982F, + 0.9936418919F, 0.9936768448F, 0.9937116574F, 0.9937463300F, + 0.9937808629F, 0.9938152565F, 0.9938495111F, 0.9938836271F, + 0.9939176047F, 0.9939514444F, 0.9939851465F, 0.9940187112F, + 0.9940521391F, 0.9940854303F, 0.9941185853F, 0.9941516044F, + 0.9941844879F, 0.9942172361F, 0.9942498495F, 0.9942823283F, + 0.9943146729F, 0.9943468836F, 0.9943789608F, 0.9944109047F, + 0.9944427158F, 0.9944743944F, 0.9945059408F, 0.9945373553F, + 0.9945686384F, 0.9945997902F, 0.9946308112F, 0.9946617017F, + 0.9946924621F, 0.9947230926F, 0.9947535937F, 0.9947839656F, + 0.9948142086F, 0.9948443232F, 0.9948743097F, 0.9949041683F, + 0.9949338995F, 0.9949635035F, 0.9949929807F, 0.9950223315F, + 0.9950515561F, 0.9950806549F, 0.9951096282F, 0.9951384764F, + 0.9951671998F, 0.9951957987F, 0.9952242735F, 0.9952526245F, + 0.9952808520F, 0.9953089564F, 0.9953369380F, 0.9953647971F, + 0.9953925340F, 0.9954201491F, 0.9954476428F, 0.9954750153F, + 0.9955022670F, 0.9955293981F, 0.9955564092F, 0.9955833003F, + 0.9956100720F, 0.9956367245F, 0.9956632582F, 0.9956896733F, + 0.9957159703F, 0.9957421494F, 0.9957682110F, 0.9957941553F, + 0.9958199828F, 0.9958456937F, 0.9958712884F, 0.9958967672F, + 0.9959221305F, 0.9959473784F, 0.9959725115F, 0.9959975300F, + 0.9960224342F, 0.9960472244F, 0.9960719011F, 0.9960964644F, + 0.9961209148F, 0.9961452525F, 0.9961694779F, 0.9961935913F, + 0.9962175930F, 0.9962414834F, 0.9962652627F, 0.9962889313F, + 0.9963124895F, 0.9963359377F, 0.9963592761F, 0.9963825051F, + 0.9964056250F, 0.9964286361F, 0.9964515387F, 0.9964743332F, + 0.9964970198F, 0.9965195990F, 0.9965420709F, 0.9965644360F, + 0.9965866946F, 0.9966088469F, 0.9966308932F, 0.9966528340F, + 0.9966746695F, 0.9966964001F, 0.9967180260F, 0.9967395475F, + 0.9967609651F, 0.9967822789F, 0.9968034894F, 0.9968245968F, + 0.9968456014F, 0.9968665036F, 0.9968873037F, 0.9969080019F, + 0.9969285987F, 0.9969490942F, 0.9969694889F, 0.9969897830F, + 0.9970099769F, 0.9970300708F, 0.9970500651F, 0.9970699601F, + 0.9970897561F, 0.9971094533F, 0.9971290522F, 0.9971485531F, + 0.9971679561F, 0.9971872617F, 0.9972064702F, 0.9972255818F, + 0.9972445968F, 0.9972635157F, 0.9972823386F, 0.9973010659F, + 0.9973196980F, 0.9973382350F, 0.9973566773F, 0.9973750253F, + 0.9973932791F, 0.9974114392F, 0.9974295059F, 0.9974474793F, + 0.9974653599F, 0.9974831480F, 0.9975008438F, 0.9975184476F, + 0.9975359598F, 0.9975533806F, 0.9975707104F, 0.9975879495F, + 0.9976050981F, 0.9976221566F, 0.9976391252F, 0.9976560043F, + 0.9976727941F, 0.9976894950F, 0.9977061073F, 0.9977226312F, + 0.9977390671F, 0.9977554152F, 0.9977716759F, 0.9977878495F, + 0.9978039361F, 0.9978199363F, 0.9978358501F, 0.9978516780F, + 0.9978674202F, 0.9978830771F, 0.9978986488F, 0.9979141358F, + 0.9979295383F, 0.9979448566F, 0.9979600909F, 0.9979752417F, + 0.9979903091F, 0.9980052936F, 0.9980201952F, 0.9980350145F, + 0.9980497515F, 0.9980644067F, 0.9980789804F, 0.9980934727F, + 0.9981078841F, 0.9981222147F, 0.9981364649F, 0.9981506350F, + 0.9981647253F, 0.9981787360F, 0.9981926674F, 0.9982065199F, + 0.9982202936F, 0.9982339890F, 0.9982476062F, 0.9982611456F, + 0.9982746074F, 0.9982879920F, 0.9983012996F, 0.9983145304F, + 0.9983276849F, 0.9983407632F, 0.9983537657F, 0.9983666926F, + 0.9983795442F, 0.9983923208F, 0.9984050226F, 0.9984176501F, + 0.9984302033F, 0.9984426827F, 0.9984550884F, 0.9984674208F, + 0.9984796802F, 0.9984918667F, 0.9985039808F, 0.9985160227F, + 0.9985279926F, 0.9985398909F, 0.9985517177F, 0.9985634734F, + 0.9985751583F, 0.9985867727F, 0.9985983167F, 0.9986097907F, + 0.9986211949F, 0.9986325297F, 0.9986437953F, 0.9986549919F, + 0.9986661199F, 0.9986771795F, 0.9986881710F, 0.9986990946F, + 0.9987099507F, 0.9987207394F, 0.9987314611F, 0.9987421161F, + 0.9987527045F, 0.9987632267F, 0.9987736829F, 0.9987840734F, + 0.9987943985F, 0.9988046584F, 0.9988148534F, 0.9988249838F, + 0.9988350498F, 0.9988450516F, 0.9988549897F, 0.9988648641F, + 0.9988746753F, 0.9988844233F, 0.9988941086F, 0.9989037313F, + 0.9989132918F, 0.9989227902F, 0.9989322269F, 0.9989416021F, + 0.9989509160F, 0.9989601690F, 0.9989693613F, 0.9989784931F, + 0.9989875647F, 0.9989965763F, 0.9990055283F, 0.9990144208F, + 0.9990232541F, 0.9990320286F, 0.9990407443F, 0.9990494016F, + 0.9990580008F, 0.9990665421F, 0.9990750257F, 0.9990834519F, + 0.9990918209F, 0.9991001331F, 0.9991083886F, 0.9991165877F, + 0.9991247307F, 0.9991328177F, 0.9991408491F, 0.9991488251F, + 0.9991567460F, 0.9991646119F, 0.9991724232F, 0.9991801801F, + 0.9991878828F, 0.9991955316F, 0.9992031267F, 0.9992106684F, + 0.9992181569F, 0.9992255925F, 0.9992329753F, 0.9992403057F, + 0.9992475839F, 0.9992548101F, 0.9992619846F, 0.9992691076F, + 0.9992761793F, 0.9992832001F, 0.9992901701F, 0.9992970895F, + 0.9993039587F, 0.9993107777F, 0.9993175470F, 0.9993242667F, + 0.9993309371F, 0.9993375583F, 0.9993441307F, 0.9993506545F, + 0.9993571298F, 0.9993635570F, 0.9993699362F, 0.9993762678F, + 0.9993825519F, 0.9993887887F, 0.9993949785F, 0.9994011216F, + 0.9994072181F, 0.9994132683F, 0.9994192725F, 0.9994252307F, + 0.9994311434F, 0.9994370107F, 0.9994428327F, 0.9994486099F, + 0.9994543423F, 0.9994600303F, 0.9994656739F, 0.9994712736F, + 0.9994768294F, 0.9994823417F, 0.9994878105F, 0.9994932363F, + 0.9994986191F, 0.9995039592F, 0.9995092568F, 0.9995145122F, + 0.9995197256F, 0.9995248971F, 0.9995300270F, 0.9995351156F, + 0.9995401630F, 0.9995451695F, 0.9995501352F, 0.9995550604F, + 0.9995599454F, 0.9995647903F, 0.9995695953F, 0.9995743607F, + 0.9995790866F, 0.9995837734F, 0.9995884211F, 0.9995930300F, + 0.9995976004F, 0.9996021324F, 0.9996066263F, 0.9996110822F, + 0.9996155004F, 0.9996198810F, 0.9996242244F, 0.9996285306F, + 0.9996327999F, 0.9996370326F, 0.9996412287F, 0.9996453886F, + 0.9996495125F, 0.9996536004F, 0.9996576527F, 0.9996616696F, + 0.9996656512F, 0.9996695977F, 0.9996735094F, 0.9996773865F, + 0.9996812291F, 0.9996850374F, 0.9996888118F, 0.9996925523F, + 0.9996962591F, 0.9996999325F, 0.9997035727F, 0.9997071798F, + 0.9997107541F, 0.9997142957F, 0.9997178049F, 0.9997212818F, + 0.9997247266F, 0.9997281396F, 0.9997315209F, 0.9997348708F, + 0.9997381893F, 0.9997414767F, 0.9997447333F, 0.9997479591F, + 0.9997511544F, 0.9997543194F, 0.9997574542F, 0.9997605591F, + 0.9997636342F, 0.9997666797F, 0.9997696958F, 0.9997726828F, + 0.9997756407F, 0.9997785698F, 0.9997814703F, 0.9997843423F, + 0.9997871860F, 0.9997900016F, 0.9997927894F, 0.9997955494F, + 0.9997982818F, 0.9998009869F, 0.9998036648F, 0.9998063157F, + 0.9998089398F, 0.9998115373F, 0.9998141082F, 0.9998166529F, + 0.9998191715F, 0.9998216642F, 0.9998241311F, 0.9998265724F, + 0.9998289884F, 0.9998313790F, 0.9998337447F, 0.9998360854F, + 0.9998384015F, 0.9998406930F, 0.9998429602F, 0.9998452031F, + 0.9998474221F, 0.9998496171F, 0.9998517885F, 0.9998539364F, + 0.9998560610F, 0.9998581624F, 0.9998602407F, 0.9998622962F, + 0.9998643291F, 0.9998663394F, 0.9998683274F, 0.9998702932F, + 0.9998722370F, 0.9998741589F, 0.9998760591F, 0.9998779378F, + 0.9998797952F, 0.9998816313F, 0.9998834464F, 0.9998852406F, + 0.9998870141F, 0.9998887670F, 0.9998904995F, 0.9998922117F, + 0.9998939039F, 0.9998955761F, 0.9998972285F, 0.9998988613F, + 0.9999004746F, 0.9999020686F, 0.9999036434F, 0.9999051992F, + 0.9999067362F, 0.9999082544F, 0.9999097541F, 0.9999112354F, + 0.9999126984F, 0.9999141433F, 0.9999155703F, 0.9999169794F, + 0.9999183709F, 0.9999197449F, 0.9999211014F, 0.9999224408F, + 0.9999237631F, 0.9999250684F, 0.9999263570F, 0.9999276289F, + 0.9999288843F, 0.9999301233F, 0.9999313461F, 0.9999325529F, + 0.9999337437F, 0.9999349187F, 0.9999360780F, 0.9999372218F, + 0.9999383503F, 0.9999394635F, 0.9999405616F, 0.9999416447F, + 0.9999427129F, 0.9999437665F, 0.9999448055F, 0.9999458301F, + 0.9999468404F, 0.9999478365F, 0.9999488185F, 0.9999497867F, + 0.9999507411F, 0.9999516819F, 0.9999526091F, 0.9999535230F, + 0.9999544236F, 0.9999553111F, 0.9999561856F, 0.9999570472F, + 0.9999578960F, 0.9999587323F, 0.9999595560F, 0.9999603674F, + 0.9999611666F, 0.9999619536F, 0.9999627286F, 0.9999634917F, + 0.9999642431F, 0.9999649828F, 0.9999657110F, 0.9999664278F, + 0.9999671334F, 0.9999678278F, 0.9999685111F, 0.9999691835F, + 0.9999698451F, 0.9999704960F, 0.9999711364F, 0.9999717662F, + 0.9999723858F, 0.9999729950F, 0.9999735942F, 0.9999741834F, + 0.9999747626F, 0.9999753321F, 0.9999758919F, 0.9999764421F, + 0.9999769828F, 0.9999775143F, 0.9999780364F, 0.9999785495F, + 0.9999790535F, 0.9999795485F, 0.9999800348F, 0.9999805124F, + 0.9999809813F, 0.9999814417F, 0.9999818938F, 0.9999823375F, + 0.9999827731F, 0.9999832005F, 0.9999836200F, 0.9999840316F, + 0.9999844353F, 0.9999848314F, 0.9999852199F, 0.9999856008F, + 0.9999859744F, 0.9999863407F, 0.9999866997F, 0.9999870516F, + 0.9999873965F, 0.9999877345F, 0.9999880656F, 0.9999883900F, + 0.9999887078F, 0.9999890190F, 0.9999893237F, 0.9999896220F, + 0.9999899140F, 0.9999901999F, 0.9999904796F, 0.9999907533F, + 0.9999910211F, 0.9999912830F, 0.9999915391F, 0.9999917896F, + 0.9999920345F, 0.9999922738F, 0.9999925077F, 0.9999927363F, + 0.9999929596F, 0.9999931777F, 0.9999933907F, 0.9999935987F, + 0.9999938018F, 0.9999940000F, 0.9999941934F, 0.9999943820F, + 0.9999945661F, 0.9999947456F, 0.9999949206F, 0.9999950912F, + 0.9999952575F, 0.9999954195F, 0.9999955773F, 0.9999957311F, + 0.9999958807F, 0.9999960265F, 0.9999961683F, 0.9999963063F, + 0.9999964405F, 0.9999965710F, 0.9999966979F, 0.9999968213F, + 0.9999969412F, 0.9999970576F, 0.9999971707F, 0.9999972805F, + 0.9999973871F, 0.9999974905F, 0.9999975909F, 0.9999976881F, + 0.9999977824F, 0.9999978738F, 0.9999979624F, 0.9999980481F, + 0.9999981311F, 0.9999982115F, 0.9999982892F, 0.9999983644F, + 0.9999984370F, 0.9999985072F, 0.9999985750F, 0.9999986405F, + 0.9999987037F, 0.9999987647F, 0.9999988235F, 0.9999988802F, + 0.9999989348F, 0.9999989873F, 0.9999990379F, 0.9999990866F, + 0.9999991334F, 0.9999991784F, 0.9999992217F, 0.9999992632F, + 0.9999993030F, 0.9999993411F, 0.9999993777F, 0.9999994128F, + 0.9999994463F, 0.9999994784F, 0.9999995091F, 0.9999995384F, + 0.9999995663F, 0.9999995930F, 0.9999996184F, 0.9999996426F, + 0.9999996657F, 0.9999996876F, 0.9999997084F, 0.9999997282F, + 0.9999997469F, 0.9999997647F, 0.9999997815F, 0.9999997973F, + 0.9999998123F, 0.9999998265F, 0.9999998398F, 0.9999998524F, + 0.9999998642F, 0.9999998753F, 0.9999998857F, 0.9999998954F, + 0.9999999045F, 0.9999999130F, 0.9999999209F, 0.9999999282F, + 0.9999999351F, 0.9999999414F, 0.9999999472F, 0.9999999526F, + 0.9999999576F, 0.9999999622F, 0.9999999664F, 0.9999999702F, + 0.9999999737F, 0.9999999769F, 0.9999999798F, 0.9999999824F, + 0.9999999847F, 0.9999999868F, 0.9999999887F, 0.9999999904F, + 0.9999999919F, 0.9999999932F, 0.9999999943F, 0.9999999953F, + 0.9999999961F, 0.9999999969F, 0.9999999975F, 0.9999999980F, + 0.9999999985F, 0.9999999988F, 0.9999999991F, 0.9999999993F, + 0.9999999995F, 0.9999999997F, 0.9999999998F, 0.9999999999F, + 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, + 1.0000000000F, 1.0000000000F, 1.0000000000F, 1.0000000000F, +}; + +static const float *const vwin[8] = { + vwin64, + vwin128, + vwin256, + vwin512, + vwin1024, + vwin2048, + vwin4096, + vwin8192, +}; + +const float *_vorbis_window_get(int n){ + return vwin[n]; +} + +void _vorbis_apply_window(float *d,int *winno,long *blocksizes, + int lW,int W,int nW){ + lW=(W?lW:0); + nW=(W?nW:0); + + { + const float *windowLW=vwin[winno[lW]]; + const float *windowNW=vwin[winno[nW]]; + + long n=blocksizes[W]; + long ln=blocksizes[lW]; + long rn=blocksizes[nW]; + + long leftbegin=n/4-ln/4; + long leftend=leftbegin+ln/2; + + long rightbegin=n/2+n/4-rn/4; + long rightend=rightbegin+rn/2; + + int i,p; + + for(i=0;i -Source: http://www.xiph.org/pub/ogg/vorbis/download/%{name}-%{version}.tar.gz -Prefix: %{_prefix} -BuildRoot: %{_tmppath}/%{name}-root +Source: http://downloads.xiph.org/releases/vorbis/%{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root # We're forced to use an epoch since both Red Hat and Ximian use it in their # rc packages @@ -49,24 +48,20 @@ CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} --enable-static make %install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install %clean -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT -%post -/sbin/ldconfig +%post -p /sbin/ldconfig -%postun -/sbin/ldconfig +%postun -p /sbin/ldconfig %files %defattr(-,root,root) -%doc COPYING -%doc AUTHORS -%doc README +%doc AUTHORS COPYING README %{_libdir}/libvorbis.so.* %{_libdir}/libvorbisfile.so.* %{_libdir}/libvorbisenc.so.* @@ -78,6 +73,7 @@ make DESTDIR=$RPM_BUILD_ROOT install %doc doc/vorbisfile %doc doc/vorbisenc %{_datadir}/aclocal/vorbis.m4 +%dir %{_includedir}/vorbis %{_includedir}/vorbis/codec.h %{_includedir}/vorbis/vorbisfile.h %{_includedir}/vorbis/vorbisenc.h @@ -95,6 +91,17 @@ make DESTDIR=$RPM_BUILD_ROOT install %{_libdir}/pkgconfig/vorbisenc.pc %changelog +* Sat May 3 2008 Ralph Giles +- updated source location + +* Thu Jun 10 2004 Thomas Vander Stichele +- autogenerate from configure +- fix download location +- remove Prefix +- own include dir +- move ldconfig runs to -p scripts +- change Release tag to include xiph + * Tue Oct 07 2003 Warren Dukes - update for 1.0.1 release diff --git a/Dependencies/libvorbis/libvorbis.spec.in b/Dependencies/libvorbis/libvorbis.spec.in new file mode 100644 index 0000000..723c070 --- /dev/null +++ b/Dependencies/libvorbis/libvorbis.spec.in @@ -0,0 +1,121 @@ +Name: libvorbis +Version: @VERSION@ +Release: 0.xiph.1 +Summary: The Vorbis General Audio Compression Codec. + +Group: System Environment/Libraries +License: BSD +URL: http://www.xiph.org/ +Vendor: Xiph.org Foundation +Source: http://downloads.xiph.org/releases/vorbis/%{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +# We're forced to use an epoch since both Red Hat and Ximian use it in their +# rc packages +Epoch: 2 +# Dirty trick to tell rpm that this package actually provides what the +# last rc and beta was offering +Provides: %{name} = %{epoch}:1.0rc3-%{release} +Provides: %{name} = %{epoch}:1.0beta4-%{release} + +Requires: libogg >= 1.1 +BuildRequires: libogg-devel >= 1.1 + +%description +Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, +general-purpose compressed audio format for audio and music at fixed +and variable bitrates from 16 to 128 kbps/channel. + +%package devel +Summary: Vorbis Library Development +Group: Development/Libraries +Requires: libogg-devel >= 1.1 +Requires: libvorbis = %{version} +# Dirty trick to tell rpm that this package actually provides what the +# last rc and beta was offering +Provides: %{name}-devel = %{epoch}:1.0rc3-%{release} +Provides: %{name}-devel = %{epoch}:1.0beta4-%{release} + +%description devel +The libvorbis-devel package contains the header files, static libraries +and documentation needed to develop applications with libvorbis. + +%prep +%setup -q -n %{name}-%{version} + +%build +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} --enable-static +make + +%install +rm -rf $RPM_BUILD_ROOT + +make DESTDIR=$RPM_BUILD_ROOT install + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%doc AUTHORS COPYING README +%{_libdir}/libvorbis.so.* +%{_libdir}/libvorbisfile.so.* +%{_libdir}/libvorbisenc.so.* + +%files devel +%doc doc/*.html +%doc doc/*.png +%doc doc/*.txt +%doc doc/vorbisfile +%doc doc/vorbisenc +%{_datadir}/aclocal/vorbis.m4 +%dir %{_includedir}/vorbis +%{_includedir}/vorbis/codec.h +%{_includedir}/vorbis/vorbisfile.h +%{_includedir}/vorbis/vorbisenc.h +%{_libdir}/libvorbis.a +%{_libdir}/libvorbis.la +%{_libdir}/libvorbis.so +%{_libdir}/libvorbisfile.a +%{_libdir}/libvorbisfile.la +%{_libdir}/libvorbisfile.so +%{_libdir}/libvorbisenc.a +%{_libdir}/libvorbisenc.la +%{_libdir}/libvorbisenc.so +%{_libdir}/pkgconfig/vorbis.pc +%{_libdir}/pkgconfig/vorbisfile.pc +%{_libdir}/pkgconfig/vorbisenc.pc + +%changelog +* Sat May 3 2008 Ralph Giles +- updated source location + +* Thu Jun 10 2004 Thomas Vander Stichele +- autogenerate from configure +- fix download location +- remove Prefix +- own include dir +- move ldconfig runs to -p scripts +- change Release tag to include xiph + +* Tue Oct 07 2003 Warren Dukes +- update for 1.0.1 release + +* Sun Jul 14 2002 Thomas Vander Stichele +- Added BuildRequires: +- updated for 1.0 release + +* Sat May 25 2002 Michael Smith +- Fixed requires, copyright string. +* Sun Dec 31 2001 Jack Moffitt +- Updated for rc3 release. + +* Sun Oct 07 2001 Jack Moffitt +- Updated for configurable prefixes + +* Sat Oct 21 2000 Jack Moffitt +- initial spec file created diff --git a/Dependencies/libvorbis/ltmain.sh b/Dependencies/libvorbis/ltmain.sh new file mode 100755 index 0000000..3506ead --- /dev/null +++ b/Dependencies/libvorbis/ltmain.sh @@ -0,0 +1,8413 @@ +# Generated from ltmain.m4sh. + +# ltmain.sh (GNU libtool) 2.2.6 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print informational messages (default) +# --version print version information +# -h, --help print short or long help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.2.6 Debian-2.2.6a-4 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION="2.2.6 Debian-2.2.6a-4" +TIMESTAMP="" +package_revision=1.3012 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# NLS nuisances: We save the old values to restore during execute mode. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done + +$lt_unset CDPATH + + + + + +: ${CP="cp -f"} +: ${ECHO="echo"} +: ${EGREP="/bin/grep -E"} +: ${FGREP="/bin/grep -F"} +: ${GREP="/bin/grep"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SED="/bin/sed"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +# Generated shell functions inserted here. + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +# In the unlikely event $progname began with a '-', it would play havoc with +# func_echo (imagine progname=-n), so we prepend ./ in that case: +func_dirname_and_basename "$progpath" +progname=$func_basename_result +case $progname in + -*) progname=./$progname ;; +esac + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=: + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname${mode+: }$mode: $*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + done + my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "X$my_tmpdir" | $Xsed +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "X$1" | $Xsed \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + + + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $SED -n '/^# Usage:/,/# -h/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + $ECHO + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help +# Echo long help message to standard output and exit. +func_help () +{ + $SED -n '/^# Usage:/,/# Report bugs to/ { + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p + }' < "$progpath" + exit $? +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + func_error "missing argument for $1" + exit_cmd=exit +} + +exit_cmd=: + + + + + +# Check that we have a working $ECHO. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell, and then maybe $ECHO will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# Parse options once, thoroughly. This comes as soon as possible in +# the script to make things like `libtool --version' happen quickly. +{ + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Parse non-mode specific arguments: + while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --config) func_config ;; + + --debug) preserve_args="$preserve_args $opt" + func_echo "enabling shell trace mode" + opt_debug='set -x' + $opt_debug + ;; + + -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break + execute_dlfiles="$execute_dlfiles $1" + shift + ;; + + --dry-run | -n) opt_dry_run=: ;; + --features) func_features ;; + --finish) mode="finish" ;; + + --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break + case $1 in + # Valid mode arguments: + clean) ;; + compile) ;; + execute) ;; + finish) ;; + install) ;; + link) ;; + relink) ;; + uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; + esac + + mode="$1" + shift + ;; + + --preserve-dup-deps) + opt_duplicate_deps=: ;; + + --quiet|--silent) preserve_args="$preserve_args $opt" + opt_silent=: + ;; + + --verbose| -v) preserve_args="$preserve_args $opt" + opt_silent=false + ;; + + --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break + preserve_args="$preserve_args $opt $1" + func_enable_tag "$1" # tagname is set here + shift + ;; + + # Separate optargs to long options: + -dlopen=*|--mode=*|--tag=*) + func_opt_split "$opt" + set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + shift + ;; + + -\?|-h) func_usage ;; + --help) opt_help=: ;; + --version) func_version ;; + + -*) func_fatal_help "unrecognized option \`$opt'" ;; + + *) nonopt="$opt" + break + ;; + esac + done + + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + ;; + esac + + # Having warned about all mis-specified options, bail out if + # anything was wrong. + $exit_cmd $EXIT_FAILURE +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +## ----------- ## +## Main. ## +## ----------- ## + +$opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + test -z "$mode" && func_fatal_error "error: you must specify a MODE." + + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$mode' for more information." +} + + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_ltwrapper_scriptname_result="" + if func_ltwrapper_executable_p "$1"; then + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + fi +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case "$@ " in + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + removelist="$removelist $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + removelist="$removelist $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + command="$command -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + command="$command$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { +test "$mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$mode'" + ;; + esac + + $ECHO + $ECHO "Try \`$progname --help' for more information about other modes." + + exit $? +} + + # Now that we've collected a possible --mode arg, show help if necessary + $opt_help && func_mode_help + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_quote_for_eval "$file" + args="$args $func_quote_for_eval_result" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + $ECHO "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + $ECHO "X----------------------------------------------------------------------" | $Xsed + $ECHO "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + $ECHO + $ECHO "If you ever happen to want to link against installed libraries" + $ECHO "in a given directory, LIBDIR, you must either use libtool, and" + $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" + $ECHO "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" + $ECHO " during execution" + fi + if test -n "$runpath_var"; then + $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" + $ECHO " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $ECHO + + $ECHO "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" + $ECHO "pages." + ;; + *) + $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + $ECHO "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS +} + +test "$mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + install_prog="$install_prog$func_quote_for_eval_result" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + install_prog="$install_prog $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_verbose "extracting global C symbols from \`$progfile'" + $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + $ECHO >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +" + case $host in + *cygwin* | *mingw* | *cegcc* ) + $ECHO >> "$output_objdir/$my_dlsyms" "\ +/* DATA imports from DLLs on WIN32 con't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs. */" + lt_dlsym_const= ;; + *osf5*) + echo >> "$output_objdir/$my_dlsyms" "\ +/* This system does not cope well with relocations in const data */" + lt_dlsym_const= ;; + *) + lt_dlsym_const=const ;; + esac + + $ECHO >> "$output_objdir/$my_dlsyms" "\ +extern $lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +$lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + $ECHO >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) symtab_cflags="$symtab_cflags $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + + +# func_emit_wrapper_part1 [arg=no] +# +# Emit the first part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part1 () +{ + func_emit_wrapper_part1_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part1_arg1=$1 + fi + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + ECHO=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$ECHO works! + : + else + # Restart under the correct shell, and then maybe \$ECHO will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $ECHO "\ + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done +" +} +# end: func_emit_wrapper_part1 + +# func_emit_wrapper_part2 [arg=no] +# +# Emit the second part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part2 () +{ + func_emit_wrapper_part2_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part2_arg1=$1 + fi + + $ECHO "\ + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} +# end: func_emit_wrapper_part2 + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=no + if test -n "$1" ; then + func_emit_wrapper_arg1=$1 + fi + + # split this up so that func_emit_cwrapperexe_src + # can call each part independently. + func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" + func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +} + + +# func_to_host_path arg +# +# Convert paths to host format when used with build tools. +# Intended for use with "native" mingw (where libtool itself +# is running under the msys shell), or in the following cross- +# build environments: +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# where wine is equipped with the `winepath' executable. +# In the native mingw case, the (msys) shell automatically +# converts paths for any non-msys applications it launches, +# but that facility isn't available from inside the cwrapper. +# Similar accommodations are necessary for $host mingw and +# $build cygwin. Calling this function does no harm for other +# $host/$build combinations not listed above. +# +# ARG is the path (on $build) that should be converted to +# the proper representation for $host. The result is stored +# in $func_to_host_path_result. +func_to_host_path () +{ + func_to_host_path_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + case $build in + *mingw* ) # actually, msys + # awkward: cmd appends spaces to result + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_path_tmp1=`( cmd //c echo "$1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_path_tmp1=`cygpath -w "$1"` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # Unfortunately, winepath does not exit with a non-zero + # error code, so we are forced to check the contents of + # stdout. On the other hand, if the command is not + # found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both + # error code of zero AND non-empty stdout, which explains + # the odd construction: + func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + else + # Allow warning below. + func_to_host_path_result="" + fi + ;; + esac + if test -z "$func_to_host_path_result" ; then + func_error "Could not determine host path corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_path_result="$1" + fi + ;; + esac + fi +} +# end: func_to_host_path + +# func_to_host_pathlist arg +# +# Convert pathlists to host format when used with build tools. +# See func_to_host_path(), above. This function supports the +# following $build/$host combinations (but does no harm for +# combinations not listed here): +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# +# Path separators are also converted from $build format to +# $host format. If ARG begins or ends with a path separator +# character, it is preserved (but converted to $host format) +# on output. +# +# ARG is a pathlist (on $build) that should be converted to +# the proper representation on $host. The result is stored +# in $func_to_host_pathlist_result. +func_to_host_pathlist () +{ + func_to_host_pathlist_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_to_host_pathlist_tmp2="$1" + # Once set for this call, this variable should not be + # reassigned. It is used in tha fallback case. + func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e 's|^:*||' -e 's|:*$||'` + case $build in + *mingw* ) # Actually, msys. + # Awkward: cmd appends spaces to result. + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # unfortunately, winepath doesn't convert pathlists + func_to_host_pathlist_result="" + func_to_host_pathlist_oldIFS=$IFS + IFS=: + for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do + IFS=$func_to_host_pathlist_oldIFS + if test -n "$func_to_host_pathlist_f" ; then + func_to_host_path "$func_to_host_pathlist_f" + if test -n "$func_to_host_path_result" ; then + if test -z "$func_to_host_pathlist_result" ; then + func_to_host_pathlist_result="$func_to_host_path_result" + else + func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" + fi + fi + fi + IFS=: + done + IFS=$func_to_host_pathlist_oldIFS + ;; + esac + if test -z "$func_to_host_pathlist_result" ; then + func_error "Could not determine the host path(s) corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This may break if $1 contains DOS-style drive + # specifications. The fix is not to complicate the expression + # below, but for the user to provide a working wine installation + # with winepath so that path translation in the cross-to-mingw + # case works properly. + lt_replace_pathsep_nix_to_dos="s|:|;|g" + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_replace_pathsep_nix_to_dos"` + fi + # Now, add the leading and trailing path separators back + case "$1" in + :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" + ;; + esac + case "$1" in + *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" + ;; + esac + ;; + esac + fi +} +# end: func_to_host_pathlist + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +# define setmode _setmode +#else +# include +# include +# ifdef __CYGWIN__ +# include +# define HAVE_SETENV +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +#ifdef _MSC_VER +# define S_IXUSR _S_IEXEC +# define stat _stat +# ifndef _INTPTR_T_DEFINED +# define intptr_t int +# endif +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifdef __CYGWIN__ +# define FOPEN_WB "wb" +#endif + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#undef LTWRAPPER_DEBUGPRINTF +#if defined DEBUGWRAPPER +# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args +static void +ltwrapper_debugprintf (const char *fmt, ...) +{ + va_list args; + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); +} +#else +# define LTWRAPPER_DEBUGPRINTF(args) +#endif + +const char *program_name = NULL; + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_fatal (const char *message, ...); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_opt_process_env_set (const char *arg); +void lt_opt_process_env_prepend (const char *arg); +void lt_opt_process_env_append (const char *arg); +int lt_split_name_value (const char *arg, char** name, char** value); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); + +static const char *script_text_part1 = +EOF + + func_emit_wrapper_part1 yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ "/' -e 's/$/\\n"/' + echo ";" + cat <"))); + for (i = 0; i < newargc; i++) + { + LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); + } + +EOF + + case $host_os in + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ + LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + return 127; + } + return rval; +EOF + ;; + *) + cat <<"EOF" + execv (lt_argv_zero, newargz); + return rval; /* =127, but avoids unused variable warning */ +EOF + ;; + esac + + cat <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void *p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), + string) : NULL; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char) name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable (const char *path) +{ + struct stat st; + + LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", + path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", + path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", + wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", + tmp_pathspec)); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + char *errstr = strerror (errno); + lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal ("Could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} + +void +lt_setenv (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", + (name ? name : ""), + (value ? value : ""))); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +int +lt_split_name_value (const char *arg, char** name, char** value) +{ + const char *p; + int len; + if (!arg || !*arg) + return 1; + + p = strchr (arg, (int)'='); + + if (!p) + return 1; + + *value = xstrdup (++p); + + len = strlen (arg) - strlen (*value); + *name = XMALLOC (char, len); + strncpy (*name, arg, len-1); + (*name)[len - 1] = '\0'; + + return 0; +} + +void +lt_opt_process_env_set (const char *arg) +{ + char *name = NULL; + char *value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); + } + + lt_setenv (name, value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_prepend (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_append (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 1); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + (name ? name : ""), + (value ? value : ""))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + (name ? name : ""), + (value ? value : ""))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + + +EOF +} +# end: func_emit_cwrapperexe_src + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + weak_libs="$weak_libs $arg" + prev= + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname '-L' '' "$arg" + dir=$func_stripname_result + if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" + linker_flags="$linker_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_duplicate_deps ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + case $lib in + *.la) func_source "$lib" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + case " $weak_libs " in + *" $deplib_base "*) ;; + *) deplibs="$deplibs $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + dir=$func_stripname_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $ECHO + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because the file extensions .$libext of this argument makes me believe" + $ECHO "*** that it is just a static archive that I should not use here." + else + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) temp_rpath="$temp_rpath$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + notinst_deplibs="$notinst_deplibs $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + $ECHO + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $ECHO + $ECHO "*** And there doesn't seem to be a static archive available" + $ECHO "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $ECHO + $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $ECHO "*** But as you try to build a module library, libtool will still create " + $ECHO "*** a static module, that should work as long as the dlopening application" + $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_dirname "$deplib" "" "." + dir="$func_dirname_result" + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + libobjs="$libobjs $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` + # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` + # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ + -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + done + fi + if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | + $GREP . >/dev/null; then + $ECHO + if test "X$deplibs_check_method" = "Xnone"; then + $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + else + $ECHO "*** Warning: inter-library dependencies are not known to be supported." + fi + $ECHO "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $ECHO + $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + $ECHO "*** a static module, that should work as long as the dlopening" + $ECHO "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $ECHO "*** The inter-library dependencies that have been dropped here will be" + $ECHO "*** automatically added whenever a program is linked with this library" + $ECHO "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $ECHO + $ECHO "*** Since this library must not contain undefined symbols," + $ECHO "*** because either the platform does not support them or" + $ECHO "*** it was explicitly requested with -no-undefined," + $ECHO "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + delfiles="$delfiles $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + func_len " $cmd" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + $ECHO 'INPUT (' > $output + for obj in $save_libobjs + do + $ECHO "$obj" >> $output + done + $ECHO ')' >> $output + delfiles="$delfiles $output" + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + $ECHO "$obj" >> $output + done + delfiles="$delfiles $output" + output=$firstobj\"$file_list_spec$output\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + delfiles="$delfiles $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *cegcc) + # Disable wrappers for cegcc, we are cross compiling anyway. + wrappers_required=no + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $ECHO for shipping. + if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + oldobjs="$oldobjs $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $ECHO "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlfiles="$newdlfiles $libdir/$name" + ;; + *) newdlfiles="$newdlfiles $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlprefiles="$newdlprefiles $libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$mode" = link || test "$mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) RM="$RM $arg"; rmforce=yes ;; + -*) RM="$RM $arg" ;; + *) files="$files $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$mode" = uninstall || test "$mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/libvorbis-1.0.1/lib/books/coupled/Makefile.am b/Dependencies/libvorbis/m4/Makefile.am similarity index 50% rename from libvorbis-1.0.1/lib/books/coupled/Makefile.am rename to Dependencies/libvorbis/m4/Makefile.am index 135b979..cd18485 100644 --- a/libvorbis-1.0.1/lib/books/coupled/Makefile.am +++ b/Dependencies/libvorbis/m4/Makefile.am @@ -1,5 +1,4 @@ ## Process this file with automake to produce Makefile.in -AUTOMAKE_OPTIONS = foreign +EXTRA_DIST = add_cflags.m4 ogg.m4 pkg.m4 -EXTRA_DIST = res_books_stereo.h \ No newline at end of file diff --git a/Dependencies/libvorbis/m4/Makefile.in b/Dependencies/libvorbis/m4/Makefile.in new file mode 100644 index 0000000..95d92cd --- /dev/null +++ b/Dependencies/libvorbis/m4/Makefile.in @@ -0,0 +1,356 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = m4 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = add_cflags.m4 ogg.m4 pkg.m4 +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu m4/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/m4/add_cflags.m4 b/Dependencies/libvorbis/m4/add_cflags.m4 new file mode 100644 index 0000000..eeb6efd --- /dev/null +++ b/Dependencies/libvorbis/m4/add_cflags.m4 @@ -0,0 +1,15 @@ +dnl @synopsis AC_ADD_CFLAGS +dnl +dnl Add the given option to CFLAGS, if it doesn't break the compiler + +AC_DEFUN([AC_ADD_CFLAGS], +[AC_MSG_CHECKING([if $CC accepts $1]) + ac_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_TRY_LINK([#include ], + [puts("Hello, World!"); return 0;], + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + CFLAGS="$ac_add_cflags__old_cflags") + ]) +])# AC_ADD_CFLAGS diff --git a/libvorbis-1.0.1/acinclude.m4 b/Dependencies/libvorbis/m4/ogg.m4 similarity index 70% rename from libvorbis-1.0.1/acinclude.m4 rename to Dependencies/libvorbis/m4/ogg.m4 index 7330563..1d3fb8b 100644 --- a/libvorbis-1.0.1/acinclude.m4 +++ b/Dependencies/libvorbis/m4/ogg.m4 @@ -1,6 +1,3 @@ -# acinclude.m4 -# all .m4 files needed that might not be installed go here - # Configure paths for libogg # Jack Moffitt 10-21-2000 # Shamelessly stolen from Owen Taylor and Manish Singh @@ -8,27 +5,33 @@ dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS dnl -AC_DEFUN(XIPH_PATH_OGG, +AC_DEFUN([XIPH_PATH_OGG], [dnl dnl Get the cflags and libraries dnl -AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="") -AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="") -AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="") -AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes) +AC_ARG_WITH(ogg,AC_HELP_STRING([--with-ogg=PFX],[Prefix where libogg is installed (optional)]), ogg_prefix="$withval", ogg_prefix="") +AC_ARG_WITH(ogg-libraries,AC_HELP_STRING([--with-ogg-libraries=DIR],[Directory where libogg library is installed (optional)]), ogg_libraries="$withval", ogg_libraries="") +AC_ARG_WITH(ogg-includes,AC_HELP_STRING([--with-ogg-includes=DIR],[Directory where libogg header files are installed (optional)]), ogg_includes="$withval", ogg_includes="") +AC_ARG_ENABLE(oggtest,AC_HELP_STRING([--disable-oggtest],[Do not try to compile and run a test Ogg program]),, enable_oggtest=yes) if test "x$ogg_libraries" != "x" ; then OGG_LIBS="-L$ogg_libraries" + elif test "x$ogg_prefix" = "xno" || test "x$ogg_prefix" = "xyes" ; then + OGG_LIBS="" elif test "x$ogg_prefix" != "x" ; then OGG_LIBS="-L$ogg_prefix/lib" elif test "x$prefix" != "xNONE" ; then OGG_LIBS="-L$prefix/lib" fi - OGG_LIBS="$OGG_LIBS -logg" + if test "x$ogg_prefix" != "xno" ; then + OGG_LIBS="$OGG_LIBS -logg" + fi if test "x$ogg_includes" != "x" ; then OGG_CFLAGS="-I$ogg_includes" + elif test "x$ogg_prefix" = "xno" || test "x$ogg_prefix" = "xyes" ; then + OGG_CFLAGS="" elif test "x$ogg_prefix" != "x" ; then OGG_CFLAGS="-I$ogg_prefix/include" elif test "x$prefix" != "xNONE"; then @@ -36,7 +39,12 @@ AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run fi AC_MSG_CHECKING(for Ogg) - no_ogg="" + if test "x$ogg_prefix" = "xno" ; then + no_ogg="disabled" + enable_oggtest="no" + else + no_ogg="" + fi if test "x$enable_oggtest" = "xyes" ; then @@ -65,9 +73,12 @@ int main () LIBS="$ac_save_LIBS" fi - if test "x$no_ogg" = "x" ; then + if test "x$no_ogg" = "xdisabled" ; then + AC_MSG_RESULT(no) + ifelse([$2], , :, [$2]) + elif test "x$no_ogg" = "x" ; then AC_MSG_RESULT(yes) - ifelse([$1], , :, [$1]) + ifelse([$1], , :, [$1]) else AC_MSG_RESULT(no) if test -f conf.oggtest ; then @@ -91,8 +102,7 @@ int main () echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means Ogg was incorrectly installed" - echo "*** or that you have moved Ogg since it was installed. In the latter case, you" - echo "*** may want to edit the ogg-config script: $OGG_CONFIG" ]) + echo "*** or that you have moved Ogg since it was installed." ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi diff --git a/Dependencies/libvorbis/m4/pkg.m4 b/Dependencies/libvorbis/m4/pkg.m4 new file mode 100644 index 0000000..996e294 --- /dev/null +++ b/Dependencies/libvorbis/m4/pkg.m4 @@ -0,0 +1,157 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/Dependencies/libvorbis/macos/compat/strdup.c b/Dependencies/libvorbis/macos/compat/strdup.c new file mode 100644 index 0000000..294e2d0 --- /dev/null +++ b/Dependencies/libvorbis/macos/compat/strdup.c @@ -0,0 +1,21 @@ +#include +#include +#include +#include + +char *strdup(const char *inStr) +{ + char *outStr = NULL; + + if (inStr == NULL) { + return NULL; + } + + outStr = _ogg_malloc(strlen(inStr) + 1); + + if (outStr != NULL) { + strcpy(outStr, inStr); + } + + return outStr; +} diff --git a/Dependencies/libvorbis/macos/compat/sys/types.h b/Dependencies/libvorbis/macos/compat/sys/types.h new file mode 100644 index 0000000..4ef7abd --- /dev/null +++ b/Dependencies/libvorbis/macos/compat/sys/types.h @@ -0,0 +1 @@ +#ifndef __SYS_TYPES_H__ #define __SYS_TYPES_H__ 1 #include #include #include typedef short int16_t; typedef long int32_t; typedef long long int64_t; #define vorbis_size32_t long #if defined(__cplusplus) extern "C" { #endif #pragma options align=power char *strdup(const char *inStr); #pragma options align=reset #if defined(__cplusplus) } #endif #endif /* __SYS_TYPES_H__ */ \ No newline at end of file diff --git a/libvorbis-1.0.1/macos/decoder_example.mcp b/Dependencies/libvorbis/macos/decoder_example.mcp similarity index 100% rename from libvorbis-1.0.1/macos/decoder_example.mcp rename to Dependencies/libvorbis/macos/decoder_example.mcp diff --git a/libvorbis-1.0.1/macos/encoder_example.mcp b/Dependencies/libvorbis/macos/encoder_example.mcp similarity index 100% rename from libvorbis-1.0.1/macos/encoder_example.mcp rename to Dependencies/libvorbis/macos/encoder_example.mcp diff --git a/libvorbis-1.0.1/macos/libvorbis.mcp b/Dependencies/libvorbis/macos/libvorbis.mcp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbis.mcp rename to Dependencies/libvorbis/macos/libvorbis.mcp diff --git a/libvorbis-1.0.1/macos/libvorbis.mcp.exp b/Dependencies/libvorbis/macos/libvorbis.mcp.exp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbis.mcp.exp rename to Dependencies/libvorbis/macos/libvorbis.mcp.exp diff --git a/libvorbis-1.0.1/macos/libvorbisenc.mcp b/Dependencies/libvorbis/macos/libvorbisenc.mcp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbisenc.mcp rename to Dependencies/libvorbis/macos/libvorbisenc.mcp diff --git a/libvorbis-1.0.1/macos/libvorbisenc.mcp.exp b/Dependencies/libvorbis/macos/libvorbisenc.mcp.exp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbisenc.mcp.exp rename to Dependencies/libvorbis/macos/libvorbisenc.mcp.exp diff --git a/libvorbis-1.0.1/macos/libvorbisfile.mcp b/Dependencies/libvorbis/macos/libvorbisfile.mcp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbisfile.mcp rename to Dependencies/libvorbis/macos/libvorbisfile.mcp diff --git a/libvorbis-1.0.1/macos/libvorbisfile.mcp.exp b/Dependencies/libvorbis/macos/libvorbisfile.mcp.exp similarity index 100% rename from libvorbis-1.0.1/macos/libvorbisfile.mcp.exp rename to Dependencies/libvorbis/macos/libvorbisfile.mcp.exp diff --git a/libvorbis-1.0.1/macos/vorbis.mcp b/Dependencies/libvorbis/macos/vorbis.mcp similarity index 100% rename from libvorbis-1.0.1/macos/vorbis.mcp rename to Dependencies/libvorbis/macos/vorbis.mcp diff --git a/Dependencies/libvorbis/macosx/English.lproj/InfoPlist.strings b/Dependencies/libvorbis/macosx/English.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..cfe1b22a882c2fbdf1a83e1f56d3003b12e59d29 GIT binary patch literal 142 zcmW-Z!3u&<5Jk`0uXwn0VIL4~3IZWoy027-Qo~n4e!O~+Vdl=g9PYfZBO`ET;Lep7 z4<;IFv!6N=O$K^3sI9luwf;HpjgNdxpVI%0%Ir*>BPR}grE9r{i~XG%DBP6Fj**-F IQMV^q0h_28>Hq)$ literal 0 HcmV?d00001 diff --git a/Dependencies/libvorbis/macosx/Info.plist b/Dependencies/libvorbis/macosx/Info.plist new file mode 100644 index 0000000..63e1b09 --- /dev/null +++ b/Dependencies/libvorbis/macosx/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Vorbis + CFBundleGetInfoString + Vorbis framework 1.2.3, Copyright © 1994-2009 Xiph.Org Foundation + CFBundleIconFile + + CFBundleIdentifier + org.xiph.vorbis + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.2.3 + CFBundleSignature + ???? + CFBundleVersion + 1.2.3 + NSHumanReadableCopyright + Vorbis framework 1.2.3, Copyright © 1994-2009 Xiph.Org Foundation + CSResourcesFileMapped + + + diff --git a/Dependencies/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj b/Dependencies/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj new file mode 100644 index 0000000..12f5392 --- /dev/null +++ b/Dependencies/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj @@ -0,0 +1,891 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 730F23A3091827B100AB638C /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520B90191D12B01A802FE /* codec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 730F23A4091827B100AB638C /* vorbisenc.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BA0191D12B01A802FE /* vorbisenc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 730F23A5091827B100AB638C /* vorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BB0191D12B01A802FE /* vorbisfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 730F23A6091827B100AB638C /* backends.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60B03389C830112CE8F /* backends.h */; }; + 730F23A7091827B100AB638C /* bitrate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60E03389C830112CE8F /* bitrate.h */; }; + 730F23A8091827B100AB638C /* res_books_stereo.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61603389C830112CE8F /* res_books_stereo.h */; }; + 730F23A9091827B100AB638C /* floor_books.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61903389C830112CE8F /* floor_books.h */; }; + 730F23AA091827B100AB638C /* res_books_uncoupled.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62203389C830112CE8F /* res_books_uncoupled.h */; }; + 730F23AB091827B100AB638C /* codebook.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62403389C830112CE8F /* codebook.h */; }; + 730F23AC091827B100AB638C /* codec_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62503389C830112CE8F /* codec_internal.h */; }; + 730F23AD091827B100AB638C /* envelope.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62703389C830112CE8F /* envelope.h */; }; + 730F23AE091827B100AB638C /* highlevel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62A03389C830112CE8F /* highlevel.h */; }; + 730F23AF091827B100AB638C /* lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62D03389C830112CE8F /* lookup.h */; }; + 730F23B0091827B100AB638C /* lookup_data.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62E03389C830112CE8F /* lookup_data.h */; }; + 730F23B1091827B100AB638C /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63103389C830112CE8F /* lpc.h */; }; + 730F23B2091827B100AB638C /* lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63303389C830112CE8F /* lsp.h */; }; + 730F23B3091827B100AB638C /* masking.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63703389C830112CE8F /* masking.h */; }; + 730F23B4091827B100AB638C /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63903389C830112CE8F /* mdct.h */; }; + 730F23B5091827B100AB638C /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63B03389C830112CE8F /* misc.h */; }; + 730F23B6091827B100AB638C /* floor_all.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63E03389C830112CE8F /* floor_all.h */; }; + 730F23B7091827B100AB638C /* psych_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64103389C830112CE8F /* psych_11.h */; }; + 730F23B8091827B100AB638C /* psych_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64203389C830112CE8F /* psych_16.h */; }; + 730F23B9091827B100AB638C /* psych_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64303389C830112CE8F /* psych_44.h */; }; + 730F23BA091827B100AB638C /* psych_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64403389C830112CE8F /* psych_8.h */; }; + 730F23BB091827B100AB638C /* residue_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64503389C830112CE8F /* residue_16.h */; }; + 730F23BC091827B100AB638C /* residue_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64603389C830112CE8F /* residue_44.h */; }; + 730F23BD091827B100AB638C /* residue_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64703389C830112CE8F /* residue_44u.h */; }; + 730F23BE091827B100AB638C /* residue_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64803389C830112CE8F /* residue_8.h */; }; + 730F23BF091827B100AB638C /* setup_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64903389C830112CE8F /* setup_11.h */; }; + 730F23C0091827B100AB638C /* setup_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64A03389C830112CE8F /* setup_16.h */; }; + 730F23C1091827B100AB638C /* setup_22.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64B03389C830112CE8F /* setup_22.h */; }; + 730F23C2091827B100AB638C /* setup_32.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64C03389C830112CE8F /* setup_32.h */; }; + 730F23C3091827B100AB638C /* setup_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64D03389C830112CE8F /* setup_44.h */; }; + 730F23C4091827B100AB638C /* setup_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64E03389C830112CE8F /* setup_44u.h */; }; + 730F23C5091827B100AB638C /* setup_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64F03389C830112CE8F /* setup_8.h */; }; + 730F23C6091827B100AB638C /* setup_X.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65003389C830112CE8F /* setup_X.h */; }; + 730F23C7091827B100AB638C /* os.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65103389C830112CE8F /* os.h */; }; + 730F23C8091827B100AB638C /* psy.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65303389C830112CE8F /* psy.h */; }; + 730F23C9091827B100AB638C /* registry.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65603389C830112CE8F /* registry.h */; }; + 730F23CA091827B100AB638C /* scales.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65803389C830112CE8F /* scales.h */; }; + 730F23CB091827B100AB638C /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65B03389C830112CE8F /* smallft.h */; }; + 730F23CC091827B100AB638C /* window.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F66103389C830112CE8F /* window.h */; }; + 730F23CE091827B100AB638C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; + 730F23D3091827B100AB638C /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60A03389C830112CE8F /* analysis.c */; }; + 730F23D4091827B100AB638C /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60D03389C830112CE8F /* bitrate.c */; }; + 730F23D5091827B100AB638C /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60F03389C830112CE8F /* block.c */; }; + 730F23D6091827B100AB638C /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62303389C830112CE8F /* codebook.c */; }; + 730F23D7091827B100AB638C /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62603389C830112CE8F /* envelope.c */; }; + 730F23D8091827B100AB638C /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62803389C830112CE8F /* floor0.c */; }; + 730F23D9091827B100AB638C /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62903389C830112CE8F /* floor1.c */; }; + 730F23DA091827B100AB638C /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62B03389C830112CE8F /* info.c */; }; + 730F23DB091827B100AB638C /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62C03389C830112CE8F /* lookup.c */; }; + 730F23DC091827B100AB638C /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63003389C830112CE8F /* lpc.c */; }; + 730F23DD091827B100AB638C /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63203389C830112CE8F /* lsp.c */; }; + 730F23DE091827B100AB638C /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63603389C830112CE8F /* mapping0.c */; }; + 730F23DF091827B100AB638C /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63803389C830112CE8F /* mdct.c */; }; + 730F23E0091827B100AB638C /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65203389C830112CE8F /* psy.c */; }; + 730F23E1091827B100AB638C /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65503389C830112CE8F /* registry.c */; }; + 730F23E2091827B100AB638C /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65703389C830112CE8F /* res0.c */; }; + 730F23E3091827B100AB638C /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65903389C830112CE8F /* sharedbook.c */; }; + 730F23E4091827B100AB638C /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65A03389C830112CE8F /* smallft.c */; }; + 730F23E5091827B100AB638C /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65C03389C830112CE8F /* synthesis.c */; }; + 730F23E6091827B100AB638C /* vorbisenc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65E03389C830112CE8F /* vorbisenc.c */; }; + 730F23E7091827B100AB638C /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65F03389C830112CE8F /* vorbisfile.c */; }; + 730F23E8091827B100AB638C /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F66003389C830112CE8F /* window.c */; }; + 730F23FB0918281100AB638C /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 730F23FA0918281100AB638C /* Ogg.framework */; }; + 738835F40B18FF50005C7A69 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63803389C830112CE8F /* mdct.c */; }; + 738835F70B18FF58005C7A69 /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65A03389C830112CE8F /* smallft.c */; }; + 738835F80B18FF61005C7A69 /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60F03389C830112CE8F /* block.c */; }; + 738835F90B18FF67005C7A69 /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62603389C830112CE8F /* envelope.c */; }; + 738835FA0B18FF71005C7A69 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F66003389C830112CE8F /* window.c */; }; + 738835FB0B18FF7A005C7A69 /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63203389C830112CE8F /* lsp.c */; }; + 738835FC0B18FF82005C7A69 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63003389C830112CE8F /* lpc.c */; }; + 738835FD0B18FF93005C7A69 /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60A03389C830112CE8F /* analysis.c */; }; + 738835FE0B18FF9C005C7A69 /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65C03389C830112CE8F /* synthesis.c */; }; + 738835FF0B18FF9E005C7A69 /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65203389C830112CE8F /* psy.c */; }; + 738836000B18FFCB005C7A69 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62B03389C830112CE8F /* info.c */; }; + 738836010B18FFE5005C7A69 /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62903389C830112CE8F /* floor1.c */; }; + 738836020B18FFE5005C7A69 /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62803389C830112CE8F /* floor0.c */; }; + 738836030B18FFED005C7A69 /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65703389C830112CE8F /* res0.c */; }; + 738836040B18FFF0005C7A69 /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63603389C830112CE8F /* mapping0.c */; }; + 738836050B18FFF8005C7A69 /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65503389C830112CE8F /* registry.c */; }; + 738836060B18FFFD005C7A69 /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62303389C830112CE8F /* codebook.c */; }; + 738836070B190001005C7A69 /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65903389C830112CE8F /* sharedbook.c */; }; + 738836080B190008005C7A69 /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62C03389C830112CE8F /* lookup.c */; }; + 738836090B19000B005C7A69 /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60D03389C830112CE8F /* bitrate.c */; }; + 738836140B1904A5005C7A69 /* vorbisenc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65E03389C830112CE8F /* vorbisenc.c */; }; + 738836230B190601005C7A69 /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65F03389C830112CE8F /* vorbisfile.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 730F23F0091827B100AB638C /* Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = Info.plist; sourceTree = ""; }; + 730F23F1091827B100AB638C /* Vorbis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Vorbis.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 730F23FA0918281100AB638C /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = ""; }; + 738835E40B18F870005C7A69 /* libvorbis.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbis.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 738836130B190488005C7A69 /* libvorbisenc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 738836220B1905E5005C7A69 /* libvorbisfile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; + F58520B90191D12B01A802FE /* codec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = ""; }; + F58520BA0191D12B01A802FE /* vorbisenc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vorbisenc.h; sourceTree = ""; }; + F58520BB0191D12B01A802FE /* vorbisfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vorbisfile.h; sourceTree = ""; }; + F5D8F60A03389C830112CE8F /* analysis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = analysis.c; sourceTree = ""; }; + F5D8F60B03389C830112CE8F /* backends.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = backends.h; sourceTree = ""; }; + F5D8F60C03389C830112CE8F /* barkmel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = barkmel.c; sourceTree = ""; }; + F5D8F60D03389C830112CE8F /* bitrate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bitrate.c; sourceTree = ""; }; + F5D8F60E03389C830112CE8F /* bitrate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bitrate.h; sourceTree = ""; }; + F5D8F60F03389C830112CE8F /* block.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = block.c; sourceTree = ""; }; + F5D8F61603389C830112CE8F /* res_books_stereo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = res_books_stereo.h; sourceTree = ""; }; + F5D8F61903389C830112CE8F /* floor_books.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = floor_books.h; sourceTree = ""; }; + F5D8F62203389C830112CE8F /* res_books_uncoupled.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = res_books_uncoupled.h; sourceTree = ""; }; + F5D8F62303389C830112CE8F /* codebook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = codebook.c; sourceTree = ""; }; + F5D8F62403389C830112CE8F /* codebook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codebook.h; sourceTree = ""; }; + F5D8F62503389C830112CE8F /* codec_internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codec_internal.h; sourceTree = ""; }; + F5D8F62603389C830112CE8F /* envelope.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = envelope.c; sourceTree = ""; }; + F5D8F62703389C830112CE8F /* envelope.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = envelope.h; sourceTree = ""; }; + F5D8F62803389C830112CE8F /* floor0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = floor0.c; sourceTree = ""; }; + F5D8F62903389C830112CE8F /* floor1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = floor1.c; sourceTree = ""; }; + F5D8F62A03389C830112CE8F /* highlevel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = highlevel.h; sourceTree = ""; }; + F5D8F62B03389C830112CE8F /* info.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; + F5D8F62C03389C830112CE8F /* lookup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lookup.c; sourceTree = ""; }; + F5D8F62D03389C830112CE8F /* lookup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lookup.h; sourceTree = ""; }; + F5D8F62E03389C830112CE8F /* lookup_data.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lookup_data.h; sourceTree = ""; }; + F5D8F63003389C830112CE8F /* lpc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lpc.c; sourceTree = ""; }; + F5D8F63103389C830112CE8F /* lpc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lpc.h; sourceTree = ""; }; + F5D8F63203389C830112CE8F /* lsp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lsp.c; sourceTree = ""; }; + F5D8F63303389C830112CE8F /* lsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lsp.h; sourceTree = ""; }; + F5D8F63603389C830112CE8F /* mapping0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mapping0.c; sourceTree = ""; }; + F5D8F63703389C830112CE8F /* masking.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = masking.h; sourceTree = ""; }; + F5D8F63803389C830112CE8F /* mdct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mdct.c; sourceTree = ""; }; + F5D8F63903389C830112CE8F /* mdct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mdct.h; sourceTree = ""; }; + F5D8F63A03389C830112CE8F /* misc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = ""; }; + F5D8F63B03389C830112CE8F /* misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = ""; }; + F5D8F63E03389C830112CE8F /* floor_all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = floor_all.h; sourceTree = ""; }; + F5D8F64103389C830112CE8F /* psych_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_11.h; sourceTree = ""; }; + F5D8F64203389C830112CE8F /* psych_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_16.h; sourceTree = ""; }; + F5D8F64303389C830112CE8F /* psych_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_44.h; sourceTree = ""; }; + F5D8F64403389C830112CE8F /* psych_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_8.h; sourceTree = ""; }; + F5D8F64503389C830112CE8F /* residue_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_16.h; sourceTree = ""; }; + F5D8F64603389C830112CE8F /* residue_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_44.h; sourceTree = ""; }; + F5D8F64703389C830112CE8F /* residue_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_44u.h; sourceTree = ""; }; + F5D8F64803389C830112CE8F /* residue_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_8.h; sourceTree = ""; }; + F5D8F64903389C830112CE8F /* setup_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_11.h; sourceTree = ""; }; + F5D8F64A03389C830112CE8F /* setup_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_16.h; sourceTree = ""; }; + F5D8F64B03389C830112CE8F /* setup_22.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_22.h; sourceTree = ""; }; + F5D8F64C03389C830112CE8F /* setup_32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_32.h; sourceTree = ""; }; + F5D8F64D03389C830112CE8F /* setup_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_44.h; sourceTree = ""; }; + F5D8F64E03389C830112CE8F /* setup_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_44u.h; sourceTree = ""; }; + F5D8F64F03389C830112CE8F /* setup_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_8.h; sourceTree = ""; }; + F5D8F65003389C830112CE8F /* setup_X.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_X.h; sourceTree = ""; }; + F5D8F65103389C830112CE8F /* os.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = os.h; sourceTree = ""; }; + F5D8F65203389C830112CE8F /* psy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = psy.c; sourceTree = ""; }; + F5D8F65303389C830112CE8F /* psy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psy.h; sourceTree = ""; }; + F5D8F65403389C830112CE8F /* psytune.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = psytune.c; sourceTree = ""; }; + F5D8F65503389C830112CE8F /* registry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = registry.c; sourceTree = ""; }; + F5D8F65603389C830112CE8F /* registry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = registry.h; sourceTree = ""; }; + F5D8F65703389C830112CE8F /* res0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = res0.c; sourceTree = ""; }; + F5D8F65803389C830112CE8F /* scales.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = scales.h; sourceTree = ""; }; + F5D8F65903389C830112CE8F /* sharedbook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sharedbook.c; sourceTree = ""; }; + F5D8F65A03389C830112CE8F /* smallft.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smallft.c; sourceTree = ""; }; + F5D8F65B03389C830112CE8F /* smallft.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smallft.h; sourceTree = ""; }; + F5D8F65C03389C830112CE8F /* synthesis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = synthesis.c; sourceTree = ""; }; + F5D8F65D03389C830112CE8F /* tone.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tone.c; sourceTree = ""; }; + F5D8F65E03389C830112CE8F /* vorbisenc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vorbisenc.c; sourceTree = ""; }; + F5D8F65F03389C830112CE8F /* vorbisfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vorbisfile.c; sourceTree = ""; }; + F5D8F66003389C830112CE8F /* window.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = window.c; sourceTree = ""; }; + F5D8F66103389C830112CE8F /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 730F23E9091827B100AB638C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F23FB0918281100AB638C /* Ogg.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738835E20B18F870005C7A69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738836110B190488005C7A69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738836200B1905E5005C7A69 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + 730F23F1091827B100AB638C /* Vorbis.framework */, + 738835E40B18F870005C7A69 /* libvorbis.a */, + 738836130B190488005C7A69 /* libvorbisenc.a */, + 738836220B1905E5005C7A69 /* libvorbisfile.a */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* vorbis */ = { + isa = PBXGroup; + children = ( + F58520B70191D12B01A802FE /* Headers */, + F5D8F60803389C830112CE8F /* lib */, + 089C1665FE841158C02AAC07 /* Resources */, + 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = vorbis; + sourceTree = ""; + }; + 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 730F23FA0918281100AB638C /* Ogg.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 089C1665FE841158C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 730F23F0091827B100AB638C /* Info.plist */, + 089C1666FE841158C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + F58520B70191D12B01A802FE /* Headers */ = { + isa = PBXGroup; + children = ( + F58520B90191D12B01A802FE /* codec.h */, + F58520BA0191D12B01A802FE /* vorbisenc.h */, + F58520BB0191D12B01A802FE /* vorbisfile.h */, + ); + name = Headers; + path = ../include/vorbis; + sourceTree = SOURCE_ROOT; + }; + F5D8F60803389C830112CE8F /* lib */ = { + isa = PBXGroup; + children = ( + F5D8F60A03389C830112CE8F /* analysis.c */, + F5D8F60B03389C830112CE8F /* backends.h */, + F5D8F60C03389C830112CE8F /* barkmel.c */, + F5D8F60D03389C830112CE8F /* bitrate.c */, + F5D8F60E03389C830112CE8F /* bitrate.h */, + F5D8F60F03389C830112CE8F /* block.c */, + F5D8F61003389C830112CE8F /* books */, + F5D8F62303389C830112CE8F /* codebook.c */, + F5D8F62403389C830112CE8F /* codebook.h */, + F5D8F62503389C830112CE8F /* codec_internal.h */, + F5D8F62603389C830112CE8F /* envelope.c */, + F5D8F62703389C830112CE8F /* envelope.h */, + F5D8F62803389C830112CE8F /* floor0.c */, + F5D8F62903389C830112CE8F /* floor1.c */, + F5D8F62A03389C830112CE8F /* highlevel.h */, + F5D8F62B03389C830112CE8F /* info.c */, + F5D8F62C03389C830112CE8F /* lookup.c */, + F5D8F62D03389C830112CE8F /* lookup.h */, + F5D8F62E03389C830112CE8F /* lookup_data.h */, + F5D8F63003389C830112CE8F /* lpc.c */, + F5D8F63103389C830112CE8F /* lpc.h */, + F5D8F63203389C830112CE8F /* lsp.c */, + F5D8F63303389C830112CE8F /* lsp.h */, + F5D8F63603389C830112CE8F /* mapping0.c */, + F5D8F63703389C830112CE8F /* masking.h */, + F5D8F63803389C830112CE8F /* mdct.c */, + F5D8F63903389C830112CE8F /* mdct.h */, + F5D8F63A03389C830112CE8F /* misc.c */, + F5D8F63B03389C830112CE8F /* misc.h */, + F5D8F63C03389C830112CE8F /* modes */, + F5D8F65103389C830112CE8F /* os.h */, + F5D8F65203389C830112CE8F /* psy.c */, + F5D8F65303389C830112CE8F /* psy.h */, + F5D8F65403389C830112CE8F /* psytune.c */, + F5D8F65503389C830112CE8F /* registry.c */, + F5D8F65603389C830112CE8F /* registry.h */, + F5D8F65703389C830112CE8F /* res0.c */, + F5D8F65803389C830112CE8F /* scales.h */, + F5D8F65903389C830112CE8F /* sharedbook.c */, + F5D8F65A03389C830112CE8F /* smallft.c */, + F5D8F65B03389C830112CE8F /* smallft.h */, + F5D8F65C03389C830112CE8F /* synthesis.c */, + F5D8F65D03389C830112CE8F /* tone.c */, + F5D8F65E03389C830112CE8F /* vorbisenc.c */, + F5D8F65F03389C830112CE8F /* vorbisfile.c */, + F5D8F66003389C830112CE8F /* window.c */, + F5D8F66103389C830112CE8F /* window.h */, + ); + name = lib; + path = ../lib; + sourceTree = ""; + }; + F5D8F61003389C830112CE8F /* books */ = { + isa = PBXGroup; + children = ( + F5D8F61203389C830112CE8F /* coupled */, + F5D8F61703389C830112CE8F /* floor */, + F5D8F61E03389C830112CE8F /* uncoupled */, + ); + path = books; + sourceTree = ""; + }; + F5D8F61203389C830112CE8F /* coupled */ = { + isa = PBXGroup; + children = ( + F5D8F61603389C830112CE8F /* res_books_stereo.h */, + ); + path = coupled; + sourceTree = ""; + }; + F5D8F61703389C830112CE8F /* floor */ = { + isa = PBXGroup; + children = ( + F5D8F61903389C830112CE8F /* floor_books.h */, + ); + path = floor; + sourceTree = ""; + }; + F5D8F61E03389C830112CE8F /* uncoupled */ = { + isa = PBXGroup; + children = ( + F5D8F62203389C830112CE8F /* res_books_uncoupled.h */, + ); + path = uncoupled; + sourceTree = ""; + }; + F5D8F63C03389C830112CE8F /* modes */ = { + isa = PBXGroup; + children = ( + F5D8F63E03389C830112CE8F /* floor_all.h */, + F5D8F64103389C830112CE8F /* psych_11.h */, + F5D8F64203389C830112CE8F /* psych_16.h */, + F5D8F64303389C830112CE8F /* psych_44.h */, + F5D8F64403389C830112CE8F /* psych_8.h */, + F5D8F64503389C830112CE8F /* residue_16.h */, + F5D8F64603389C830112CE8F /* residue_44.h */, + F5D8F64703389C830112CE8F /* residue_44u.h */, + F5D8F64803389C830112CE8F /* residue_8.h */, + F5D8F64903389C830112CE8F /* setup_11.h */, + F5D8F64A03389C830112CE8F /* setup_16.h */, + F5D8F64B03389C830112CE8F /* setup_22.h */, + F5D8F64C03389C830112CE8F /* setup_32.h */, + F5D8F64D03389C830112CE8F /* setup_44.h */, + F5D8F64E03389C830112CE8F /* setup_44u.h */, + F5D8F64F03389C830112CE8F /* setup_8.h */, + F5D8F65003389C830112CE8F /* setup_X.h */, + ); + path = modes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 730F23A2091827B100AB638C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F23A3091827B100AB638C /* codec.h in Headers */, + 730F23A4091827B100AB638C /* vorbisenc.h in Headers */, + 730F23A5091827B100AB638C /* vorbisfile.h in Headers */, + 730F23A6091827B100AB638C /* backends.h in Headers */, + 730F23A7091827B100AB638C /* bitrate.h in Headers */, + 730F23A8091827B100AB638C /* res_books_stereo.h in Headers */, + 730F23A9091827B100AB638C /* floor_books.h in Headers */, + 730F23AA091827B100AB638C /* res_books_uncoupled.h in Headers */, + 730F23AB091827B100AB638C /* codebook.h in Headers */, + 730F23AC091827B100AB638C /* codec_internal.h in Headers */, + 730F23AD091827B100AB638C /* envelope.h in Headers */, + 730F23AE091827B100AB638C /* highlevel.h in Headers */, + 730F23AF091827B100AB638C /* lookup.h in Headers */, + 730F23B0091827B100AB638C /* lookup_data.h in Headers */, + 730F23B1091827B100AB638C /* lpc.h in Headers */, + 730F23B2091827B100AB638C /* lsp.h in Headers */, + 730F23B3091827B100AB638C /* masking.h in Headers */, + 730F23B4091827B100AB638C /* mdct.h in Headers */, + 730F23B5091827B100AB638C /* misc.h in Headers */, + 730F23B6091827B100AB638C /* floor_all.h in Headers */, + 730F23B7091827B100AB638C /* psych_11.h in Headers */, + 730F23B8091827B100AB638C /* psych_16.h in Headers */, + 730F23B9091827B100AB638C /* psych_44.h in Headers */, + 730F23BA091827B100AB638C /* psych_8.h in Headers */, + 730F23BB091827B100AB638C /* residue_16.h in Headers */, + 730F23BC091827B100AB638C /* residue_44.h in Headers */, + 730F23BD091827B100AB638C /* residue_44u.h in Headers */, + 730F23BE091827B100AB638C /* residue_8.h in Headers */, + 730F23BF091827B100AB638C /* setup_11.h in Headers */, + 730F23C0091827B100AB638C /* setup_16.h in Headers */, + 730F23C1091827B100AB638C /* setup_22.h in Headers */, + 730F23C2091827B100AB638C /* setup_32.h in Headers */, + 730F23C3091827B100AB638C /* setup_44.h in Headers */, + 730F23C4091827B100AB638C /* setup_44u.h in Headers */, + 730F23C5091827B100AB638C /* setup_8.h in Headers */, + 730F23C6091827B100AB638C /* setup_X.h in Headers */, + 730F23C7091827B100AB638C /* os.h in Headers */, + 730F23C8091827B100AB638C /* psy.h in Headers */, + 730F23C9091827B100AB638C /* registry.h in Headers */, + 730F23CA091827B100AB638C /* scales.h in Headers */, + 730F23CB091827B100AB638C /* smallft.h in Headers */, + 730F23CC091827B100AB638C /* window.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738835E00B18F870005C7A69 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7388360F0B190488005C7A69 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7388361E0B1905E5005C7A69 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 730F23A1091827B100AB638C /* Vorbis */ = { + isa = PBXNativeTarget; + buildConfigurationList = 730F23EC091827B100AB638C /* Build configuration list for PBXNativeTarget "Vorbis" */; + buildPhases = ( + 730F23A2091827B100AB638C /* Headers */, + 730F23CD091827B100AB638C /* Resources */, + 730F23D2091827B100AB638C /* Sources */, + 730F23E9091827B100AB638C /* Frameworks */, + 730F23EB091827B100AB638C /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Vorbis; + productInstallPath = /Library/Frameworks; + productName = vorbis; + productReference = 730F23F1091827B100AB638C /* Vorbis.framework */; + productType = "com.apple.product-type.framework"; + }; + 738835E30B18F870005C7A69 /* libvorbis (static) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 738835E50B18F88E005C7A69 /* Build configuration list for PBXNativeTarget "libvorbis (static)" */; + buildPhases = ( + 738835E00B18F870005C7A69 /* Headers */, + 738835E10B18F870005C7A69 /* Sources */, + 738835E20B18F870005C7A69 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "libvorbis (static)"; + productName = vorbis; + productReference = 738835E40B18F870005C7A69 /* libvorbis.a */; + productType = "com.apple.product-type.library.static"; + }; + 738836120B190488005C7A69 /* libvorbisenc (static) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7388361A0B1904D6005C7A69 /* Build configuration list for PBXNativeTarget "libvorbisenc (static)" */; + buildPhases = ( + 7388360F0B190488005C7A69 /* Headers */, + 738836100B190488005C7A69 /* Sources */, + 738836110B190488005C7A69 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "libvorbisenc (static)"; + productName = vorbisenc; + productReference = 738836130B190488005C7A69 /* libvorbisenc.a */; + productType = "com.apple.product-type.library.static"; + }; + 738836210B1905E5005C7A69 /* libvorbisfile (static) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 738836250B19065D005C7A69 /* Build configuration list for PBXNativeTarget "libvorbisfile (static)" */; + buildPhases = ( + 7388361E0B1905E5005C7A69 /* Headers */, + 7388361F0B1905E5005C7A69 /* Sources */, + 738836200B1905E5005C7A69 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "libvorbisfile (static)"; + productName = vorbisfile; + productReference = 738836220B1905E5005C7A69 /* libvorbisfile.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 730F23F3091827B200AB638C /* Build configuration list for PBXProject "Vorbis" */; + hasScannedForEncodings = 0; + mainGroup = 0867D691FE84028FC02AAC07 /* vorbis */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + targets = ( + 730F23A1091827B100AB638C /* Vorbis */, + 738835E30B18F870005C7A69 /* libvorbis (static) */, + 738836120B190488005C7A69 /* libvorbisenc (static) */, + 738836210B1905E5005C7A69 /* libvorbisfile (static) */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 730F23CD091827B100AB638C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F23CE091827B100AB638C /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 730F23EB091827B100AB638C /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 730F23D2091827B100AB638C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F23D3091827B100AB638C /* analysis.c in Sources */, + 730F23D4091827B100AB638C /* bitrate.c in Sources */, + 730F23D5091827B100AB638C /* block.c in Sources */, + 730F23D6091827B100AB638C /* codebook.c in Sources */, + 730F23D7091827B100AB638C /* envelope.c in Sources */, + 730F23D8091827B100AB638C /* floor0.c in Sources */, + 730F23D9091827B100AB638C /* floor1.c in Sources */, + 730F23DA091827B100AB638C /* info.c in Sources */, + 730F23DB091827B100AB638C /* lookup.c in Sources */, + 730F23DC091827B100AB638C /* lpc.c in Sources */, + 730F23DD091827B100AB638C /* lsp.c in Sources */, + 730F23DE091827B100AB638C /* mapping0.c in Sources */, + 730F23DF091827B100AB638C /* mdct.c in Sources */, + 730F23E0091827B100AB638C /* psy.c in Sources */, + 730F23E1091827B100AB638C /* registry.c in Sources */, + 730F23E2091827B100AB638C /* res0.c in Sources */, + 730F23E3091827B100AB638C /* sharedbook.c in Sources */, + 730F23E4091827B100AB638C /* smallft.c in Sources */, + 730F23E5091827B100AB638C /* synthesis.c in Sources */, + 730F23E6091827B100AB638C /* vorbisenc.c in Sources */, + 730F23E7091827B100AB638C /* vorbisfile.c in Sources */, + 730F23E8091827B100AB638C /* window.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738835E10B18F870005C7A69 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 738835F40B18FF50005C7A69 /* mdct.c in Sources */, + 738835F70B18FF58005C7A69 /* smallft.c in Sources */, + 738835F80B18FF61005C7A69 /* block.c in Sources */, + 738835F90B18FF67005C7A69 /* envelope.c in Sources */, + 738835FA0B18FF71005C7A69 /* window.c in Sources */, + 738835FB0B18FF7A005C7A69 /* lsp.c in Sources */, + 738835FC0B18FF82005C7A69 /* lpc.c in Sources */, + 738835FD0B18FF93005C7A69 /* analysis.c in Sources */, + 738835FE0B18FF9C005C7A69 /* synthesis.c in Sources */, + 738835FF0B18FF9E005C7A69 /* psy.c in Sources */, + 738836000B18FFCB005C7A69 /* info.c in Sources */, + 738836010B18FFE5005C7A69 /* floor1.c in Sources */, + 738836020B18FFE5005C7A69 /* floor0.c in Sources */, + 738836030B18FFED005C7A69 /* res0.c in Sources */, + 738836040B18FFF0005C7A69 /* mapping0.c in Sources */, + 738836050B18FFF8005C7A69 /* registry.c in Sources */, + 738836060B18FFFD005C7A69 /* codebook.c in Sources */, + 738836070B190001005C7A69 /* sharedbook.c in Sources */, + 738836080B190008005C7A69 /* lookup.c in Sources */, + 738836090B19000B005C7A69 /* bitrate.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 738836100B190488005C7A69 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 738836140B1904A5005C7A69 /* vorbisenc.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7388361F0B1905E5005C7A69 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 738836230B190601005C7A69 /* vorbisfile.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C1667FE841158C02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 730F23ED091827B100AB638C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; + FRAMEWORK_VERSION = A; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + HEADER_SEARCH_PATHS = ../lib; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = /Library/Frameworks; + LIBRARY_SEARCH_PATHS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = Vorbis; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = framework; + ZERO_LINK = YES; + }; + name = Debug; + }; + 730F23EE091827B100AB638C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; + FRAMEWORK_VERSION = A; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = ../lib; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = /Library/Frameworks; + LIBRARY_SEARCH_PATHS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = Vorbis; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = framework; + ZERO_LINK = NO; + }; + name = Release; + }; + 730F23F4091827B200AB638C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Debug; + }; + 730F23F5091827B200AB638C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__; + OTHER_CFLAGS = ( + "$(OTHER_CFLAGS)", + "-ffast-math", + "-falign-loops=16", + ); + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Release; + }; + 738835E60B18F88E005C7A69 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbis; + ZERO_LINK = YES; + }; + name = Debug; + }; + 738835E70B18F88E005C7A69 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbis; + ZERO_LINK = NO; + }; + name = Release; + }; + 7388361B0B1904D6005C7A69 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../lib, + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbisenc; + ZERO_LINK = YES; + }; + name = Debug; + }; + 7388361C0B1904D6005C7A69 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../lib, + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbisenc; + ZERO_LINK = NO; + }; + name = Release; + }; + 738836260B19065D005C7A69 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbisfile; + ZERO_LINK = YES; + }; + name = Debug; + }; + 738836270B19065D005C7A69 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + ../../ogg/include, + ); + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = vorbisfile; + ZERO_LINK = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 730F23EC091827B100AB638C /* Build configuration list for PBXNativeTarget "Vorbis" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 730F23ED091827B100AB638C /* Debug */, + 730F23EE091827B100AB638C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 730F23F3091827B200AB638C /* Build configuration list for PBXProject "Vorbis" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 730F23F4091827B200AB638C /* Debug */, + 730F23F5091827B200AB638C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 738835E50B18F88E005C7A69 /* Build configuration list for PBXNativeTarget "libvorbis (static)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 738835E60B18F88E005C7A69 /* Debug */, + 738835E70B18F88E005C7A69 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7388361A0B1904D6005C7A69 /* Build configuration list for PBXNativeTarget "libvorbisenc (static)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7388361B0B1904D6005C7A69 /* Debug */, + 7388361C0B1904D6005C7A69 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 738836250B19065D005C7A69 /* Build configuration list for PBXNativeTarget "libvorbisfile (static)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 738836260B19065D005C7A69 /* Debug */, + 738836270B19065D005C7A69 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/Dependencies/libvorbis/missing b/Dependencies/libvorbis/missing new file mode 100755 index 0000000..894e786 --- /dev/null +++ b/Dependencies/libvorbis/missing @@ -0,0 +1,360 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2005-06-08.21 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# 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, 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. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case "$1" in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/Dependencies/libvorbis/symbian/bld.inf b/Dependencies/libvorbis/symbian/bld.inf new file mode 100644 index 0000000..69625fe --- /dev/null +++ b/Dependencies/libvorbis/symbian/bld.inf @@ -0,0 +1,35 @@ +/* + Copyright (C) 2003 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) Australia + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - 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. + + - Neither the name of CSIRO Australia nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``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 ORGANISATION 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. +*/ + +PRJ_MMPFILES + +vorbis.mmp diff --git a/Dependencies/libvorbis/symbian/config.h b/Dependencies/libvorbis/symbian/config.h new file mode 100644 index 0000000..56d2179 --- /dev/null +++ b/Dependencies/libvorbis/symbian/config.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2003 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) Australia + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - 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. + + - Neither the name of CSIRO Australia nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``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 ORGANISATION 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. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#ifdef __WINS__ + +/* Disable some warnings */ + +#pragma warning(disable: 4100) /* unreferenced formal parameter */ +#pragma warning(disable: 4127) /* conditional expression is constant */ +#pragma warning(disable: 4189) /* local variable is initialized but not referenced */ +#pragma warning(disable: 4244) /* conversion from '...' to '...', possible loss of data */ +#pragma warning(disable: 4305) /* truncation from '...' to '...' */ +#pragma warning(disable: 4505) /* unreferenced local function has been removed */ +#pragma warning(disable: 4514) /* unreferenced inline function has been removed */ +#pragma warning(disable: 4702) /* unreachable code */ +#pragma warning(disable: 4701) /* local variable may be be used without having been initialized */ +#pragma warning(disable: 4706) /* assignment within conditional expression */ +#pragma warning(disable: 4761) /* integral size mismatch in argument: conversion supplied */ + +#endif + +#endif /* ! CONFIG_H */ diff --git a/Dependencies/libvorbis/symbian/vorbis.mmp b/Dependencies/libvorbis/symbian/vorbis.mmp new file mode 100644 index 0000000..f431419 --- /dev/null +++ b/Dependencies/libvorbis/symbian/vorbis.mmp @@ -0,0 +1,43 @@ +/* + Copyright (C) 2003 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) Australia + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - 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. + + - Neither the name of CSIRO Australia nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``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 ORGANISATION 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. +*/ + +TARGET vorbis.lib +TARGETTYPE lib +UID 0 +MACRO HAVE_CONFIG_H +SOURCEPATH ..\lib +SOURCE analysis.c barkmel.c bitrate.c block.c codebook.c envelope.c floor0.c floor1.c info.c +SOURCE lookup.c lpc.c lsp.c mapping0.c mdct.c psy.c registry.c res0.c sharedbook.c +SOURCE smallft.c synthesis.c vorbisfile.c window.c + +USERINCLUDE . ..\include +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\include ..\..\ogg\include ..\..\ogg\symbian diff --git a/Dependencies/libvorbis/test/Makefile.am b/Dependencies/libvorbis/test/Makefile.am new file mode 100644 index 0000000..5f7e32a --- /dev/null +++ b/Dependencies/libvorbis/test/Makefile.am @@ -0,0 +1,19 @@ +## Process this file with automake to produce Makefile.in + +AUTOMAKE_OPTIONS = foreign + +INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ + +check_PROGRAMS = test + +check: $(check_PROGRAMS) + ./test$(EXEEXT) + +test_SOURCES = util.c util.h write_read.c write_read.h test.c +test_LDADD = ../lib/libvorbisenc.la ../lib/libvorbis.la @OGG_LIBS@ + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" diff --git a/Dependencies/libvorbis/test/Makefile.in b/Dependencies/libvorbis/test/Makefile.in new file mode 100644 index 0000000..afd50c8 --- /dev/null +++ b/Dependencies/libvorbis/test/Makefile.in @@ -0,0 +1,478 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +check_PROGRAMS = test$(EXEEXT) +subdir = test +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +am_test_OBJECTS = util.$(OBJEXT) write_read.$(OBJEXT) test.$(OBJEXT) +test_OBJECTS = $(am_test_OBJECTS) +test_DEPENDENCIES = ../lib/libvorbisenc.la ../lib/libvorbis.la +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(test_SOURCES) +DIST_SOURCES = $(test_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign +INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ +test_SOURCES = util.c util.h write_read.c write_read.h test.c +test_LDADD = ../lib/libvorbisenc.la ../lib/libvorbis.la @OGG_LIBS@ +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign test/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) + @rm -f test$(EXEEXT) + $(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write_read.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am + + +check: $(check_PROGRAMS) + ./test$(EXEEXT) + +debug: + $(MAKE) all CFLAGS="@DEBUG@" + +profile: + $(MAKE) all CFLAGS="@PROFILE@" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/test/test.c b/Dependencies/libvorbis/test/test.c new file mode 100644 index 0000000..a5cfe14 --- /dev/null +++ b/Dependencies/libvorbis/test/test.c @@ -0,0 +1,100 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: vorbis coded test suite using vorbisfile + last mod: $Id: test.c 13293 2007-07-24 00:09:47Z erikd $ + + ********************************************************************/ + +#include +#include +#include + +#include "util.h" +#include "write_read.h" + +#define DATA_LEN 2048 + +#define MAX(a,b) ((a) > (b) ? (a) : (b)) + + +static int check_output (const float * data_in, unsigned len, float allowable); + +int +main(void){ + static float data_out [DATA_LEN] ; + static float data_in [DATA_LEN] ; + + /* Do safest and most used sample rates first. */ + int sample_rates [] = { 44100, 48000, 32000, 22050, 16000, 96000 } ; + unsigned k ; + int errors = 0 ; + int ch; + + gen_windowed_sine (data_out, ARRAY_LEN (data_out), 0.95); + + for(ch=1;ch<=8;ch++){ + float q=-.05; + printf("\nTesting %d channel%s\n\n",ch,ch==1?"":"s"); + while(q<1.){ + for (k = 0 ; k < ARRAY_LEN (sample_rates); k ++) { + char filename [64] ; + snprintf (filename, sizeof (filename), "vorbis_%dch_q%.1f_%u.ogg", ch,q*10,sample_rates [k]); + + printf (" %-20s : ", filename); + fflush (stdout); + + /* Set to know value. */ + set_data_in (data_in, ARRAY_LEN (data_in), 3.141); + + write_vorbis_data_or_die (filename, sample_rates [k], q, data_out, ARRAY_LEN (data_out),ch); + read_vorbis_data_or_die (filename, sample_rates [k], data_in, ARRAY_LEN (data_in)); + + if (check_output (data_in, ARRAY_LEN (data_in), (.15f - .1f*q)) != 0) + errors ++ ; + else { + puts ("ok"); + remove (filename); + } + } + q+=.1; + } + } + + if (errors) + exit (1); + + return 0; +} + +static int +check_output (const float * data_in, unsigned len, float allowable) +{ + float max_abs = 0.0 ; + unsigned k ; + + for (k = 0 ; k < len ; k++) { + float temp = fabs (data_in [k]); + max_abs = MAX (max_abs, temp); + } + + if (max_abs < 0.95-allowable) { + printf ("Error : max_abs (%f) too small.\n", max_abs); + return 1 ; + } else if (max_abs > .95+allowable) { + printf ("Error : max_abs (%f) too big.\n", max_abs); + return 1 ; + } + + return 0 ; +} + diff --git a/Dependencies/libvorbis/test/util.c b/Dependencies/libvorbis/test/util.c new file mode 100644 index 0000000..a9e1956 --- /dev/null +++ b/Dependencies/libvorbis/test/util.c @@ -0,0 +1,53 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility functions for vorbis codec test suite. + last mod: $Id: util.c 13293 2007-07-24 00:09:47Z erikd $ + + ********************************************************************/ + +#include +#include +#include +#include +#include + +#include +#include + +#include "util.h" + +void +gen_windowed_sine (float *data, int len, float maximum) +{ int k ; + + memset (data, 0, len * sizeof (float)) ; + + len /= 2 ; + + for (k = 0 ; k < len ; k++) + { data [k] = sin (2.0 * k * M_PI * 1.0 / 32.0 + 0.4) ; + + /* Apply Hanning Window. */ + data [k] *= maximum * (0.5 - 0.5 * cos (2.0 * M_PI * k / ((len) - 1))) ; + } + + return ; +} + +void +set_data_in (float * data, unsigned len, float value) +{ unsigned k ; + + for (k = 0 ; k < len ; k++) + data [k] = value ; +} diff --git a/Dependencies/libvorbis/test/util.h b/Dependencies/libvorbis/test/util.h new file mode 100644 index 0000000..2785cde --- /dev/null +++ b/Dependencies/libvorbis/test/util.h @@ -0,0 +1,24 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility functions for vorbis codec test suite. + last mod: $Id: util.c 13293 2007-07-24 00:09:47Z erikd $ + + ********************************************************************/ + +#define ARRAY_LEN(x) (sizeof(x)/sizeof(x[0])) + +/* Create simple test data consisting of a windowed sine wave. */ +void gen_windowed_sine (float *data, int len, float maximum) ; + +/* Set len values of data array to given value. */ +void set_data_in (float * data, unsigned len, float value) ; diff --git a/Dependencies/libvorbis/test/write_read.c b/Dependencies/libvorbis/test/write_read.c new file mode 100644 index 0000000..e177ae4 --- /dev/null +++ b/Dependencies/libvorbis/test/write_read.c @@ -0,0 +1,298 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility functions for vorbis codec test suite. + last mod: $Id: util.c 13293 2007-07-24 00:09:47Z erikd $ + + ********************************************************************/ + +#include +#include +#include +#include +#include + +#include +#include + +#include "write_read.h" + +/* The following function is basically a hacked version of the code in + * examples/encoder_example.c */ +void +write_vorbis_data_or_die (const char *filename, int srate, float q, const float * data, int count, int ch) +{ + FILE * file ; + ogg_stream_state os; + ogg_page og; + ogg_packet op; + vorbis_info vi; + vorbis_comment vc; + vorbis_dsp_state vd; + vorbis_block vb; + + int eos = 0, ret; + + if ((file = fopen (filename, "wb")) == NULL) { + printf("\n\nError : fopen failed : %s\n", strerror (errno)) ; + exit (1) ; + } + + /********** Encode setup ************/ + + vorbis_info_init (&vi); + + ret = vorbis_encode_init_vbr (&vi,ch,srate,q); + if (ret) { + printf ("vorbis_encode_init_vbr return %d\n", ret) ; + exit (1) ; + } + + vorbis_comment_init (&vc); + vorbis_comment_add_tag (&vc,"ENCODER","test/util.c"); + vorbis_analysis_init (&vd,&vi); + vorbis_block_init (&vd,&vb); + + ogg_stream_init (&os,12345678); + + { + ogg_packet header; + ogg_packet header_comm; + ogg_packet header_code; + + vorbis_analysis_headerout (&vd,&vc,&header,&header_comm,&header_code); + ogg_stream_packetin (&os,&header); + ogg_stream_packetin (&os,&header_comm); + ogg_stream_packetin (&os,&header_code); + + /* Ensures the audio data will start on a new page. */ + while (!eos){ + int result = ogg_stream_flush (&os,&og); + if (result == 0) + break; + fwrite (og.header,1,og.header_len,file); + fwrite (og.body,1,og.body_len,file); + } + + } + + { + /* expose the buffer to submit data */ + float **buffer = vorbis_analysis_buffer (&vd,count); + int i; + + for(i=0;i 0 && read_total < count) { + int bout = samples < count ? samples : count; + bout = read_total + bout > count ? count - read_total : bout; + + memcpy (data + read_total, pcm[0], bout * sizeof (float)) ; + + vorbis_synthesis_read (&vd,bout); + read_total += bout ; + } + } + } + + if (ogg_page_eos (&og)) eos = 1; + } + } + + if (!eos) { + buffer = ogg_sync_buffer (&oy,4096); + bytes = fread (buffer,1,4096,file); + ogg_sync_wrote (&oy,bytes); + if (bytes == 0) eos = 1; + } + } + + ogg_stream_clear (&os); + + vorbis_block_clear (&vb); + vorbis_dsp_clear (&vd); + vorbis_comment_clear (&vc); + vorbis_info_clear (&vi); + } +done_decode: + + /* OK, clean up the framer */ + ogg_sync_clear (&oy); + + fclose (file) ; +} + diff --git a/Dependencies/libvorbis/test/write_read.h b/Dependencies/libvorbis/test/write_read.h new file mode 100644 index 0000000..98f5bc6 --- /dev/null +++ b/Dependencies/libvorbis/test/write_read.h @@ -0,0 +1,28 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility functions for vorbis codec test suite. + last mod: $Id: util.c 13293 2007-07-24 00:09:47Z erikd $ + + ********************************************************************/ + +/* Write supplied data to an Ogg/Vorbis file with specified filename at + * specified sample rate. Assumes a single channel of audio. */ +void write_vorbis_data_or_die (const char *filename, int srate, float q, + const float * data, int count, int ch) ; + +/* Read given Ogg/Vorbis file into data specified data array. This + * function is basically the inverse of the one above. Again, assumes + * a single channel of audio. */ +void read_vorbis_data_or_die (const char *filename, int srate, + float * data, int count) ; + diff --git a/libvorbis-1.0.1/todo.txt b/Dependencies/libvorbis/todo.txt similarity index 89% rename from libvorbis-1.0.1/todo.txt rename to Dependencies/libvorbis/todo.txt index d0e1665..b0e1f93 100644 --- a/libvorbis-1.0.1/todo.txt +++ b/Dependencies/libvorbis/todo.txt @@ -1,4 +1,4 @@ -Development hit list for 1.0: +Open project list for further development: libvorbis: @@ -19,4 +19,4 @@ API changes: other: command line suite -'crashme' \ No newline at end of file +'crashme' diff --git a/Dependencies/libvorbis/vorbis-uninstalled.pc.in b/Dependencies/libvorbis/vorbis-uninstalled.pc.in new file mode 100644 index 0000000..aa70a01 --- /dev/null +++ b/Dependencies/libvorbis/vorbis-uninstalled.pc.in @@ -0,0 +1,14 @@ +# vorbis uninstalled pkg-config file + +prefix= +exec_prefix= +libdir=${pcfiledir}/lib +includedir=${pcfiledir}/include + +Name: vorbis +Description: vorbis is the primary Ogg Vorbis library (uninstalled) +Version: @VERSION@ +Requires: ogg +Conflicts: +Libs: @VORBIS_LIBS@ ${libdir}/libvorbis.la +Cflags: -I${includedir} diff --git a/libvorbis-1.0.1/vorbis.m4 b/Dependencies/libvorbis/vorbis.m4 similarity index 73% rename from libvorbis-1.0.1/vorbis.m4 rename to Dependencies/libvorbis/vorbis.m4 index d311a41..7b67c58 100644 --- a/libvorbis-1.0.1/vorbis.m4 +++ b/Dependencies/libvorbis/vorbis.m4 @@ -6,29 +6,35 @@ dnl XIPH_PATH_VORBIS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Test for libvorbis, and define VORBIS_CFLAGS and VORBIS_LIBS dnl -AC_DEFUN(XIPH_PATH_VORBIS, +AC_DEFUN([XIPH_PATH_VORBIS], [dnl dnl Get the cflags and libraries dnl -AC_ARG_WITH(vorbis,[ --with-vorbis=PFX Prefix where libvorbis is installed (optional)], vorbis_prefix="$withval", vorbis_prefix="") -AC_ARG_WITH(vorbis-libraries,[ --with-vorbis-libraries=DIR Directory where libvorbis library is installed (optional)], vorbis_libraries="$withval", vorbis_libraries="") -AC_ARG_WITH(vorbis-includes,[ --with-vorbis-includes=DIR Directory where libvorbis header files are installed (optional)], vorbis_includes="$withval", vorbis_includes="") -AC_ARG_ENABLE(vorbistest, [ --disable-vorbistest Do not try to compile and run a test Vorbis program],, enable_vorbistest=yes) +AC_ARG_WITH(vorbis,AC_HELP_STRING([--with-vorbis=PFX],[Prefix where libvorbis is installed (optional)]), vorbis_prefix="$withval", vorbis_prefix="") +AC_ARG_WITH(vorbis-libraries,AC_HELP_STRING([--with-vorbis-libraries=DIR],[Directory where libvorbis library is installed (optional)]), vorbis_libraries="$withval", vorbis_libraries="") +AC_ARG_WITH(vorbis-includes,AC_HELP_STRING([--with-vorbis-includes=DIR],[Directory where libvorbis header files are installed (optional)]), vorbis_includes="$withval", vorbis_includes="") +AC_ARG_ENABLE(vorbistest,AC_HELP_STRING([--disable-vorbistest],[Do not try to compile and run a test Vorbis program]),, enable_vorbistest=yes) if test "x$vorbis_libraries" != "x" ; then VORBIS_LIBS="-L$vorbis_libraries" + elif test "x$vorbis_prefix" = "xno" || test "x$vorbis_prefix" = "xyes" ; then + VORBIS_LIBS="" elif test "x$vorbis_prefix" != "x" ; then VORBIS_LIBS="-L$vorbis_prefix/lib" elif test "x$prefix" != "xNONE"; then VORBIS_LIBS="-L$prefix/lib" fi - VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm" + if test "x$vorbis_prefix" != "xno" ; then + VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm" + fi VORBISFILE_LIBS="-lvorbisfile" VORBISENC_LIBS="-lvorbisenc" if test "x$vorbis_includes" != "x" ; then VORBIS_CFLAGS="-I$vorbis_includes" + elif test "x$vorbis_prefix" = "xno" || test "x$vorbis_prefix" = "xyes" ; then + VORBIS_CFLAGS="" elif test "x$vorbis_prefix" != "x" ; then VORBIS_CFLAGS="-I$vorbis_prefix/include" elif test "x$prefix" != "xNONE"; then @@ -37,7 +43,12 @@ AC_ARG_ENABLE(vorbistest, [ --disable-vorbistest Do not try to compile an AC_MSG_CHECKING(for Vorbis) - no_vorbis="" + if test "x$vorbis_prefix" = "xno" ; then + no_vorbis="disabled" + enable_vorbistest="no" + else + no_vorbis="" + fi if test "x$enable_vorbistest" = "xyes" ; then @@ -78,9 +89,12 @@ int main () LIBS="$ac_save_LIBS" fi - if test "x$no_vorbis" = "x" ; then + if test "x$no_vorbis" = "xdisabled" ; then + AC_MSG_RESULT(no) + ifelse([$2], , :, [$2]) + elif test "x$no_vorbis" = "x" ; then AC_MSG_RESULT(yes) - ifelse([$1], , :, [$1]) + ifelse([$1], , :, [$1]) else AC_MSG_RESULT(no) if test -f conf.vorbistest ; then diff --git a/libvorbis-1.0.1/vorbis.pc.in b/Dependencies/libvorbis/vorbis.pc.in similarity index 100% rename from libvorbis-1.0.1/vorbis.pc.in rename to Dependencies/libvorbis/vorbis.pc.in diff --git a/Dependencies/libvorbis/vorbisenc-uninstalled.pc.in b/Dependencies/libvorbis/vorbisenc-uninstalled.pc.in new file mode 100644 index 0000000..4667d9c --- /dev/null +++ b/Dependencies/libvorbis/vorbisenc-uninstalled.pc.in @@ -0,0 +1,14 @@ +# vorbisenc uninstalled pkg-config file + +prefix= +exec_prefix= +libdir=${pcfiledir}/lib +includedir=${pcfiledir}/include + +Name: vorbisenc +Description: vorbisenc is a library that provides a convenient API for setting up an encoding environment using libvorbis (uninstalled) +Version: @VERSION@ +Requires: vorbis +Conflicts: +Libs: ${libdir}/libvorbisenc.la +Cflags: -I${includedir} diff --git a/libvorbis-1.0.1/vorbisenc.pc.in b/Dependencies/libvorbis/vorbisenc.pc.in similarity index 100% rename from libvorbis-1.0.1/vorbisenc.pc.in rename to Dependencies/libvorbis/vorbisenc.pc.in diff --git a/Dependencies/libvorbis/vorbisfile-uninstalled.pc.in b/Dependencies/libvorbis/vorbisfile-uninstalled.pc.in new file mode 100644 index 0000000..2e7e96d --- /dev/null +++ b/Dependencies/libvorbis/vorbisfile-uninstalled.pc.in @@ -0,0 +1,14 @@ +# vorbisfile uninstalled pkg-config file + +prefix= +exec_prefix= +libdir=${pcfiledir}/lib +includedir=${pcfiledir}/include + +Name: vorbisfile +Description: vorbisfile is a library that provides a convenient high-level API for decoding and basic manipulation of all Vorbis I audio streams (uninstalled) +Version: @VERSION@ +Requires: vorbis +Conflicts: +Libs: ${libdir}/libvorbisfile.la +Cflags: -I${includedir} diff --git a/libvorbis-1.0.1/vorbisfile.pc.in b/Dependencies/libvorbis/vorbisfile.pc.in similarity index 100% rename from libvorbis-1.0.1/vorbisfile.pc.in rename to Dependencies/libvorbis/vorbisfile.pc.in diff --git a/Dependencies/libvorbis/vq/16.vqs b/Dependencies/libvorbis/vq/16.vqs new file mode 100644 index 0000000..3d15f40 --- /dev/null +++ b/Dependencies/libvorbis/vq/16.vqs @@ -0,0 +1,74 @@ + +GO + +>_16c0_s noninterleaved +haux 16c0_s/resaux_0.vqd _16c0_s_single 0,64,2 10 + +:_p1_0 16c0_s/res_sub0_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 16c0_s/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 16c0_s/res_sub0_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 16c0_s/res_sub0_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 16c0_s/res_sub0_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 16c0_s/res_sub0_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 16c0_s/res_sub0_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 16c0_s/res_sub0_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 16c0_s/res_sub0_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 16c0_s/res_sub0_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 16c0_s/res_sub0_part9_pass0.vqd, 4, nonseq, 0 +- 315 +:_p9_1 16c0_s/res_sub0_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p9_2 16c0_s/res_sub0_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + +>_16c1s_s noninterleaved +haux 16c1_s/resaux_0.vqd _16c1_s_short 0,64,2 10 + +>_16c1_s noninterleaved +haux 16c1_s/resaux_1.vqd _16c1_s_long 0,64,2 10 + +:_p1_0 16c1_s/res_sub0_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 16c1_s/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 16c1_s/res_sub0_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 16c1_s/res_sub0_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 16c1_s/res_sub0_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 16c1_s/res_sub0_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 16c1_s/res_sub0_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 16c1_s/res_sub0_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 16c1_s/res_sub0_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 16c1_s/res_sub0_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 16c1_s/res_sub0_part9_pass0.vqd, 2, nonseq, 0 +- 315 630 945 1260 1575 1890 +:_p9_1 16c1_s/res_sub0_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p9_2 16c1_s/res_sub0_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + +>_16c2s_s noninterleaved +haux 16c2_s/resaux_0.vqd _16c2_s_short 0,64,2 10 +>_16c2_s noninterleaved +haux 16c2_s/resaux_1.vqd _16c2_s_long 0,64,2 10 + +:_p1_0 16c2_s/res_sub0_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 16c2_s/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 16c2_s/res_sub0_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 16c2_s/res_sub0_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 16c2_s/res_sub0_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 16c2_s/res_sub0_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 16c2_s/res_sub0_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 16c2_s/res_sub0_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 16c2_s/res_sub0_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 16c2_s/res_sub0_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 16c2_s/res_sub0_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 16c2_s/res_sub0_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 16c2_s/res_sub0_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 4655 5586 6517 7448 +:_p9_1 16c2_s/res_sub0_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 16c2_s/res_sub0_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + diff --git a/Dependencies/libvorbis/vq/16u.vqs b/Dependencies/libvorbis/vq/16u.vqs new file mode 100644 index 0000000..854de98 --- /dev/null +++ b/Dependencies/libvorbis/vq/16u.vqs @@ -0,0 +1,69 @@ + +GO + +>_16u0_ noninterleaved +haux 16u0/resaux_0.vqd _16u0__single 0,64,2 8 + +:_p1_0 16u0/res_sub0_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 16u0/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 16u0/res_sub0_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 16u0/res_sub0_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 16u0/res_sub0_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 16u0/res_sub0_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 16u0/res_sub0_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 16u0/res_sub0_part7_pass0.vqd, 4, nonseq, 0 +- 315 +:_p7_1 16u0/res_sub0_part7_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p7_2 16u0/res_sub0_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + + +>_16u1s_ noninterleaved +haux 16u1/resaux_0.vqd _16u1__short 0,64,2 10 +>_16u1_ noninterleaved +haux 16u1/resaux_1.vqd _16u1__long 0,64,2 10 + +:_p1_0 16u1/res_sub0_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 16u1/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 16u1/res_sub0_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 16u1/res_sub0_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 16u1/res_sub0_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 16u1/res_sub0_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p7_0 16u1/res_sub0_part7_pass0.vqd, 4, nonseq, 0 +- 11 +:_p7_1 16u1/res_sub0_part7_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p8_0 16u1/res_sub0_part8_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 +:_p8_1 16u1/res_sub0_part8_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p9_0 16u1/res_sub0_part9_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 1785 +:_p9_1 16u1/res_sub0_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p9_2 16u1/res_sub0_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + +>_16u2s noninterleaved +haux 16u2/resaux_0.vqd _16u2__short 0,16,2 10 + +>_16u2 noninterleaved +haux 16u2/resaux_1.vqd _16u2__long 0,64,2 10 + +:_p1_0 16u2/res_sub0_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 16u2/res_sub0_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 16u2/res_sub0_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 16u2/res_sub0_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 16u2/res_sub0_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 16u2/res_sub0_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 16u2/res_sub0_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 16u2/res_sub0_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 16u2/res_sub0_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 16u2/res_sub0_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 16u2/res_sub0_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 16u2/res_sub0_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 16u2/res_sub0_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 4655 5586 6517 +:_p9_1 16u2/res_sub0_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 16u2/res_sub0_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + diff --git a/Dependencies/libvorbis/vq/44c-1.vqs b/Dependencies/libvorbis/vq/44c-1.vqs new file mode 100644 index 0000000..ff30d65 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c-1.vqs @@ -0,0 +1,63 @@ +GO + +>_44cn1s_s noninterleaved +haux 44c-1_s/resaux_0.vqd _44cn1_s_short 0,16,2 9 + +>_44cn1_s noninterleaved +haux 44c-1_s/resaux_1.vqd _44cn1_s_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c-1_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c-1_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c-1_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c-1_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c-1_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p6_0 44c-1_s/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c-1_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c-1_s/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c-1_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c-1_s/res_part8_pass0.vqd, 4, nonseq, 0 +- 221 442 +:_p8_1 44c-1_s/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c-1_s/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + + +>_44cn1s_sm noninterleaved +haux 44c-1_sm/resaux_0.vqd _44cn1_sm_short 0,16,2 9 + +>_44cn1_sm noninterleaved +haux 44c-1_sm/resaux_1.vqd _44cn1_sm_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c-1_sm/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c-1_sm/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c-1_sm/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c-1_sm/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c-1_sm/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p6_0 44c-1_sm/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c-1_sm/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c-1_sm/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c-1_sm/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c-1_sm/res_part8_pass0.vqd, 2, nonseq, 0 +- 221 442 663 884 +:_p8_1 44c-1_sm/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c-1_sm/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + diff --git a/Dependencies/libvorbis/vq/44c0.vqs b/Dependencies/libvorbis/vq/44c0.vqs new file mode 100644 index 0000000..f650f8f --- /dev/null +++ b/Dependencies/libvorbis/vq/44c0.vqs @@ -0,0 +1,65 @@ +GO + +>_44c0s_s noninterleaved +haux 44c0_s/resaux_0.vqd _44c0_s_short 0,16,2 9 + +>_44c0_s noninterleaved +haux 44c0_s/resaux_1.vqd _44c0_s_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c0_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c0_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c0_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c0_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c0_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p6_0 44c0_s/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c0_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c0_s/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c0_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c0_s/res_part8_pass0.vqd, 4, nonseq, 0 +- 221 442 +:_p8_1 44c0_s/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c0_s/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + + +>_44c0s_sm noninterleaved +haux 44c0_sm/resaux_0.vqd _44c0_sm_short 0,16,2 9 + +>_44c0_sm noninterleaved +haux 44c0_sm/resaux_1.vqd _44c0_sm_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c0_sm/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c0_sm/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c0_sm/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c0_sm/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c0_sm/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p6_0 44c0_sm/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c0_sm/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c0_sm/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c0_sm/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c0_sm/res_part8_pass0.vqd, 2, nonseq, 0 +- 221 442 663 884 +:_p8_1 44c0_sm/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c0_sm/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + diff --git a/Dependencies/libvorbis/vq/44c1.vqs b/Dependencies/libvorbis/vq/44c1.vqs new file mode 100644 index 0000000..c21a6b3 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c1.vqs @@ -0,0 +1,66 @@ + +GO + +>_44c1s_s noninterleaved +haux 44c1_s/resaux_0.vqd _44c1_s_short 0,16,2 9 + +>_44c1_s noninterleaved +haux 44c1_s/resaux_1.vqd _44c1_s_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c1_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c1_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c1_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c1_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c1_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p6_0 44c1_s/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c1_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c1_s/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c1_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c1_s/res_part8_pass0.vqd, 2, nonseq, 0 +- 221 442 663 884 1105 1326 +:_p8_1 44c1_s/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c1_s/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + + +>_44c1s_sm noninterleaved +haux 44c1_sm/resaux_0.vqd _44c1_sm_short 0,16,2 9 + +>_44c1_sm noninterleaved +haux 44c1_sm/resaux_1.vqd _44c1_sm_long 0,64,2 9 + +# 0 1 2 2 4 8 16 32 + +# 0 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 +# 1 . . . +# 2 . . . +# 4 . . . . . . + +:_p1_0 44c1_sm/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c1_sm/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c1_sm/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c1_sm/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c1_sm/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p6_0 44c1_sm/res_part6_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p6_1 44c1_sm/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p7_0 44c1_sm/res_part7_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p7_1 44c1_sm/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p8_0 44c1_sm/res_part8_pass0.vqd, 2, nonseq, 0 +- 221 442 663 884 1105 1326 +:_p8_1 44c1_sm/res_part8_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p8_2 44c1_sm/res_part8_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + diff --git a/Dependencies/libvorbis/vq/44c2.vqs b/Dependencies/libvorbis/vq/44c2.vqs new file mode 100644 index 0000000..9fdbd03 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c2.vqs @@ -0,0 +1,37 @@ +GO + +>_44c2s_s noninterleaved +haux 44c2_s/resaux_0.vqd _44c2_s_short 0,16,2 10 + +>_44c2_s noninterleaved +haux 44c2_s/resaux_1.vqd _44c2_s_long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 8 16 32 + +# 0 99 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44c2_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c2_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c2_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44c2_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c2_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44c2_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 44c2_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 44c2_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c2_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 44c2_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 44c2_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 221 442 663 884 1105 1326 +:_p9_1 44c2_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 +:_p9_2 44c2_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + + \ No newline at end of file diff --git a/Dependencies/libvorbis/vq/44c3.vqs b/Dependencies/libvorbis/vq/44c3.vqs new file mode 100644 index 0000000..57a1317 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c3.vqs @@ -0,0 +1,36 @@ + +GO + +>_44c3s_s noninterleaved +haux 44c3_s/resaux_0.vqd _44c3_s_short 0,16,2 10 + +>_44c3_s noninterleaved +haux 44c3_s/resaux_1.vqd _44c3_s_long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 8 16 32 + +# 0 99 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44c3_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c3_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c3_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44c3_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c3_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44c3_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 44c3_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 44c3_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c3_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 44c3_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 44c3_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 +:_p9_1 44c3_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p9_2 44c3_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 diff --git a/Dependencies/libvorbis/vq/44c4.vqs b/Dependencies/libvorbis/vq/44c4.vqs new file mode 100644 index 0000000..82a36e1 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c4.vqs @@ -0,0 +1,36 @@ + +GO + +>_44c4s_s noninterleaved +haux 44c4_s/resaux_0.vqd _44c4_s_short 0,16,2 10 + +>_44c4_s noninterleaved +haux 44c4_s/resaux_1.vqd _44c4_s_long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 8 16 32 + +# 0 99 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44c4_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c4_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c4_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44c4_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c4_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44c4_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 44c4_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 44c4_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c4_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 44c4_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 44c4_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 315 630 945 1260 1575 1890 +:_p9_1 44c4_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p9_2 44c4_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 diff --git a/Dependencies/libvorbis/vq/44c5.vqs b/Dependencies/libvorbis/vq/44c5.vqs new file mode 100644 index 0000000..9790843 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c5.vqs @@ -0,0 +1,37 @@ + +GO + +>_44c5s_s noninterleaved +haux 44c5_s/resaux_0.vqd _44c5_s_short 0,16,2 10 + +>_44c5_s noninterleaved +haux 44c5_s/resaux_1.vqd _44c5_s_long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 8 16 32 + +# 0 99 0 99 4 8 16 32 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44c5_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 44c5_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c5_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44c5_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 44c5_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44c5_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 44c5_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 44c5_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c5_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 44c5_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 44c5_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 357 714 1071 1428 1785 2142 2499 +:_p9_1 44c5_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 168 +:_p9_2 44c5_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + diff --git a/Dependencies/libvorbis/vq/44c6.vqs b/Dependencies/libvorbis/vq/44c6.vqs new file mode 100644 index 0000000..f420dd0 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c6.vqs @@ -0,0 +1,37 @@ +GO + +>_44c6s_s noninterleaved +haux 44c6_s/resaux_0.vqd _44c6_s_short 0,16,2 10 + +>_44c6_s noninterleaved +haux 44c6_s/resaux_1.vqd _44c6_s_long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 1 2 3 4 8 16 71 157 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44c6_s/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44c6_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c6_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c6_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44c6_s/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44c6_s/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44c6_s/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44c6_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44c6_s/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44c6_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c6_s/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44c6_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44c6_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 637 1274 1911 2548 3185 3822 +:_p9_1 44c6_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 +:_p9_2 44c6_s/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/44c7.vqs b/Dependencies/libvorbis/vq/44c7.vqs new file mode 100644 index 0000000..088d81d --- /dev/null +++ b/Dependencies/libvorbis/vq/44c7.vqs @@ -0,0 +1,38 @@ + +GO + +>_44c7s_s noninterleaved +haux 44c7_s/resaux_0.vqd _44c7_s_short 0,16,2 10 + +>_44c7_s noninterleaved +haux 44c7_s/resaux_1.vqd _44c7_s_long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 1 2 3 4 8 16 71 157 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44c7_s/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44c7_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c7_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c7_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44c7_s/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44c7_s/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44c7_s/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44c7_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44c7_s/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44c7_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c7_s/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44c7_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44c7_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 637 1274 1911 2548 3185 3822 +:_p9_1 44c7_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 +:_p9_2 44c7_s/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/44c8.vqs b/Dependencies/libvorbis/vq/44c8.vqs new file mode 100644 index 0000000..ce5bdbe --- /dev/null +++ b/Dependencies/libvorbis/vq/44c8.vqs @@ -0,0 +1,39 @@ + +GO + +>_44c8s_s noninterleaved +haux 44c8_s/resaux_0.vqd _44c8_s_short 0,16,2 10 + +>_44c8_s noninterleaved +haux44c8_s/resaux_1.vqd _44c8_s_long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 1 2 3 4 8 16 71 157 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44c8_s/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44c8_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c8_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c8_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44c8_s/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44c8_s/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44c8_s/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44c8_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44c8_s/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44c8_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c8_s/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44c8_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44c8_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 4655 5586 6517 7448 +:_p9_1 44c8_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 44c8_s/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + diff --git a/Dependencies/libvorbis/vq/44c9.vqs b/Dependencies/libvorbis/vq/44c9.vqs new file mode 100644 index 0000000..1c54786 --- /dev/null +++ b/Dependencies/libvorbis/vq/44c9.vqs @@ -0,0 +1,37 @@ +GO + +>_44c9s_s noninterleaved +haux 44c9_s/resaux_0.vqd _44c9_s_short 0,16,2 10 + +>_44c9_s noninterleaved +haux 44c9_s/resaux_1.vqd _44c9_s_long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 1 2 3 4 8 16 71 157 + + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44c9_s/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44c9_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44c9_s/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44c9_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44c9_s/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44c9_s/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44c9_s/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44c9_s/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44c9_s/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44c9_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44c9_s/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44c9_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44c9_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 4655 5586 6517 7448 8379 +:_p9_1 44c9_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 44c9_s/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/44p-1.vqs b/Dependencies/libvorbis/vq/44p-1.vqs new file mode 100644 index 0000000..02d26fb --- /dev/null +++ b/Dependencies/libvorbis/vq/44p-1.vqs @@ -0,0 +1,49 @@ +GO + +>_44pn1 noninterleaved +haux 44pn1/resaux_0.vqd _44pn1_short 0,80,2 7 +haux 44pn1/resaux_1.vqd _44pn1_long 0,300,2 7 +haux 44pn1/resaux_2.vqd _44pn1_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 7 17 31 + +# 0 99 7 17 31 + + +# 0 1 2 3 4 5 6 +# 1 . . . . . +# 2 . . . . . . +# 4 . . + +:_p1_0 44pn1/res_sub0_part1_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p2_0 44pn1/res_sub0_part2_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p2_1 44pn1/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p3_0 44pn1/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p3_1 44pn1/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p4_0 44pn1/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p4_1 44pn1/res_sub0_part4_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p5_0 44pn1/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p5_1 44pn1/res_sub0_part5_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p4_1 :_p5_2 + +:_p6_0 44pn1/res_sub0_part6_pass0.vqd, 5, nonseq, 0 +- 625 +:_p6_1 44pn1/res_sub0_part6_pass1.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p6_2 44pn1/res_sub0_part6_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44pn1/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44pn1/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44pn1/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p0.vqs b/Dependencies/libvorbis/vq/44p0.vqs new file mode 100644 index 0000000..16479ba --- /dev/null +++ b/Dependencies/libvorbis/vq/44p0.vqs @@ -0,0 +1,49 @@ +GO + +>_44p0 noninterleaved +haux 44p0/resaux_0.vqd _44p0_short 0,42,2 7 +haux 44p0/resaux_1.vqd _44p0_long 0,170,2 7 +haux 44p0/resaux_2.vqd _44p0_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 7 17 31 + +# 0 99 7 17 31 + + +# 0 1 2 3 4 5 6 +# 1 . . . . . +# 2 . . . . . . +# 4 . . + +:_p1_0 44p0/res_sub0_part1_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p2_0 44p0/res_sub0_part2_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p2_1 44p0/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p3_0 44p0/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p3_1 44p0/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p4_0 44p0/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p4_1 44p0/res_sub0_part4_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p5_0 44p0/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p5_1 44p0/res_sub0_part5_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p4_1 :_p5_2 + +:_p6_0 44p0/res_sub0_part6_pass0.vqd, 5, nonseq, 0 +- 625 +:_p6_1 44p0/res_sub0_part6_pass1.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p6_2 44p0/res_sub0_part6_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p0/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p0/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p0/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p1.vqs b/Dependencies/libvorbis/vq/44p1.vqs new file mode 100644 index 0000000..74352c3 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p1.vqs @@ -0,0 +1,49 @@ +GO + +>_44p1 noninterleaved +haux 44p1/resaux_0.vqd _44p1_short 0,42,2 7 +haux 44p1/resaux_1.vqd _44p1_long 0,170,2 7 +haux 44p1/resaux_2.vqd _44p1_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 7 17 31 + +# 0 99 7 17 31 + + +# 0 1 2 3 4 5 6 +# 1 . . . . . +# 2 . . . . . . +# 4 . . + +:_p1_0 44p1/res_sub0_part1_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p2_0 44p1/res_sub0_part2_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p2_1 44p1/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p3_0 44p1/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p3_1 44p1/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p4_0 44p1/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p4_1 44p1/res_sub0_part4_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p5_0 44p1/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p5_1 44p1/res_sub0_part5_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p4_1 :_p5_2 + +:_p6_0 44p1/res_sub0_part6_pass0.vqd, 5, nonseq, 0 +- 625 +:_p6_1 44p1/res_sub0_part6_pass1.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p6_2 44p1/res_sub0_part6_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p1/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p1/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p1/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p2.vqs b/Dependencies/libvorbis/vq/44p2.vqs new file mode 100644 index 0000000..7eabbab --- /dev/null +++ b/Dependencies/libvorbis/vq/44p2.vqs @@ -0,0 +1,52 @@ +GO + +>_44p2 noninterleaved +haux 44p2/resaux_0.vqd _44p2_short 0,42,2 8 +haux 44p2/resaux_1.vqd _44p2_long 0,170,2 8 +haux 44p2/resaux_2.vqd _44p2_lfe 0,2,2 2 + +#iter 0 + +# 0 1 1 2 7 17 31 + +# 0 99 99 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p2/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p2/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p2/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p2/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p2/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p2/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p2/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p2/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p2/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p2/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 + +:_p7_0 44p2/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p2/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p2/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p2/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p2/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p2/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p2/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p3.vqs b/Dependencies/libvorbis/vq/44p3.vqs new file mode 100644 index 0000000..b1c66a6 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p3.vqs @@ -0,0 +1,52 @@ +GO + +>_44p3 noninterleaved +haux 44p3/resaux_0.vqd _44p3_short 0,42,2 8 +haux 44p3/resaux_1.vqd _44p3_long 0,170,2 8 +haux 44p3/resaux_2.vqd _44p3_lfe 0,2,2 2 + +#iter 0 + +# 0 1 1 2 7 17 31 + +# 0 99 99 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p3/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p3/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p3/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p3/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p3/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p3/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p3/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p3/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p3/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p3/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p3/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p3/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p3/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p3/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p3/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p3/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p3/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p4.vqs b/Dependencies/libvorbis/vq/44p4.vqs new file mode 100644 index 0000000..4b70436 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p4.vqs @@ -0,0 +1,52 @@ +GO + +>_44p4 noninterleaved +haux 44p4/resaux_0.vqd _44p4_short 0,42,2 8 +haux 44p4/resaux_1.vqd _44p4_long 0,170,2 8 +haux 44p4/resaux_2.vqd _44p4_lfe 0,2,2 2 + +#iter 0 + +# 0 1 1 2 7 17 31 + +# 0 99 99 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p4/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p4/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p4/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p4/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p4/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p4/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p4/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p4/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p4/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p4/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p4/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p4/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p4/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p4/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p4/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p4/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p4/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p7_2/3 for l1_1/2 diff --git a/Dependencies/libvorbis/vq/44p5.vqs b/Dependencies/libvorbis/vq/44p5.vqs new file mode 100644 index 0000000..0372321 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p5.vqs @@ -0,0 +1,52 @@ +GO + +>_44p5 noninterleaved +haux 44p5/resaux_0.vqd _44p5_short 0,42,2 8 +haux 44p5/resaux_1.vqd _44p5_long 0,170,2 8 +haux 44p5/resaux_2.vqd _44p5_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 4 7 17 31 + +# 1 2 4 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p5/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p5/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p5/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p5/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p5/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p5/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p5/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p5/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p5/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p5/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p5/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p5/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p5/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p5/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p5/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p5/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p5/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p6_2/3 for l1_2/3 diff --git a/Dependencies/libvorbis/vq/44p6.vqs b/Dependencies/libvorbis/vq/44p6.vqs new file mode 100644 index 0000000..9daad60 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p6.vqs @@ -0,0 +1,52 @@ +GO + +>_44p6 noninterleaved +haux 44p6/resaux_0.vqd _44p6_short 0,42,2 8 +haux 44p6/resaux_1.vqd _44p6_long 0,170,2 8 +haux 44p6/resaux_2.vqd _44p6_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 4 7 17 31 + +# 1 2 4 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p6/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p6/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p6/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p6/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p6/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p6/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p6/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p6/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p6/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p6/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p6/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p6/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p6/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p6/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p6/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p6/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p6/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 +# reuse p6_2/3 for l1_2/3 diff --git a/Dependencies/libvorbis/vq/44p7.vqs b/Dependencies/libvorbis/vq/44p7.vqs new file mode 100644 index 0000000..9ec5d02 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p7.vqs @@ -0,0 +1,52 @@ +GO + +>_44p7 noninterleaved +haux 44p7/resaux_0.vqd _44p7_short 0,42,2 8 +haux 44p7/resaux_1.vqd _44p7_long 0,170,2 8 +haux 44p7/resaux_2.vqd _44p7_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 4 7 17 31 + +# 1 2 4 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p7/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p7/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p7/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p7/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p7/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p7/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p7/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p7/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p7/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p7/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p7/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 1875 +:_p7_1 44p7/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 +:_p7_2 44p7/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p7/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p7/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p7/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p7/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 1350 +# reuse p6_2/3 for l1_2/3 diff --git a/Dependencies/libvorbis/vq/44p8.vqs b/Dependencies/libvorbis/vq/44p8.vqs new file mode 100644 index 0000000..a75af84 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p8.vqs @@ -0,0 +1,52 @@ +GO + +>_44p8 noninterleaved +haux 44p8/resaux_0.vqd _44p8_short 0,42,2 8 +haux 44p8/resaux_1.vqd _44p8_long 0,170,2 8 +haux 44p8/resaux_2.vqd _44p8_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 4 7 17 31 + +# 1 2 4 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p8/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p8/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p8/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p8/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p8/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p8/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p8/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p8/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p8/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p8/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p8/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 3125 +:_p7_1 44p8/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 1250 +:_p7_2 44p8/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p8/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p8/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p8/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p8/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 1350 +# reuse p6_2/3 for l1_2/3 diff --git a/Dependencies/libvorbis/vq/44p9.vqs b/Dependencies/libvorbis/vq/44p9.vqs new file mode 100644 index 0000000..4c00780 --- /dev/null +++ b/Dependencies/libvorbis/vq/44p9.vqs @@ -0,0 +1,52 @@ +GO + +>_44p9 noninterleaved +haux 4pp9/resaux_0.vqd _44p9_short 0,42,2 8 +haux 4pp9/resaux_1.vqd _44p9_long 0,170,2 8 +haux 4pp9/resaux_2.vqd _44p9_lfe 0,2,2 2 + +#iter 0 + +# 0 1 2 4 7 17 31 + +# 1 2 4 7 17 31 + + +# 0 1 2 3 4 5 6 7 +# 1 . . . . . +# 2 . . . . . . +# 4 . . . +# 8 . + +:_p1_0 44p9/res_sub0_part1_pass2.vqd, 5, nonseq cull, 0 +- 1 +:_p2_0 44p9/res_sub0_part2_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p3_0 44p9/res_sub0_part3_pass0.vqd, 5, nonseq cull, 0 +- 3 +:_p3_1 44p9/res_sub0_part3_pass1.vqd, 5, nonseq cull, 0 +- 1 + +:_p4_0 44p9/res_sub0_part4_pass0.vqd, 5, nonseq cull, 0 +- 5 +:_p4_1 44p9/res_sub0_part4_pass1.vqd, 5, nonseq cull, 0 +- 1 2 + +:_p5_0 44p9/res_sub0_part5_pass0.vqd, 5, nonseq cull, 0 +- 7 14 +:_p5_1 44p9/res_sub0_part5_pass1.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p6_0 44p9/res_sub0_part6_pass0.vqd, 5, nonseq cull, 0 +- 21 +:_p6_1 44p9/res_sub0_part6_pass1.vqd, 5, nonseq cull, 0 +- 7 +# reuse p5_1 :_p6_2 44p3/res_sub0_part6_pass2.vqd, 1, nonseq cull, 0 +- 1 2 3 + +:_p7_0 44p9/res_sub0_part7_pass0.vqd, 5, nonseq, 0 +- 3125 6250 +:_p7_1 44p9/res_sub0_part7_pass1.vqd, 5, nonseq, 0 +- 625 1250 +:_p7_2 44p9/res_sub0_part7_pass2.vqd, 1, nonseq, 0 +- 25 50 75 100 125 150 175 200 225 250 275 300 +:_p7_3 44p9/res_sub0_part7_pass3.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 + +# 32 + +# 0 0 +# +# 0 1 +# 1 . . +# 2 . . +# 4 . + +:_l0_0 44p9/res_sub1_part0_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_l0_1 44p9/res_sub1_part0_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_l1_0 44p9/res_sub1_part1_pass0.vqd, 2, nonseq, 0 +- 625 1250 +# reuse p6_2/3 for l1_2/3 diff --git a/Dependencies/libvorbis/vq/44u0.vqs b/Dependencies/libvorbis/vq/44u0.vqs new file mode 100644 index 0000000..5bc3f60 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u0.vqs @@ -0,0 +1,33 @@ +GO + +>_44u0_ noninterleaved +haux 44u0/resaux_0.vqd _44u0__short 0,16,2 8 + +>_44u0_ noninterleaved +haux 44u0/resaux_1.vqd _44u0__long 0,64,2 8 + +#iter 0 + + + +# 0 1 1 2 2 4 32 + +# 25 0 45 0 0 0 0 +# +# 0 1 2 3 4 5 6 7 +# 1 . . +# 2 . . +# 4 . . . . . . + +:_p1_0 44u0/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u0/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u0/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u0/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u0/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 44u0/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u0/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u0/res_part7_pass0.vqd, 4, nonseq, 0 +- 169 338 +:_p7_1 44u0/res_part7_pass1.vqd, 2, nonseq, 0 +- 13 26 39 52 65 78 +:_p7_2 44u0/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 + diff --git a/Dependencies/libvorbis/vq/44u1.vqs b/Dependencies/libvorbis/vq/44u1.vqs new file mode 100644 index 0000000..ed19dc6 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u1.vqs @@ -0,0 +1,33 @@ +GO + +>_44u1_ noninterleaved +haux 44u1/resaux_0.vqd _44u1__short 0,16,2 8 + +>_44u1_ noninterleaved +haux 44u1/resaux_1.vqd _44u1__long 0,64,2 8 + +#iter 0 + + + +# 0 1 1 2 2 4 32 + +# 25 0 45 0 0 0 0 +# +# 0 1 2 3 4 5 6 7 +# 1 . . +# 2 . . +# 4 . . . . . . + +:_p1_0 44u1/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u1/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u1/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u1/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u1/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 44u1/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u1/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u1/res_part7_pass0.vqd, 2, nonseq, 0 +- 169 338 507 +:_p7_1 44u1/res_part7_pass1.vqd, 2, nonseq, 0 +- 13 26 39 52 65 78 +:_p7_2 44u1/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 + diff --git a/Dependencies/libvorbis/vq/44u2.vqs b/Dependencies/libvorbis/vq/44u2.vqs new file mode 100644 index 0000000..314461e --- /dev/null +++ b/Dependencies/libvorbis/vq/44u2.vqs @@ -0,0 +1,32 @@ +GO + +>_44u2_ noninterleaved +haux 44u2/resaux_0.vqd _44u2__short 0,16,2 8 + +>_44u2_ noninterleaved +haux 44u2/resaux_1.vqd _44u2__long 0,64,2 8 + +#iter 0 + + + +# 0 1 1 2 2 4 32 + +# 25 0 45 0 0 0 0 +# +# 0 1 2 3 4 5 6 7 +# 1 . . +# 2 . . +# 4 . . . . . . + +:_p1_0 44u2/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u2/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u2/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u2/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u2/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 44u2/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u2/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u2/res_part7_pass0.vqd, 2, nonseq, 0 +- 169 338 507 676 +:_p7_1 44u2/res_part7_pass1.vqd, 2, nonseq, 0 +- 13 26 39 52 65 78 +:_p7_2 44u2/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 diff --git a/Dependencies/libvorbis/vq/44u3.vqs b/Dependencies/libvorbis/vq/44u3.vqs new file mode 100644 index 0000000..c882109 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u3.vqs @@ -0,0 +1,33 @@ + +GO + +>_44u3_ noninterleaved +haux 44u3/resaux_0.vqd _44u3__short 0,16,2 8 + +>_44u3_ noninterleaved +haux 44u3/resaux_1.vqd _44u3__long 0,64,2 8 + +#iter 0 + + + +# 0 1 1 2 2 4 32 + +# 25 0 45 0 0 0 0 +# +# 0 1 2 3 4 5 6 7 +# 1 . . +# 2 . . +# 4 . . . . . . + +:_p1_0 44u3/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u3/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u3/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u3/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u3/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 44u3/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u3/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u3/res_part7_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 +:_p7_1 44u3/res_part7_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p7_2 44u3/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 diff --git a/Dependencies/libvorbis/vq/44u4.vqs b/Dependencies/libvorbis/vq/44u4.vqs new file mode 100644 index 0000000..cb4d9ba --- /dev/null +++ b/Dependencies/libvorbis/vq/44u4.vqs @@ -0,0 +1,33 @@ + +GO + +>_44u4_ noninterleaved +haux 44u4/resaux_0.vqd _44u4__short 0,16,2 8 + +>_44u4_ noninterleaved +haux 44u4/resaux_1.vqd _44u4__long 0,64,2 8 + +#iter 0 + + + +# 0 1 1 2 2 4 32 + +# 25 0 45 0 0 0 0 +# +# 0 1 2 3 4 5 6 7 +# 1 . . +# 2 . . +# 4 . . . . . . + +:_p1_0 44u4/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u4/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u4/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u4/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u4/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 44u4/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u4/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u4/res_part7_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 +:_p7_1 44u4/res_part7_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p7_2 44u4/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 diff --git a/Dependencies/libvorbis/vq/44u5.vqs b/Dependencies/libvorbis/vq/44u5.vqs new file mode 100644 index 0000000..a3c175d --- /dev/null +++ b/Dependencies/libvorbis/vq/44u5.vqs @@ -0,0 +1,35 @@ + +GO + +>_44u5_ noninterleaved +haux 44u5/resaux_0.vqd _44u5__short 0,16,2 10 + +>_44u5_ noninterleaved +haux 44u5/resaux_1.vqd _44u5__long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 4 16 60 + +# 30 0 50 0 80 0 0 0 +# +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44u5/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u5/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u5/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u5/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u5/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44u5/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p7_0 44u5/res_part7_pass0.vqd, 4, nonseq, 0 +- 11 +:_p7_1 44u5/res_part7_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p8_0 44u5/res_part8_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 +:_p8_1 44u5/res_part8_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p9_0 44u5/res_part9_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 +:_p9_1 44u5/res_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p9_2 44u5/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 diff --git a/Dependencies/libvorbis/vq/44u6.vqs b/Dependencies/libvorbis/vq/44u6.vqs new file mode 100644 index 0000000..ca8b7b1 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u6.vqs @@ -0,0 +1,35 @@ + +GO + +>_44u6_ noninterleaved +haux 44u6/resaux_0.vqd _44u6__short 0,16,2 10 + +>_44u6_ noninterleaved +haux 44u6/resaux_1.vqd _44u6__long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 4 16 60 + +# 30 0 50 0 80 0 0 0 +# +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44u6/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u6/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u6/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u6/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u6/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44u6/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p7_0 44u6/res_part7_pass0.vqd, 4, nonseq, 0 +- 11 +:_p7_1 44u6/res_part7_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p8_0 44u6/res_part8_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 +:_p8_1 44u6/res_part8_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p9_0 44u6/res_part9_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 1785 +:_p9_1 44u6/res_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p9_2 44u6/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 diff --git a/Dependencies/libvorbis/vq/44u7.vqs b/Dependencies/libvorbis/vq/44u7.vqs new file mode 100644 index 0000000..2efe5aa --- /dev/null +++ b/Dependencies/libvorbis/vq/44u7.vqs @@ -0,0 +1,34 @@ +GO + +>_44u7_ noninterleaved +haux 44u7/resaux_0.vqd _44u7__short 0,16,2 10 + +>_44u7_ noninterleaved +haux 44u7/resaux_1.vqd _44u7__long 0,64,2 10 + +#iter 0 + +# 0 1 1 2 2 4 4 16 60 + +# 30 0 50 0 80 0 0 0 +# +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . +# 2 . . . +# 4 . . . . . . . + +:_p1_0 44u7/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u7/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 44u7/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 44u7/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 44u7/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 44u7/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p7_0 44u7/res_part7_pass0.vqd, 4, nonseq, 0 +- 11 +:_p7_1 44u7/res_part7_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p8_0 44u7/res_part8_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 +:_p8_1 44u7/res_part8_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p9_0 44u7/res_part9_pass0.vqd, 2, nonseq, 0 +- 637 1274 1911 2548 3185 +:_p9_1 44u7/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 +:_p9_2 44u7/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/44u8.vqs b/Dependencies/libvorbis/vq/44u8.vqs new file mode 100644 index 0000000..ecedb09 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u8.vqs @@ -0,0 +1,35 @@ +GO + +>_44u8s noninterleaved +haux 44u8/resaux_0.vqd _44u8__short 0,16,2 10 + +>_44u8 noninterleaved +haux 44u8/resaux_1.vqd _44u8__long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44u8/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u8/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44u8/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44u8/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44u8/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44u8/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44u8/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u8/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u8/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44u8/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44u8/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44u8/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44u8/res_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 +:_p9_1 44u8/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 44u8/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/44u9.vqs b/Dependencies/libvorbis/vq/44u9.vqs new file mode 100644 index 0000000..42a3877 --- /dev/null +++ b/Dependencies/libvorbis/vq/44u9.vqs @@ -0,0 +1,36 @@ + +GO + +>_44u9s noninterleaved +haux 44u9/resaux_0.vqd _44u9__short 0,16,2 10 + +>_44u9 noninterleaved +haux 44u9/resaux_1.vqd _44u9__long 0,64,2 10 + + +# 0 1 2 4 8 16 32 71 157 + +# 0 1 2 3 4 5 6 7 8 9 +# 1 . . . . . +# 2 . . . . . +# 4 . . . . . + +:_p1_0 44u9/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 44u9/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 44u9/res_part3_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p4_0 44u9/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + +:_p5_0 44u9/res_part5_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p5_1 44u9/res_part5_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p6_0 44u9/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 44u9/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 44u9/res_part7_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 66 +:_p7_1 44u9/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 44u9/res_part8_pass0.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p8_1 44u9/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 9 10 + +:_p9_0 44u9/res_part9_pass0.vqd, 2, nonseq, 0 +- 931 1862 2793 3724 4655 5586 6517 +:_p9_1 44u9/res_part9_pass1.vqd, 2, nonseq, 0 +- 49 98 147 196 245 294 343 392 441 +:_p9_2 44u9/res_part9_pass2.vqd, 1, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 diff --git a/Dependencies/libvorbis/vq/8.vqs b/Dependencies/libvorbis/vq/8.vqs new file mode 100644 index 0000000..517a589 --- /dev/null +++ b/Dependencies/libvorbis/vq/8.vqs @@ -0,0 +1,43 @@ +GO + +>_8c0_s noninterleaved +haux 8c0_s/resaux_0.vqd _8c0_s_single 0,64,2 10 + +:_p1_0 8c0_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 8c0_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 8c0_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 8c0_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 8c0_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 8c0_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 8c0_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 8c0_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 8c0_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 8c0_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 8c0_s/res_part9_pass0.vqd, 4, nonseq, 0 +- 315 +:_p9_1 8c0_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p9_2 8c0_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + +>_8c1_s noninterleaved +haux 8c1_s/resaux_0.vqd _8c1_s_single 0,64,2 10 + +:_p1_0 8c1_s/res_part1_pass2.vqd, 8, nonseq cull, 0 +- 1 +:_p2_0 8c1_s/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p3_0 8c1_s/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 8c1_s/res_part4_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p5_0 8c1_s/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 8c1_s/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 6 7 8 + + +:_p7_0 8c1_s/res_part7_pass0.vqd, 4, nonseq cull, 0 +- 11 +:_p7_1 8c1_s/res_part7_pass1.vqd, 2, nonseq cull, 0 +- 1 2 3 4 5 + +:_p8_0 8c1_s/res_part8_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p8_1 8c1_s/res_part8_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p9_0 8c1_s/res_part9_pass0.vqd, 2, nonseq, 0 +- 315 630 945 1260 1575 1890 +:_p9_1 8c1_s/res_part9_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p9_2 8c1_s/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 diff --git a/Dependencies/libvorbis/vq/8u.vqs b/Dependencies/libvorbis/vq/8u.vqs new file mode 100644 index 0000000..0ed0ec8 --- /dev/null +++ b/Dependencies/libvorbis/vq/8u.vqs @@ -0,0 +1,41 @@ + +GO + +>_8u0_ noninterleaved +haux 8u0/resaux_0.vqd _8u0__single 0,64,2 8 + + +:_p1_0 8u0/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 8u0/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 8u0/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 8u0/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 8u0/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p6_0 8u0/res_part6_pass0.vqd, 2, nonseq cull, 0 +- 5 10 15 20 25 30 +:_p6_1 8u0/res_part6_pass1.vqd, 2, nonseq cull, 0 +- 1 2 + +:_p7_0 8u0/res_part7_pass0.vqd, 4, nonseq, 0 +- 315 +:_p7_1 8u0/res_part7_pass1.vqd, 2, nonseq, 0 +- 21 42 63 84 105 126 147 +:_p7_2 8u0/res_part7_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 9 10 + + +>_8u1_ noninterleaved +haux 8u1/resaux_0.vqd _8u1__single 0,64,2 10 + +:_p1_0 8u1/res_part1_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p2_0 8u1/res_part2_pass2.vqd, 4, nonseq cull, 0 +- 1 +:_p3_0 8u1/res_part3_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p4_0 8u1/res_part4_pass2.vqd, 4, nonseq cull, 0 +- 1 2 +:_p5_0 8u1/res_part5_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 +:_p6_0 8u1/res_part6_pass2.vqd, 2, nonseq cull, 0 +- 1 2 3 4 + +:_p7_0 8u1/res_part7_pass0.vqd, 4, nonseq, 0 +- 11 +:_p7_1 8u1/res_part7_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p8_0 8u1/res_part8_pass0.vqd, 2, nonseq, 0 +- 11 22 33 44 55 +:_p8_1 8u1/res_part8_pass1.vqd, 2, nonseq, 0 +- 1 2 3 4 5 + +:_p9_0 8u1/res_part9_pass0.vqd, 2, nonseq, 0 +- 255 510 765 1020 1275 1530 1785 +:_p9_1 8u1/res_part9_pass1.vqd, 2, nonseq, 0 +- 17 34 51 68 85 102 119 +:_p9_2 8u1/res_part9_pass2.vqd, 2, nonseq, 0 +- 1 2 3 4 5 6 7 8 + diff --git a/Dependencies/libvorbis/vq/Makefile.am b/Dependencies/libvorbis/vq/Makefile.am new file mode 100644 index 0000000..6fd105c --- /dev/null +++ b/Dependencies/libvorbis/vq/Makefile.am @@ -0,0 +1,37 @@ +## Process this file with automake to produce Makefile.in + +INCLUDES = -I../lib -I$(top_srcdir)/include @OGG_CFLAGS@ + +EXTRA_PROGRAMS = latticebuild latticetune huffbuild distribution +CLEANFILES = $(EXTRA_PROGRAMS) + +AM_LDFLAGS = -static +LDADD = ../lib/libvorbis.la + +latticebuild_SOURCES = latticebuild.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h +latticetune_SOURCES = latticetune.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h +huffbuild_SOURCES = huffbuild.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h +distribution_SOURCES = distribution.c bookutil.c\ + bookutil.h localcodebook.h + +vqs_files = 16.vqs 16u.vqs 44c-1.vqs 44c0.vqs 44c1.vqs 44c2.vqs \ + 44c3.vqs 44c4.vqs 44c5.vqs 44c6.vqs 44c7.vqs 44c8.vqs 44c9.vqs \ + 44u0.vqs 44u1.vqs 44u2.vqs 44u3.vqs 44u4.vqs 44u5.vqs 44u6.vqs \ + 44u7.vqs 44u8.vqs 44u9.vqs 8.vqs 8u.vqs floor_11.vqs floor_22.vqs \ + floor_44.vqs 44p-1.vqs 44p0.vqs 44p1.vqs 44p2.vqs 44p3.vqs 44p4.vqs \ + 44p5.vqs 44p6.vqs 44p7.vqs 44p8.vqs 44p9.vqs + +EXTRA_DIST = $(vqs_files) make_floor_books.pl make_residue_books.pl \ + metrics.c + +debugvq: + $(MAKE) vq CFLAGS="@DEBUG@" + +profilevq: + $(MAKE) vq CFLAGS="@PROFILE@" + +vq: + $(MAKE) $(EXTRA_PROGRAMS) diff --git a/Dependencies/libvorbis/vq/Makefile.in b/Dependencies/libvorbis/vq/Makefile.in new file mode 100644 index 0000000..d572c0c --- /dev/null +++ b/Dependencies/libvorbis/vq/Makefile.in @@ -0,0 +1,522 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +EXTRA_PROGRAMS = latticebuild$(EXEEXT) latticetune$(EXEEXT) \ + huffbuild$(EXEEXT) distribution$(EXEEXT) +subdir = vq +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \ + $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +am_distribution_OBJECTS = distribution.$(OBJEXT) bookutil.$(OBJEXT) +distribution_OBJECTS = $(am_distribution_OBJECTS) +distribution_LDADD = $(LDADD) +distribution_DEPENDENCIES = ../lib/libvorbis.la +am_huffbuild_OBJECTS = huffbuild.$(OBJEXT) vqgen.$(OBJEXT) \ + bookutil.$(OBJEXT) +huffbuild_OBJECTS = $(am_huffbuild_OBJECTS) +huffbuild_LDADD = $(LDADD) +huffbuild_DEPENDENCIES = ../lib/libvorbis.la +am_latticebuild_OBJECTS = latticebuild.$(OBJEXT) vqgen.$(OBJEXT) \ + bookutil.$(OBJEXT) +latticebuild_OBJECTS = $(am_latticebuild_OBJECTS) +latticebuild_LDADD = $(LDADD) +latticebuild_DEPENDENCIES = ../lib/libvorbis.la +am_latticetune_OBJECTS = latticetune.$(OBJEXT) vqgen.$(OBJEXT) \ + bookutil.$(OBJEXT) +latticetune_OBJECTS = $(am_latticetune_OBJECTS) +latticetune_LDADD = $(LDADD) +latticetune_DEPENDENCIES = ../lib/libvorbis.la +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(distribution_SOURCES) $(huffbuild_SOURCES) \ + $(latticebuild_SOURCES) $(latticetune_SOURCES) +DIST_SOURCES = $(distribution_SOURCES) $(huffbuild_SOURCES) \ + $(latticebuild_SOURCES) $(latticetune_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUG = @DEBUG@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +HAVE_DOXYGEN = @HAVE_DOXYGEN@ +HTLATEX = @HTLATEX@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PKG_CONFIG = @PKG_CONFIG@ +PROFILE = @PROFILE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VE_LIB_AGE = @VE_LIB_AGE@ +VE_LIB_CURRENT = @VE_LIB_CURRENT@ +VE_LIB_REVISION = @VE_LIB_REVISION@ +VF_LIB_AGE = @VF_LIB_AGE@ +VF_LIB_CURRENT = @VF_LIB_CURRENT@ +VF_LIB_REVISION = @VF_LIB_REVISION@ +VORBIS_LIBS = @VORBIS_LIBS@ +V_LIB_AGE = @V_LIB_AGE@ +V_LIB_CURRENT = @V_LIB_CURRENT@ +V_LIB_REVISION = @V_LIB_REVISION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_lib = @pthread_lib@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +INCLUDES = -I../lib -I$(top_srcdir)/include @OGG_CFLAGS@ +CLEANFILES = $(EXTRA_PROGRAMS) +AM_LDFLAGS = -static +LDADD = ../lib/libvorbis.la +latticebuild_SOURCES = latticebuild.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h + +latticetune_SOURCES = latticetune.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h + +huffbuild_SOURCES = huffbuild.c vqgen.c bookutil.c\ + vqgen.h bookutil.h localcodebook.h + +distribution_SOURCES = distribution.c bookutil.c\ + bookutil.h localcodebook.h + +vqs_files = 16.vqs 16u.vqs 44c-1.vqs 44c0.vqs 44c1.vqs 44c2.vqs \ + 44c3.vqs 44c4.vqs 44c5.vqs 44c6.vqs 44c7.vqs 44c8.vqs 44c9.vqs \ + 44u0.vqs 44u1.vqs 44u2.vqs 44u3.vqs 44u4.vqs 44u5.vqs 44u6.vqs \ + 44u7.vqs 44u8.vqs 44u9.vqs 8.vqs 8u.vqs floor_11.vqs floor_22.vqs \ + floor_44.vqs 44p-1.vqs 44p0.vqs 44p1.vqs 44p2.vqs 44p3.vqs 44p4.vqs \ + 44p5.vqs 44p6.vqs 44p7.vqs 44p8.vqs 44p9.vqs + +EXTRA_DIST = $(vqs_files) make_floor_books.pl make_residue_books.pl \ + metrics.c + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu vq/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu vq/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +distribution$(EXEEXT): $(distribution_OBJECTS) $(distribution_DEPENDENCIES) + @rm -f distribution$(EXEEXT) + $(LINK) $(distribution_OBJECTS) $(distribution_LDADD) $(LIBS) +huffbuild$(EXEEXT): $(huffbuild_OBJECTS) $(huffbuild_DEPENDENCIES) + @rm -f huffbuild$(EXEEXT) + $(LINK) $(huffbuild_OBJECTS) $(huffbuild_LDADD) $(LIBS) +latticebuild$(EXEEXT): $(latticebuild_OBJECTS) $(latticebuild_DEPENDENCIES) + @rm -f latticebuild$(EXEEXT) + $(LINK) $(latticebuild_OBJECTS) $(latticebuild_LDADD) $(LIBS) +latticetune$(EXEEXT): $(latticetune_OBJECTS) $(latticetune_DEPENDENCIES) + @rm -f latticetune$(EXEEXT) + $(LINK) $(latticetune_OBJECTS) $(latticetune_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bookutil.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/distribution.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/huffbuild.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/latticebuild.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/latticetune.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vqgen.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am + + +debugvq: + $(MAKE) vq CFLAGS="@DEBUG@" + +profilevq: + $(MAKE) vq CFLAGS="@PROFILE@" + +vq: + $(MAKE) $(EXTRA_PROGRAMS) +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Dependencies/libvorbis/vq/bookutil.c b/Dependencies/libvorbis/vq/bookutil.c new file mode 100644 index 0000000..02ef0c1 --- /dev/null +++ b/Dependencies/libvorbis/vq/bookutil.c @@ -0,0 +1,477 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility functions for loading .vqh and .vqd files + last mod: $Id: bookutil.c 16959 2010-03-10 16:03:11Z xiphmont $ + + ********************************************************************/ + +#include +#include +#include +#include +#include +#include "bookutil.h" + +int _best(codebook *book, float *a, int step){ + + int dim=book->dim; + int i,j,o; + int minval=book->minval; + int del=book->delta; + int qv=book->quantvals; + int ze=(qv>>1); + int index=0; + /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ + + if(del!=1){ + for(i=0,o=step*(dim-1);i>1))/del; + int m = (v=qv?qv-1:m)); + } + }else{ + for(i=0,o=step*(dim-1);i=qv?qv-1:m)); + } + } + + if(book->c->lengthlist[index]<=0){ + const static_codebook *c=book->c; + int best=-1; + /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ + int e[8]={0,0,0,0,0,0,0,0}; + int maxval = book->minval + book->delta*(book->quantvals-1); + for(i=0;ientries;i++){ + if(c->lengthlist[i]>0){ + float this=0; + for(j=0;j=maxval) + e[j++]=0; + if(e[j]>=0) + e[j]+=book->delta; + e[j]= -e[j]; + } + } + + return index; +} + +/* A few little utils for reading files */ +/* read a line. Use global, persistent buffering */ +static char *linebuffer=NULL; +static int lbufsize=0; +char *get_line(FILE *in){ + long sofar=0; + if(feof(in))return NULL; + + while(1){ + int gotline=0; + + while(!gotline){ + if(sofar+1>=lbufsize){ + if(!lbufsize){ + lbufsize=1024; + linebuffer=_ogg_malloc(lbufsize); + }else{ + lbufsize*=2; + linebuffer=_ogg_realloc(linebuffer,lbufsize); + } + } + { + long c=fgetc(in); + switch(c){ + case EOF: + if(sofar==0)return(NULL); + /* fallthrough correct */ + case '\n': + linebuffer[sofar]='\0'; + gotline=1; + break; + default: + linebuffer[sofar++]=c; + linebuffer[sofar]='\0'; + break; + } + } + } + + if(linebuffer[0]=='#'){ + sofar=0; + }else{ + return(linebuffer); + } + } +} + +/* read the next numerical value from the given file */ +static char *value_line_buff=NULL; + +int get_line_value(FILE *in,float *value){ + char *next; + + if(!value_line_buff)return(-1); + + *value=strtod(value_line_buff, &next); + if(next==value_line_buff){ + value_line_buff=NULL; + return(-1); + }else{ + value_line_buff=next; + while(*value_line_buff>44)value_line_buff++; + if(*value_line_buff==44)value_line_buff++; + return(0); + } +} + +int get_next_value(FILE *in,float *value){ + while(1){ + if(get_line_value(in,value)){ + value_line_buff=get_line(in); + if(!value_line_buff)return(-1); + }else{ + return(0); + } + } +} + +int get_next_ivalue(FILE *in,long *ivalue){ + float value; + int ret=get_next_value(in,&value); + *ivalue=value; + return(ret); +} + +static float sequence_base=0.f; +static int v_sofar=0; +void reset_next_value(void){ + value_line_buff=NULL; + sequence_base=0.f; + v_sofar=0; +} + +char *setup_line(FILE *in){ + reset_next_value(); + value_line_buff=get_line(in); + return(value_line_buff); +} + + +int get_vector(codebook *b,FILE *in,int start, int n,float *a){ + int i; + const static_codebook *c=b->c; + + while(1){ + + if(v_sofar==n || get_line_value(in,a)){ + reset_next_value(); + if(get_next_value(in,a)) + break; + for(i=0;idim;i++) + if(get_line_value(in,a+i)) + break; + + if(i==c->dim){ + float temp=a[c->dim-1]; + for(i=0;idim;i++)a[i]-=sequence_base; + if(c->q_sequencep)sequence_base=temp; + v_sofar++; + return(0); + } + sequence_base=0.f; + } + + return(-1); +} + +/* read lines fromt he beginning until we find one containing the + specified string */ +char *find_seek_to(FILE *in,char *s){ + rewind(in); + while(1){ + char *line=get_line(in); + if(line){ + if(strstr(line,s)) + return(line); + }else + return(NULL); + } +} + + +/* this reads the format as written by vqbuild/latticebuild; innocent + (legal) tweaking of the file that would not affect its valid + header-ness will break this routine */ + +codebook *codebook_load(char *filename){ + codebook *b=_ogg_calloc(1,sizeof(codebook)); + static_codebook *c=(static_codebook *)(b->c=_ogg_calloc(1,sizeof(static_codebook))); + int quant_to_read=0; + FILE *in=fopen(filename,"r"); + char *line; + long i; + + if(in==NULL){ + fprintf(stderr,"Couldn't open codebook %s\n",filename); + exit(1); + } + + /* find the codebook struct */ + find_seek_to(in,"static const static_codebook "); + + /* get the major important values */ + line=get_line(in); + if(sscanf(line,"%ld, %ld,", + &(c->dim),&(c->entries))!=2){ + fprintf(stderr,"1: syntax in %s in line:\t %s",filename,line); + exit(1); + } + line=get_line(in); + line=get_line(in); + if(sscanf(line,"%d, %ld, %ld, %d, %d,", + &(c->maptype),&(c->q_min),&(c->q_delta),&(c->q_quant), + &(c->q_sequencep))!=5){ + fprintf(stderr,"1: syntax in %s in line:\t %s",filename,line); + exit(1); + } + + switch(c->maptype){ + case 0: + quant_to_read=0; + break; + case 1: + quant_to_read=_book_maptype1_quantvals(c); + break; + case 2: + quant_to_read=c->entries*c->dim; + break; + } + + /* load the quantized entries */ + find_seek_to(in,"static const long _vq_quantlist_"); + reset_next_value(); + c->quantlist=_ogg_malloc(sizeof(long)*quant_to_read); + for(i=0;iquantlist+i)){ + fprintf(stderr,"out of data while reading codebook %s\n",filename); + exit(1); + } + + /* load the lengthlist */ + find_seek_to(in,"_lengthlist"); + reset_next_value(); + c->lengthlist=_ogg_malloc(sizeof(long)*c->entries); + for(i=0;ientries;i++) + if(get_next_ivalue(in,c->lengthlist+i)){ + fprintf(stderr,"out of data while reading codebook %s\n",filename); + exit(1); + } + + /* got it all */ + fclose(in); + + vorbis_book_init_encode(b,c); + b->valuelist=_book_unquantize(c,c->entries,NULL); + + return(b); +} + +void spinnit(char *s,int n){ + static int p=0; + static long lasttime=0; + long test; + struct timeval thistime; + + gettimeofday(&thistime,NULL); + test=thistime.tv_sec*10+thistime.tv_usec/100000; + if(lasttime!=test){ + lasttime=test; + + fprintf(stderr,"%s%d ",s,n); + + p++;if(p>3)p=0; + switch(p){ + case 0: + fprintf(stderr,"| \r"); + break; + case 1: + fprintf(stderr,"/ \r"); + break; + case 2: + fprintf(stderr,"- \r"); + break; + case 3: + fprintf(stderr,"\\ \r"); + break; + } + fflush(stderr); + } +} + +void build_tree_from_lengths(int vals, long *hist, long *lengths){ + int i,j; + long *membership=_ogg_malloc(vals*sizeof(long)); + long *histsave=alloca(vals*sizeof(long)); + memcpy(histsave,hist,vals*sizeof(long)); + + for(i=0;i1;i--){ + int first=-1,second=-1; + long least=-1; + + spinnit("building... ",i); + + /* find the two nodes to join */ + for(j=0;j0) + newhist[upper++]=hist[i]; + + if(upper != vals){ + fprintf(stderr,"\rEliminating %d unused entries; %d entries remain\n", + vals-upper,upper); + } + + build_tree_from_lengths(upper,newhist,lengthlist); + + upper=0; + for(i=0;i0) + lengths[i]=lengthlist[upper++]; + else + lengths[i]=0; + + free(lengthlist); +} + +void write_codebook(FILE *out,char *name,const static_codebook *c){ + int i,j,k; + + /* save the book in C header form */ + + /* first, the static vectors, then the book structure to tie it together. */ + /* quantlist */ + if(c->quantlist){ + long vals=(c->maptype==1?_book_maptype1_quantvals(c):c->entries*c->dim); + fprintf(out,"static const long _vq_quantlist_%s[] = {\n",name); + for(j=0;jquantlist[j]); + } + fprintf(out,"};\n\n"); + } + + /* lengthlist */ + fprintf(out,"static const long _vq_lengthlist_%s[] = {\n",name); + for(j=0;jentries;){ + fprintf(out,"\t"); + for(k=0;k<16 && jentries;k++,j++) + fprintf(out,"%2ld,",c->lengthlist[j]); + fprintf(out,"\n"); + } + fprintf(out,"};\n\n"); + + /* tie it all together */ + + fprintf(out,"static const static_codebook %s = {\n",name); + + fprintf(out,"\t%ld, %ld,\n",c->dim,c->entries); + fprintf(out,"\t(long *)_vq_lengthlist_%s,\n",name); + fprintf(out,"\t%d, %ld, %ld, %d, %d,\n", + c->maptype,c->q_min,c->q_delta,c->q_quant,c->q_sequencep); + if(c->quantlist) + fprintf(out,"\t(long *)_vq_quantlist_%s,\n",name); + else + fprintf(out,"\tNULL,\n"); + + fprintf(out,"\t0\n};\n\n"); +} diff --git a/libvorbis-1.0.1/vq/bookutil.h b/Dependencies/libvorbis/vq/bookutil.h similarity index 91% rename from libvorbis-1.0.1/vq/bookutil.h rename to Dependencies/libvorbis/vq/bookutil.h index 957df1d..1e10229 100644 --- a/libvorbis-1.0.1/vq/bookutil.h +++ b/Dependencies/libvorbis/vq/bookutil.h @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: utility functions for loading .vqh and .vqd files - last mod: $Id: bookutil.h,v 1.12 2001/12/20 01:00:39 segher Exp $ + last mod: $Id: bookutil.h 13293 2007-07-24 00:09:47Z xiphmont $ ********************************************************************/ @@ -21,7 +21,7 @@ #include #include -#include "codebook.h" +#include "localcodebook.h" extern char *get_line(FILE *in); extern char *setup_line(FILE *in); diff --git a/libvorbis-1.0.1/vq/distribution.c b/Dependencies/libvorbis/vq/distribution.c similarity index 52% rename from libvorbis-1.0.1/vq/distribution.c rename to Dependencies/libvorbis/vq/distribution.c index c65b36a..b678bbf 100644 --- a/libvorbis-1.0.1/vq/distribution.c +++ b/Dependencies/libvorbis/vq/distribution.c @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: utility for finding the distribution in a data set - last mod: $Id: distribution.c,v 1.9 2001/12/20 01:00:39 segher Exp $ + last mod: $Id: distribution.c 16037 2009-05-26 21:10:58Z xiphmont $ ********************************************************************/ @@ -90,69 +90,69 @@ int main(int argc,char *argv[]){ switch(c->maptype){ case 1: { - /* lattice codebook. dump it. */ - int j,k; - long maxcount=0; - long **sort=calloc(bins,sizeof(long *)); - long base=c->lengthlist[0]; - countarray=calloc(bins,sizeof(long)); - - for(i=0;iquantlist+i; - qsort(sort,bins,sizeof(long *),ascend); - - for(i=0;ientries;i++) - if(c->lengthlist[i]>base)base=c->lengthlist[i]; - - /* dump a full, correlated count */ - for(j=0;jentries;j++){ - if(c->lengthlist[j]){ - int indexdiv=1; - printf("%4d: ",j); - for(k=0;kdim;k++){ - int index= (j/indexdiv)%bins; - printf("%+3.1f,", c->quantlist[index]*_float32_unpack(c->q_delta)+ - _float32_unpack(c->q_min)); - indexdiv*=bins; - } - printf("\t|"); - for(k=0;klengthlist[j];k++)printf("*"); - printf("\n"); - } - } - - /* do a rough count */ - for(j=0;jentries;j++){ - int indexdiv=1; - for(k=0;kdim;k++){ - if(c->lengthlist[j]){ - int index= (j/indexdiv)%bins; - countarray[index]+=(1<<(base-c->lengthlist[j])); - indexdiv*=bins; - } - } - } - - /* dump the count */ - - { - long maxcount=0,i,j; - for(i=0;imaxcount)maxcount=countarray[i]; + /* lattice codebook. dump it. */ + int j,k; + long maxcount=0; + long **sort=calloc(bins,sizeof(long *)); + long base=c->lengthlist[0]; + countarray=calloc(bins,sizeof(long)); + + for(i=0;iquantlist+i; + qsort(sort,bins,sizeof(long *),ascend); + + for(i=0;ientries;i++) + if(c->lengthlist[i]>base)base=c->lengthlist[i]; + + /* dump a full, correlated count */ + for(j=0;jentries;j++){ + if(c->lengthlist[j]){ + int indexdiv=1; + printf("%4d: ",j); + for(k=0;kdim;k++){ + int index= (j/indexdiv)%bins; + printf("%+3.1f,", c->quantlist[index]*_float32_unpack(c->q_delta)+ + _float32_unpack(c->q_min)); + indexdiv*=bins; + } + printf("\t|"); + for(k=0;klengthlist[j];k++)printf("*"); + printf("\n"); + } + } + + /* do a rough count */ + for(j=0;jentries;j++){ + int indexdiv=1; + for(k=0;kdim;k++){ + if(c->lengthlist[j]){ + int index= (j/indexdiv)%bins; + countarray[index]+=(1<<(base-c->lengthlist[j])); + indexdiv*=bins; + } + } + } + + /* dump the count */ + + { + long maxcount=0,i,j; + for(i=0;imaxcount)maxcount=countarray[i]; - for(i=0;iquantlist; - int stars=rint(50./maxcount*countarray[ptr]); - printf("%+08f (%8ld) |",c->quantlist[ptr]*delta+min,countarray[ptr]); - for(j=0;jquantlist; + int stars=rint(50./maxcount*countarray[ptr]); + printf("%+08f (%8ld) |",c->quantlist[ptr]*delta+min,countarray[ptr]); + for(j=0;jmax)max=code; + line=strchr(line,','); + if(line)line++; + if(codemax)max=code; } line=setup_line(in); @@ -187,9 +187,9 @@ int main(int argc,char *argv[]){ if(bins<1){ if((int)(max-min)==min-max){ - bins=max-min; + bins=max-min; }else{ - bins=25; + bins=25; } } @@ -205,38 +205,38 @@ int main(int argc,char *argv[]){ rewind(in); line=setup_line(in); while(line){ - float code; - lines--; - if(!(lines&0xff))spinnit("counting distribution. lines so far...",lines); - - while(line && sscanf(line,"%f",&code)==1){ - line=strchr(line,','); - if(line)line++; - - code-=min; - code/=(max-min); - code*=bins; - countarray[(int)rint(code)]++; - total++; - } - - line=setup_line(in); + float code; + lines--; + if(!(lines&0xff))spinnit("counting distribution. lines so far...",lines); + + while(line && sscanf(line,"%f",&code)==1){ + line=strchr(line,','); + if(line)line++; + + code-=min; + code/=(max-min); + code*=bins; + countarray[(int)rint(code)]++; + total++; + } + + line=setup_line(in); } /* make a pretty graph */ { - long maxcount=0,i,j; - for(i=0;imaxcount)maxcount=countarray[i]; - - printf("\r \r"); - printf("Total scalars: %ld\n",total); - for(i=0;imaxcount)maxcount=countarray[i]; + + printf("\r \r"); + printf("Total scalars: %ld\n",total); + for(i=0;ifloor_11 +=8-11c0_s 8-11c1_s + +build line_256x4_class0 0-256 +build line_256x4_0sub0 0-4 +build line_256x4_0sub1 4-10 +build line_256x4_0sub2 10-25 +build line_256x4_0sub3 25-64 + diff --git a/Dependencies/libvorbis/vq/floor_22.vqs b/Dependencies/libvorbis/vq/floor_22.vqs new file mode 100644 index 0000000..b80328e --- /dev/null +++ b/Dependencies/libvorbis/vq/floor_22.vqs @@ -0,0 +1,27 @@ +GO +>floor_22 +=22c0_s 22c1_s 22c2_s + +build line_256x7_class0 0-64 +build line_256x7_class1 0-256 +build line_256x7_0sub1 1-9 +build line_256x7_0sub2 9-25 +build line_256x7_0sub3 25-64 +build line_256x7_1sub1 1-9 +build line_256x7_1sub2 9-25 +build line_256x7_1sub3 25-64 + +build line_512x17_class1 0-8 +build line_512x17_class2 0-64 +build line_512x17_class3 0-64 +build line_512x17_0sub0 0-128 +build line_512x17_1sub0 0-32 +build line_512x17_1sub1 32-128 +build line_512x17_2sub1 1-18 +build line_512x17_2sub2 18-50 +build line_512x17_2sub3 50-128 +build line_512x17_3sub1 1-18 +build line_512x17_3sub2 18-50 +build line_512x17_3sub3 50-128 + + diff --git a/Dependencies/libvorbis/vq/floor_44.vqs b/Dependencies/libvorbis/vq/floor_44.vqs new file mode 100644 index 0000000..dd213f7 --- /dev/null +++ b/Dependencies/libvorbis/vq/floor_44.vqs @@ -0,0 +1,83 @@ +GO +>floor_44 +=44c-1_s 44c0_s 44c1_s 44c2_s 44c3_s 44c4_s 44c5_s 44c6_s 44c7_s 44c8_s 44c9_s + +build line_128x4_class0 0-256 +build line_128x4_0sub0 0-4 +build line_128x4_0sub1 4-10 +build line_128x4_0sub2 10-25 +build line_128x4_0sub3 25-64 + +build line_256x4_class0 0-256 +build line_256x4_0sub0 0-4 +build line_256x4_0sub1 4-10 +build line_256x4_0sub2 10-25 +build line_256x4_0sub3 25-64 + +build line_128x7_class0 0-64 +build line_128x7_class1 0-256 +build line_128x7_0sub1 1-9 +build line_128x7_0sub2 9-25 +build line_128x7_0sub3 25-64 +build line_128x7_1sub1 1-9 +build line_128x7_1sub2 9-25 +build line_128x7_1sub3 25-64 + +build line_128x11_class1 0-8 +build line_128x11_class2 0-64 +build line_128x11_class3 0-64 +build line_128x11_0sub0 0-128 +build line_128x11_1sub0 0-32 +build line_128x11_1sub1 32-128 +build line_128x11_2sub1 1-18 +build line_128x11_2sub2 18-50 +build line_128x11_2sub3 50-128 +build line_128x11_3sub1 1-18 +build line_128x11_3sub2 18-50 +build line_128x11_3sub3 50-128 + +build line_128x17_class1 0-8 +build line_128x17_class2 0-64 +build line_128x17_class3 0-64 +build line_128x17_0sub0 0-128 +build line_128x17_1sub0 0-32 +build line_128x17_1sub1 32-128 +build line_128x17_2sub1 1-18 +build line_128x17_2sub2 18-50 +build line_128x17_2sub3 50-128 +build line_128x17_3sub1 1-18 +build line_128x17_3sub2 18-50 +build line_128x17_3sub3 50-128 + +build line_1024x27_class1 0-16 +build line_1024x27_class2 0-8 +build line_1024x27_class3 0-256 +build line_1024x27_class4 0-64 +build line_1024x27_0sub0 0-128 +build line_1024x27_1sub0 0-32 +build line_1024x27_1sub1 32-128 +build line_1024x27_2sub0 0-32 +build line_1024x27_2sub1 32-128 +build line_1024x27_3sub1 1-18 +build line_1024x27_3sub2 18-50 +build line_1024x27_3sub3 50-128 +build line_1024x27_4sub1 1-18 +build line_1024x27_4sub2 18-50 +build line_1024x27_4sub3 50-128 + +build line_2048x27_class1 0-16 +build line_2048x27_class2 0-8 +build line_2048x27_class3 0-256 +build line_2048x27_class4 0-64 +build line_2048x27_0sub0 0-128 +build line_2048x27_1sub0 0-32 +build line_2048x27_1sub1 32-128 +build line_2048x27_2sub0 0-32 +build line_2048x27_2sub1 32-128 +build line_2048x27_3sub1 1-18 +build line_2048x27_3sub2 18-50 +build line_2048x27_3sub3 50-128 +build line_2048x27_4sub1 1-18 +build line_2048x27_4sub2 18-50 +build line_2048x27_4sub3 50-128 + diff --git a/libvorbis-1.0.1/vq/huffbuild.c b/Dependencies/libvorbis/vq/huffbuild.c similarity index 76% rename from libvorbis-1.0.1/vq/huffbuild.c rename to Dependencies/libvorbis/vq/huffbuild.c index 8b2f699..a7aaeaa 100644 --- a/libvorbis-1.0.1/vq/huffbuild.c +++ b/Dependencies/libvorbis/vq/huffbuild.c @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: hufftree builder - last mod: $Id: huffbuild.c,v 1.13 2002/06/28 22:19:56 xiphmont Exp $ + last mod: $Id: huffbuild.c 16959 2010-03-10 16:03:11Z xiphmont $ ********************************************************************/ @@ -49,13 +49,13 @@ static int getval(FILE *in,int begin,int n,int group,int max){ static void usage(){ fprintf(stderr, - "usage:\n" - "huffbuild .vqd | [noguard]\n" - " where begin,n,group is first scalar, \n" - " number of scalars of each in line,\n" - " number of scalars in a group\n" - "eg: huffbuild reslongaux.vqd 0,1024,4\n" - "produces reslongaux.vqh\n\n"); + "usage:\n" + "huffbuild .vqd | [noguard]\n" + " where begin,n,group is first scalar, \n" + " number of scalars of each in line,\n" + " number of scalars in a group\n" + "eg: huffbuild reslongaux.vqd 0,1024,4\n" + "produces reslongaux.vqh\n\n"); exit(1); } @@ -86,17 +86,17 @@ int main(int argc, char *argv[]){ }else{ begin=atoi(argv[2]); if(!pos) - usage(); + usage(); else - n=atoi(pos+1); + n=atoi(pos+1); pos=strchr(pos+1,','); if(!pos) - usage(); + usage(); else - subn=atoi(pos+1); + subn=atoi(pos+1); if(n/subn*subn != n){ - fprintf(stderr,"n must be divisible by group\n"); - exit(1); + fprintf(stderr,"n must be divisible by group\n"); + exit(1); } } } @@ -136,10 +136,10 @@ int main(int argc, char *argv[]){ reset_next_value(); i/=subn; while(!feof(file)){ - long val=getval(file,begin,n,subn,maxval); - if(val==-1 || val>=vals)break; - hist[val]++; - if(!(i--&0xff))spinnit("loading... ",i*subn); + long val=getval(file,begin,n,subn,maxval); + if(val==-1 || val>=vals)break; + hist[val]++; + if(!(i--&0xff))spinnit("loading... ",i*subn); } fclose(file); } @@ -155,32 +155,29 @@ int main(int argc, char *argv[]){ strcat(buffer,".vqh"); file=fopen(buffer,"w"); if(!file){ - fprintf(stderr,"Could not open file %s\n",buffer); - exit(1); + fprintf(stderr,"Could not open file %s\n",buffer); + exit(1); } } /* first, the static vectors, then the book structure to tie it together. */ /* lengthlist */ - fprintf(file,"static long _huff_lengthlist_%s[] = {\n",base); + fprintf(file,"static const long _huff_lengthlist_%s[] = {\n",base); for(j=0;j.00001f) break; + double test=fac*(quantlist[j]-min)/mindel; + if( fabs(rint(test)-test)>.00001f) break; } if(fac>100)break; if(jlengthlist[j]){ - int indexdiv=1; - fprintf(stderr,"%4ld: ",j); - for(k=0;kdim;k++){ - int index= (j/indexdiv)%bins; - fprintf(stderr,"%+3.1f,", c->quantlist[index]*_float32_unpack(c->q_delta)+ - _float32_unpack(c->q_min)); - indexdiv*=bins; - } - fprintf(stderr,"\t|"); - for(k=0;klengthlist[j];k++)fprintf(stderr,"*"); - fprintf(stderr,"\n"); + int indexdiv=1; + fprintf(stderr,"%4ld: ",j); + for(k=0;kdim;k++){ + int index= (j/indexdiv)%bins; + fprintf(stderr,"%+3.1f,", c->quantlist[index]*_float32_unpack(c->q_delta)+ + _float32_unpack(c->q_min)); + indexdiv*=bins; + } + fprintf(stderr,"\t|"); + for(k=0;klengthlist[j];k++)fprintf(stderr,"*"); + fprintf(stderr,"\n"); } } } fprintf(stderr,"\r " - "\nDone.\n"); + "\nDone.\n"); exit(0); } diff --git a/libvorbis-1.0.1/lib/codebook.h b/Dependencies/libvorbis/vq/localcodebook.h similarity index 70% rename from libvorbis-1.0.1/lib/codebook.h rename to Dependencies/libvorbis/vq/localcodebook.h index 170b7ed..fa6d069 100644 --- a/libvorbis-1.0.1/lib/codebook.h +++ b/Dependencies/libvorbis/vq/localcodebook.h @@ -5,13 +5,13 @@ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: basic shared codebook operations - last mod: $Id: codebook.h,v 1.13 2002/06/28 22:19:35 xiphmont Exp $ + last mod: $Id: localcodebook.h 16959 2010-03-10 16:03:11Z xiphmont $ ********************************************************************/ @@ -40,8 +40,8 @@ typedef struct static_codebook{ /* mapping ***************************************************************/ int maptype; /* 0=none - 1=implicitly populated values from map column - 2=listed arbitrary values */ + 1=implicitly populated values from map column + 2=listed arbitrary values */ /* The below does a linear, single monotonic sequence mapping. */ long q_min; /* packed 32 bit float; quant value 0 maps to minval */ @@ -50,57 +50,16 @@ typedef struct static_codebook{ int q_sequencep; /* bitflag */ long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map - map == 2: list of dim*entries quantized entry vals - */ - - /* encode helpers ********************************************************/ - struct encode_aux_nearestmatch *nearest_tree; - struct encode_aux_threshmatch *thresh_tree; - struct encode_aux_pigeonhole *pigeon_tree; - + map == 2: list of dim*entries quantized entry vals + */ int allocedp; } static_codebook; -/* this structures an arbitrary trained book to quickly find the - nearest cell match */ -typedef struct encode_aux_nearestmatch{ - /* pre-calculated partitioning tree */ - long *ptr0; - long *ptr1; - - long *p; /* decision points (each is an entry) */ - long *q; /* decision points (each is an entry) */ - long aux; /* number of tree entries */ - long alloc; -} encode_aux_nearestmatch; - -/* assumes a maptype of 1; encode side only, so that's OK */ -typedef struct encode_aux_threshmatch{ - float *quantthresh; - long *quantmap; - int quantvals; - int threshvals; -} encode_aux_threshmatch; - -typedef struct encode_aux_pigeonhole{ - float min; - float del; - - int mapentries; - int quantvals; - long *pigeonmap; - - long fittotal; - long *fitlist; - long *fitmap; - long *fitlength; -} encode_aux_pigeonhole; - typedef struct codebook{ long dim; /* codebook dimensions (elements per vector) */ long entries; /* codebook entries */ long used_entries; /* populated codebook entries */ - const static_codebook *c; + static_codebook *c; /* for encode, the below are entry-ordered, fully populated */ /* for decode, the below are ordered by bitreversed codeword and only @@ -114,6 +73,11 @@ typedef struct codebook{ int dec_firsttablen; int dec_maxlength; + /* The current encoder uses only centered, integer-only lattice books. */ + int quantvals; + int minval; + int delta; + } codebook; extern void vorbis_staticbook_clear(static_codebook *b); @@ -140,20 +104,17 @@ extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b); extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c); extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b); -extern int vorbis_book_errorv(codebook *book, float *a); -extern int vorbis_book_encodev(codebook *book, int best,float *a, - oggpack_buffer *b); extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); extern long vorbis_book_decodevs_add(codebook *book, float *a, - oggpack_buffer *b,int n); + oggpack_buffer *b,int n); extern long vorbis_book_decodev_set(codebook *book, float *a, - oggpack_buffer *b,int n); + oggpack_buffer *b,int n); extern long vorbis_book_decodev_add(codebook *book, float *a, - oggpack_buffer *b,int n); + oggpack_buffer *b,int n); extern long vorbis_book_decodevv_add(codebook *book, float **a, - long off,int ch, - oggpack_buffer *b,int n); + long off,int ch, + oggpack_buffer *b,int n); diff --git a/Dependencies/libvorbis/vq/make_floor_books.pl b/Dependencies/libvorbis/vq/make_floor_books.pl new file mode 100755 index 0000000..5c37366 --- /dev/null +++ b/Dependencies/libvorbis/vq/make_floor_books.pl @@ -0,0 +1,108 @@ +#!/usr/bin/perl + +# quick, very dirty little script so that we can put all the +# information for building a floor book set in one spec file. + +#eg: + +# >floor_44 +# =44c0_s 44c1_s 44c2_s +# build line_128x4_class0 0-256 +# build line_128x4_0sub0 0-4 + +die "Could not open $ARGV[0]: $!" unless open (F,$ARGV[0]); + +$goflag=0; +while($line=){ + + print "#### $line"; + if($line=~m/^GO/){ + $goflag=1; + next; + } + + if($goflag==0){ + if($line=~m/\S+/ && !($line=~m/^\#/) ){ + my $command=$line; + print ">>> $command"; + die "Couldn't shell command.\n\tcommand:$command\n" + if syst($command); + } + next; + } + + # >floor_44 + # this sets the output bookset file name + if($line=~m/^>(\S+)\s+(\S*)/){ + # set the output name + $globalname=$1; + + $command="rm -f $globalname.vqh"; + die "Couldn't remove file.\n\tcommand:$command\n" + if syst($command); + + next; + } + + #=path1 path2 path3 + #set the search path for input files; each build line will look + #for input files in all of the directories in the search path and + #append them for huffbuild input + if($line=~m/^=(.*)/){ + # set the output name + @paths=split(' ',$1); + next; + } + + # build book.vqd 0-3 [noguard] + if($line=~m/^build (.*)/){ + # build a huffman book (no mapping) + my($datafile,$range,$guard)=split(' ',$1); + + $command="rm -f $datafile.tmp"; + print "\n\n>>> $command\n"; + die "Couldn't remove temp file.\n\tcommand:$command\n" + if syst($command); + + # first find all the inputs we want; they'll need to be collected into a single input file + foreach $dir (@paths){ + if (-e "$dir/$datafile.vqd"){ + $command="cat $dir/$datafile.vqd >> $datafile.tmp"; + print ">>> $command\n"; + die "Couldn't append training data.\n\tcommand:$command\n" + if syst($command); + } + } + + my $command="huffbuild $datafile.tmp $range $guard"; + print ">>> $command\n"; + die "Couldn't build huffbook.\n\tcommand:$command\n" + if syst($command); + + $command="cat $datafile.vqh >> $globalname.vqh"; + print ">>> $command\n"; + die "Couldn't append to output book.\n\tcommand:$command\n" + if syst($command); + + $command="rm $datafile.vqh"; + print ">>> $command\n"; + die "Couldn't remove temporary output file.\n\tcommand:$command\n" + if syst($command); + + $command="rm -f $datafile.tmp"; + print ">>> $command\n"; + die "Couldn't remove temporary output file.\n\tcommand:$command\n" + if syst($command); + next; + } + +} + +$command="rm -f temp$$.vqd"; +print ">>> $command\n"; +die "Couldn't remove temp files.\n\tcommand:$command\n" + if syst($command); + +sub syst{ + system(@_)/256; +} diff --git a/Dependencies/libvorbis/vq/make_residue_books.pl b/Dependencies/libvorbis/vq/make_residue_books.pl new file mode 100755 index 0000000..b37d0dc --- /dev/null +++ b/Dependencies/libvorbis/vq/make_residue_books.pl @@ -0,0 +1,177 @@ +#!/usr/bin/perl + +# quick, very dirty little script so that we can put all the +# information for building a residue book set (except the original +# partitioning) in one spec file. + +#eg: + +# >res0_128_128 interleaved +# haux 44c0_s/resaux_0.vqd res0_96_128aux 0,4,2 9 +# :1 res0_128_128_1.vqd, 4, nonseq cull, 0 +- 1 +# :2 res0_128_128_2.vqd, 4, nonseq, 0 +- 1(.7) 2 +# :3 res0_128_128_3.vqd, 4, nonseq, 0 +- 1(.7) 3 5 +# :4 res0_128_128_4.vqd, 2, nonseq, 0 +- 1(.7) 3 5 8 11 +# :5 res0_128_128_5.vqd, 1, nonseq, 0 +- 1 3 5 8 11 14 17 20 24 28 31 35 39 + + +die "Could not open $ARGV[0]: $!" unless open (F,$ARGV[0]); + +$goflag=0; +while($line=){ + + print "#### $line"; + if($line=~m/^GO/){ + $goflag=1; + next; + } + + if($goflag==0){ + if($line=~m/\S+/ && !($line=~m/^\#/) ){ + my $command=$line; + print ">>> $command"; + die "Couldn't shell command.\n\tcommand:$command\n" + if syst($command); + } + next; + } + + # >res0_128_128 + if($line=~m/^>(\S+)\s+(\S*)/){ + # set the output name + $globalname=$1; + $interleave=$2; + next; + } + + # haux 44c0_s/resaux_0.vqd res0_96_128aux 0,4,2 9 + if($line=~m/^h(.*)/){ + # build a huffman book (no mapping) + my($name,$datafile,$bookname,$interval,$range)=split(' ',$1); + + # check the desired subdir to see if the data file exists + if(-e $datafile){ + my $command="cp $datafile $bookname.tmp"; + print ">>> $command\n"; + die "Couldn't access partition data file.\n\tcommand:$command\n" + if syst($command); + + my $command="huffbuild $bookname.tmp $interval"; + print ">>> $command\n"; + die "Couldn't build huffbook.\n\tcommand:$command\n" + if syst($command); + + my $command="rm $bookname.tmp"; + print ">>> $command\n"; + die "Couldn't remove temporary file.\n\tcommand:$command\n" + if syst($command); + }else{ + my $command="huffbuild $bookname.tmp 0-$range"; + print ">>> $command\n"; + die "Couldn't build huffbook.\n\tcommand:$command\n" + if syst($command); + + } + next; + } + + # :1 res0_128_128_1.vqd, 4, nonseq, 0 +- 1 + if($line=~m/^:(.*)/){ + my($namedata,$dim,$seqp,$vals)=split(',',$1); + my($name,$datafile)=split(' ',$namedata); + # build value list + my$plusminus="+"; + my$list; + my$thlist; + my$count=0; + foreach my$val (split(' ',$vals)){ + if($val=~/\-?\+?\d+/){ + my$th; + + # got an explicit threshhint? + if($val=~/([0-9\.]+)\(([^\)]+)/){ + $val=$1; + $th=$2; + } + + if($plusminus=~/-/){ + $list.="-$val "; + if(defined($th)){ + $thlist.="," if(defined($thlist)); + $thlist.="-$th"; + } + $count++; + } + if($plusminus=~/\+/){ + $list.="$val "; + if(defined($th)){ + $thlist.="," if(defined($thlist)); + $thlist.="$th"; + } + $count++; + } + }else{ + $plusminus=$val; + } + } + die "Couldn't open temp file $globalname$name.vql: $!" unless + open(G,">$globalname$name.vql"); + print G "$count $dim 0 "; + if($seqp=~/non/){ + print G "0\n$list\n"; + }else{ + print G "1\n$list\n"; + } + close(G); + + my $command="latticebuild $globalname$name.vql > $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't build latticebook.\n\tcommand:$command\n" + if syst($command); + + if(-e $datafile){ + + if($interleave=~/non/){ + $restune="res1tune"; + }else{ + $restune="res0tune"; + } + + if($seqp=~/cull/){ + my $command="$restune $globalname$name.vqh $datafile 1 > temp$$.vqh"; + print ">>> $command\n"; + die "Couldn't tune latticebook.\n\tcommand:$command\n" + if syst($command); + }else{ + my $command="$restune $globalname$name.vqh $datafile > temp$$.vqh"; + print ">>> $command\n"; + die "Couldn't tune latticebook.\n\tcommand:$command\n" + if syst($command); + } + + my $command="mv temp$$.vqh $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't rename latticebook.\n\tcommand:$command\n" + if syst($command); + + }else{ + print "No matching training file; leaving this codebook untrained.\n"; + } + + my $command="rm $globalname$name.vql"; + print ">>> $command\n"; + die "Couldn't remove temp files.\n\tcommand:$command\n" + if syst($command); + + next; + } +} + +$command="rm -f temp$$.vqd"; +print ">>> $command\n"; +die "Couldn't remove temp files.\n\tcommand:$command\n" + if syst($command); + +sub syst{ + system(@_)/256; +} diff --git a/Dependencies/libvorbis/vq/metrics.c b/Dependencies/libvorbis/vq/metrics.c new file mode 100644 index 0000000..32d5163 --- /dev/null +++ b/Dependencies/libvorbis/vq/metrics.c @@ -0,0 +1,295 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: function calls to collect codebook metrics + last mod: $Id: metrics.c 16037 2009-05-26 21:10:58Z xiphmont $ + + ********************************************************************/ + + +#include +#include +#include +#include "bookutil.h" + +/* collect the following metrics: + + mean and mean squared amplitude + mean and mean squared error + mean and mean squared error (per sample) by entry + worst case fit by entry + entry cell size + hits by entry + total bits + total samples + (average bits per sample)*/ + + +/* set up metrics */ + +float meanamplitude_acc=0.f; +float meanamplitudesq_acc=0.f; +float meanerror_acc=0.f; +float meanerrorsq_acc=0.f; + +float **histogram=NULL; +float **histogram_error=NULL; +float **histogram_errorsq=NULL; +float **histogram_hi=NULL; +float **histogram_lo=NULL; +float bits=0.f; +float count=0.f; + +static float *_now(codebook *c, int i){ + return c->valuelist+i*c->c->dim; +} + +int books=0; + +void process_preprocess(codebook **bs,char *basename){ + int i; + while(bs[books])books++; + + if(books){ + histogram=_ogg_calloc(books,sizeof(float *)); + histogram_error=_ogg_calloc(books,sizeof(float *)); + histogram_errorsq=_ogg_calloc(books,sizeof(float *)); + histogram_hi=_ogg_calloc(books,sizeof(float *)); + histogram_lo=_ogg_calloc(books,sizeof(float *)); + }else{ + fprintf(stderr,"Specify at least one codebook\n"); + exit(1); + } + + for(i=0;ientries,sizeof(float)); + histogram_error[i]=_ogg_calloc(b->entries*b->dim,sizeof(float)); + histogram_errorsq[i]=_ogg_calloc(b->entries*b->dim,sizeof(float)); + histogram_hi[i]=_ogg_calloc(b->entries*b->dim,sizeof(float)); + histogram_lo[i]=_ogg_calloc(b->entries*b->dim,sizeof(float)); + } +} + +static float _dist(int el,float *a, float *b){ + int i; + float acc=0.f; + for(i=0;ic->entries;j++){ + if(c->c->lengthlist[j]>0){ + float localmin=-1.; + for(k=0;kc->entries;k++){ + if(c->c->lengthlist[k]>0){ + float this=_dist(c->c->dim,_now(c,j),_now(c,k)); + if(j!=k && + (localmin==-1 || thismax)max=localmin; + mean+=sqrt(localmin); + meansq+=localmin; + total++; + } + } + + fprintf(stderr,"\tminimum cell spacing (closest side): %g\n",sqrt(min)); + fprintf(stderr,"\tmaximum cell spacing (closest side): %g\n",sqrt(max)); + fprintf(stderr,"\tmean closest side spacing: %g\n",mean/total); + fprintf(stderr,"\tmean sq closest side spacing: %g\n",sqrt(meansq/total)); +} + +void process_postprocess(codebook **bs,char *basename){ + int i,k,book; + char *buffer=alloca(strlen(basename)+80); + + fprintf(stderr,"Done. Processed %ld data points:\n\n", + (long)count); + + fprintf(stderr,"Global statistics:******************\n\n"); + + fprintf(stderr,"\ttotal samples: %ld\n",(long)count); + fprintf(stderr,"\ttotal bits required to code: %ld\n",(long)bits); + fprintf(stderr,"\taverage bits per sample: %g\n\n",bits/count); + + fprintf(stderr,"\tmean sample amplitude: %g\n", + meanamplitude_acc/count); + fprintf(stderr,"\tmean squared sample amplitude: %g\n\n", + sqrt(meanamplitudesq_acc/count)); + + fprintf(stderr,"\tmean code error: %g\n", + meanerror_acc/count); + fprintf(stderr,"\tmean squared code error: %g\n\n", + sqrt(meanerrorsq_acc/count)); + + for(book=0;bookc->entries; + int dim=b->c->dim; + + fprintf(stderr,"Book %d statistics:------------------\n",book); + + cell_spacing(b); + + sprintf(buffer,"%s-%d-mse.m",basename,book); + out=fopen(buffer,"w"); + if(!out){ + fprintf(stderr,"Could not open file %s for writing\n",buffer); + exit(1); + } + + for(i=0;ivaluelist+i*dim)[k], + sqrt((histogram_errorsq[book]+i*dim)[k]/histogram[book][i])); + } + } + fclose(out); + + sprintf(buffer,"%s-%d-me.m",basename,book); + out=fopen(buffer,"w"); + if(!out){ + fprintf(stderr,"Could not open file %s for writing\n",buffer); + exit(1); + } + + for(i=0;ivaluelist+i*dim)[k], + (histogram_error[book]+i*dim)[k]/histogram[book][i]); + } + } + fclose(out); + + sprintf(buffer,"%s-%d-worst.m",basename,book); + out=fopen(buffer,"w"); + if(!out){ + fprintf(stderr,"Could not open file %s for writing\n",buffer); + exit(1); + } + + for(i=0;ivaluelist+i*dim)[k], + (b->valuelist+i*dim)[k]+(histogram_lo[book]+i*dim)[k], + (b->valuelist+i*dim)[k]+(histogram_hi[book]+i*dim)[k]); + } + } + fclose(out); + } +} + +float process_one(codebook *b,int book,float *a,int dim,int step,int addmul, + float base){ + int j,entry; + float amplitude=0.f; + + if(book==0){ + float last=base; + for(j=0;jc->q_sequencep?last:0); + meanamplitude_acc+=fabs(amplitude); + meanamplitudesq_acc+=amplitude*amplitude; + count++; + last=a[j*step]; + } + } + + if(b->c->q_sequencep){ + float temp; + for(j=0;jerror) + histogram_lo[book][entry*dim+j]=error; + } + return base; +} + + +void process_vector(codebook **bs,int *addmul,int inter,float *a,int n){ + int bi; + int i; + + for(bi=0;bidim; + float base=0.f; + + if(inter){ + for(i=0;i.vqh [ +|* ]... \n" + " datafile.vqd [datafile.vqd]...\n\n" + " data can be taken on stdin. -i indicates interleaved coding.\n" + " Output goes to output files:\n" + " basename-me.m: gnuplot: mean error by entry value\n" + " basename-mse.m: gnuplot: mean square error by entry value\n" + " basename-worst.m: gnuplot: worst error by entry value\n" + " basename-distance.m: gnuplot file showing distance probability\n" + "\n"); + +} diff --git a/libvorbis-1.0.1/vq/vqgen.c b/Dependencies/libvorbis/vq/vqgen.c similarity index 75% rename from libvorbis-1.0.1/vq/vqgen.c rename to Dependencies/libvorbis/vq/vqgen.c index c32da24..49aa63f 100644 --- a/libvorbis-1.0.1/vq/vqgen.c +++ b/Dependencies/libvorbis/vq/vqgen.c @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: train a VQ codebook - last mod: $Id: vqgen.c,v 1.41 2002/10/11 07:44:28 xiphmont Exp $ + last mod: $Id: vqgen.c 16037 2009-05-26 21:10:58Z xiphmont $ ********************************************************************/ @@ -106,16 +106,16 @@ void vqgen_cellmetric(vqgen *v){ for(k=0;kentries;k++){ if(j!=k){ - float this=_dist(v,_now(v,j),_now(v,k)); - if(this>0){ - if(v->assigned[k] && (localmin==-1 || this0){ + if(v->assigned[k] && (localmin==-1 || thisentries)continue; @@ -136,14 +136,14 @@ void vqgen_cellmetric(vqgen *v){ } fprintf(stderr,"cell diameter: %.03g::%.03g::%.03g (%ld unused/%ld dup)\n", - min,mean/acc,max,unused,dup); + min,mean/acc,max,unused,dup); #ifdef NOISY qsort(spacings,count,sizeof(float),directdsort); for(i=0;imaxquant){ - /* be paranoid; this should be impossible */ - fprintf(stderr,"fault; quantized value>max\n"); - exit(1); + /* be paranoid; this should be impossible */ + fprintf(stderr,"fault; quantized value>max\n"); + exit(1); } if(q->sequencep)last=(now*delta)+mindel+last; } @@ -238,8 +238,8 @@ void vqgen_unquantize(vqgen *v,quant_meta *q){ } void vqgen_init(vqgen *v,int elements,int aux,int entries,float mindist, - float (*metric)(vqgen *,float *, float *), - float *(*weight)(vqgen *,float *),int centroid){ + float (*metric)(vqgen *,float *, float *), + float *(*weight)(vqgen *,float *),int centroid){ memset(v,0,sizeof(vqgen)); v->centroid=centroid; @@ -277,7 +277,7 @@ void vqgen_addpoint(vqgen *v, float *p,float *a){ if(v->points>=v->allocated){ v->allocated*=2; v->pointlist=_ogg_realloc(v->pointlist,v->allocated*(v->elements+v->aux)* - sizeof(float)); + sizeof(float)); } memcpy(_point(v,v->points),p,sizeof(float)*v->elements); @@ -288,7 +288,7 @@ void vqgen_addpoint(vqgen *v, float *p,float *a){ /* quantize to the mesh */ for(k=0;kelements+v->aux;k++) _point(v,v->points)[k]= - rint(_point(v,v->points)[k]/v->mindist)*v->mindist; + rint(_point(v,v->points)[k]/v->mindist)*v->mindist; } v->points++; if(!(v->points&0xff))spinnit("loading... ",v->points); @@ -314,16 +314,16 @@ void vqgen_sortmesh(vqgen *v){ /* now march through and eliminate dupes */ for(i=1;ipoints;i++){ if(memcmp(_point(v,i),_point(v,i-1),sortsize)){ - /* a new, unique entry. march it down */ - if(i>march)memcpy(_point(v,march),_point(v,i),sortsize); - march++; + /* a new, unique entry. march it down */ + if(i>march)memcpy(_point(v,march),_point(v,i),sortsize); + march++; } spinnit("eliminating density... ",v->points-i); } /* we're done */ fprintf(stderr,"\r%ld training points remining out of %ld" - " after density mesh (%ld%%)\n",march,v->points,march*100/v->points); + " after density mesh (%ld%%)\n",march,v->points,march*100/v->points); v->points=march; } @@ -388,69 +388,69 @@ float vqgen_iterate(vqgen *v,int biasp){ if(!(i&0xff))spinnit("biasing... ",v->points+v->points+v->entries-i); if(firstmetric>secondmetric){ - float temp=firstmetric; - firstmetric=secondmetric; - secondmetric=temp; - firstentry=1; - secondentry=0; + float temp=firstmetric; + firstmetric=secondmetric; + secondmetric=temp; + firstentry=1; + secondentry=0; } for(j=2;jentries;j++){ - float thismetric=v->metric_func(v,_now(v,j),ppt)+v->bias[j]; - if(thismetricmetric_func(v,_now(v,j),ppt)+v->bias[j]; + if(thismetricentries;j++){ - - float thismetric,localmetric; - float *nearbiasptr=nearbias+desired2*j; - long k=nearcount[j]; - - localmetric=v->metric_func(v,_now(v,j),ppt); - /* 'thismetric' is to be the bias value necessary in the current - arrangement for entry j to capture point i */ - if(firstentry==j){ - /* use the secondary entry as the threshhold */ - thismetric=secondmetric-localmetric; - }else{ - /* use the primary entry as the threshhold */ - thismetric=firstmetric-localmetric; - } - - /* support the idea of 'minimum distance'... if we want the - cells in a codebook to be roughly some minimum size (as with - the low resolution residue books) */ - - /* a cute two-stage delayed sorting hack */ - if(kpoints+v->points+v->entries-i); - qsort(nearbiasptr,desired,sizeof(float),directdsort); - } - - }else if(thismetric>nearbiasptr[desired-1]){ - nearbiasptr[k]=thismetric; - k++; - if(k==desired2){ - spinnit("biasing... ",v->points+v->points+v->entries-i); - qsort(nearbiasptr,desired2,sizeof(float),directdsort); - k=desired; - } - } - nearcount[j]=k; + + float thismetric,localmetric; + float *nearbiasptr=nearbias+desired2*j; + long k=nearcount[j]; + + localmetric=v->metric_func(v,_now(v,j),ppt); + /* 'thismetric' is to be the bias value necessary in the current + arrangement for entry j to capture point i */ + if(firstentry==j){ + /* use the secondary entry as the threshhold */ + thismetric=secondmetric-localmetric; + }else{ + /* use the primary entry as the threshhold */ + thismetric=firstmetric-localmetric; + } + + /* support the idea of 'minimum distance'... if we want the + cells in a codebook to be roughly some minimum size (as with + the low resolution residue books) */ + + /* a cute two-stage delayed sorting hack */ + if(kpoints+v->points+v->entries-i); + qsort(nearbiasptr,desired,sizeof(float),directdsort); + } + + }else if(thismetric>nearbiasptr[desired-1]){ + nearbiasptr[k]=thismetric; + k++; + if(k==desired2){ + spinnit("biasing... ",v->points+v->points+v->entries-i); + qsort(nearbiasptr,desired2,sizeof(float),directdsort); + k=desired; + } + } + nearcount[j]=k; } } @@ -463,7 +463,7 @@ float vqgen_iterate(vqgen *v,int biasp){ /* due to the delayed sorting, we likely need to finish it off....*/ if(nearcount[i]>desired) - qsort(nearbiasptr,nearcount[i],sizeof(float),directdsort); + qsort(nearbiasptr,nearcount[i],sizeof(float),directdsort); v->bias[i]=nearbiasptr[desired-1]; @@ -483,8 +483,8 @@ float vqgen_iterate(vqgen *v,int biasp){ for(j=0;jentries;j++){ float thismetric=v->metric_func(v,_now(v,j),ppt)+v->bias[j]; if(thismetriccentroid==0){ /* set up midpoints for next iter */ if(v->assigned[j]++){ - for(k=0;kelements;k++) - vN(new,j)[k]+=ppt[k]; - if(firstmetric>v->max[j])v->max[j]=firstmetric; + for(k=0;kelements;k++) + vN(new,j)[k]+=ppt[k]; + if(firstmetric>v->max[j])v->max[j]=firstmetric; }else{ - for(k=0;kelements;k++) - vN(new,j)[k]=ppt[k]; - v->max[j]=firstmetric; + for(k=0;kelements;k++) + vN(new,j)[k]=ppt[k]; + v->max[j]=firstmetric; } }else{ /* centroid */ if(v->assigned[j]++){ - for(k=0;kelements;k++){ - if(vN(new,j)[k]>ppt[k])vN(new,j)[k]=ppt[k]; - if(vN(new2,j)[k]v->max[firstentry])v->max[j]=firstmetric; + for(k=0;kelements;k++){ + if(vN(new,j)[k]>ppt[k])vN(new,j)[k]=ppt[k]; + if(vN(new2,j)[k]v->max[firstentry])v->max[j]=firstmetric; }else{ - for(k=0;kelements;k++){ - vN(new,j)[k]=ppt[k]; - vN(new2,j)[k]=ppt[k]; - } - v->max[firstentry]=firstmetric; + for(k=0;kelements;k++){ + vN(new,j)[k]=ppt[k]; + vN(new2,j)[k]=ppt[k]; + } + v->max[firstentry]=firstmetric; } } } @@ -538,11 +538,11 @@ float vqgen_iterate(vqgen *v,int biasp){ asserror+=fabs(v->assigned[j]-fdesired); if(v->assigned[j]){ if(v->centroid==0){ - for(k=0;kelements;k++) - _now(v,j)[k]=vN(new,j)[k]/v->assigned[j]; + for(k=0;kelements;k++) + _now(v,j)[k]=vN(new,j)[k]/v->assigned[j]; }else{ - for(k=0;kelements;k++) - _now(v,j)[k]=(vN(new,j)[k]+vN(new2,j)[k])/2.f; + for(k=0;kelements;k++) + _now(v,j)[k]=(vN(new,j)[k]+vN(new2,j)[k])/2.f; } } } @@ -551,7 +551,7 @@ float vqgen_iterate(vqgen *v,int biasp){ fprintf(stderr,"Pass #%d... ",v->it); fprintf(stderr,": dist %g(%g) metric error=%g \n", - asserror,fdesired,meterror/v->points); + asserror,fdesired,meterror/v->points); v->it++; free(new); diff --git a/libvorbis-1.0.1/vq/vqgen.h b/Dependencies/libvorbis/vq/vqgen.h similarity index 86% rename from libvorbis-1.0.1/vq/vqgen.h rename to Dependencies/libvorbis/vq/vqgen.h index 256d5a5..9076513 100644 --- a/libvorbis-1.0.1/vq/vqgen.h +++ b/Dependencies/libvorbis/vq/vqgen.h @@ -6,12 +6,12 @@ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: build a VQ codebook - last mod: $Id: vqgen.h,v 1.19 2001/12/20 01:00:40 segher Exp $ + last mod: $Id: vqgen.h 16037 2009-05-26 21:10:58Z xiphmont $ ********************************************************************/ @@ -67,9 +67,9 @@ static inline float *_now(vqgen *v,long ptr){ } extern void vqgen_init(vqgen *v, - int elements,int aux,int entries,float mindist, - float (*metric)(vqgen *,float *, float *), - float *(*weight)(vqgen *,float *),int centroid); + int elements,int aux,int entries,float mindist, + float (*metric)(vqgen *,float *, float *), + float *(*weight)(vqgen *,float *),int centroid); extern void vqgen_addpoint(vqgen *v, float *p,float *aux); extern float vqgen_iterate(vqgen *v,int biasp); diff --git a/Dependencies/libvorbis/win32/VS2005/README b/Dependencies/libvorbis/win32/VS2005/README new file mode 100644 index 0000000..931047e --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/README @@ -0,0 +1,16 @@ +libvorbis has libogg as a dependency, you need to have libogg +compiled beforehand. + +Lets say you have libogg and libvorbis in the same directory: + +libogg-1.1.3 +libvorbis-1.2.0 + +Because there is no automatic library detection you have to, +either: + +1. Rename libogg-1.1.3 to libogg + +2. Open libogg.vsprops with a text editor (even notepad.exe +will suffice) and see if LIBOGG_VERSION is set to the correct +version, in this case "1.1.3" diff --git a/Dependencies/libvorbis/win32/VS2005/libogg.vsprops b/Dependencies/libvorbis/win32/VS2005/libogg.vsprops new file mode 100644 index 0000000..7fe0db7 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/libogg.vsprops @@ -0,0 +1,19 @@ + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_dynamic.vcproj new file mode 100644 index 0000000..772d223 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_dynamic.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_static.vcproj b/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_static.vcproj new file mode 100644 index 0000000..5a7403d --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis_static.vcproj @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_dynamic.vcproj new file mode 100644 index 0000000..5c541ac --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_dynamic.vcproj @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_static.vcproj b/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_static.vcproj new file mode 100644 index 0000000..a409810 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile_static.vcproj @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/vorbis_dynamic.sln b/Dependencies/libvorbis/win32/VS2005/vorbis_dynamic.sln new file mode 100644 index 0000000..237a5b7 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbis_dynamic.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "libvorbisfile\libvorbisfile_dynamic.vcproj", "{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "libvorbis\libvorbis_dynamic.vcproj", "{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisdec", "vorbisdec\vorbisdec_dynamic.vcproj", "{5833EEA1-1068-431F-A6E5-316E7DC5D90A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisenc", "vorbisenc\vorbisenc_dynamic.vcproj", "{E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_SSE|Win32 = Release_SSE|Win32 + Release_SSE|x64 = Release_SSE|x64 + Release_SSE2|Win32 = Release_SSE2|Win32 + Release_SSE2|x64 = Release_SSE2|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.ActiveCfg = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.Build.0 = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.ActiveCfg = Release|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.Build.0 = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.ActiveCfg = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.Build.0 = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.ActiveCfg = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.Build.0 = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.ActiveCfg = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.Build.0 = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.ActiveCfg = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.Build.0 = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.ActiveCfg = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.Build.0 = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.ActiveCfg = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.Build.0 = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.Build.0 = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.ActiveCfg = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.Build.0 = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.ActiveCfg = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.Build.0 = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.ActiveCfg = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Dependencies/libvorbis/win32/VS2005/vorbis_static.sln b/Dependencies/libvorbis/win32/VS2005/vorbis_static.sln new file mode 100644 index 0000000..c374bd3 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbis_static.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "libvorbisfile\libvorbisfile_static.vcproj", "{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "libvorbis\libvorbis_static.vcproj", "{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisdec", "vorbisdec\vorbisdec_static.vcproj", "{5833EEA1-1068-431F-A6E5-316E7DC5D90A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisenc", "vorbisenc\vorbisenc_static.vcproj", "{E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_SSE|Win32 = Release_SSE|Win32 + Release_SSE|x64 = Release_SSE|x64 + Release_SSE2|Win32 = Release_SSE2|Win32 + Release_SSE2|x64 = Release_SSE2|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.ActiveCfg = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.Build.0 = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.ActiveCfg = Release|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.Build.0 = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.ActiveCfg = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.Build.0 = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.ActiveCfg = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.Build.0 = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.ActiveCfg = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.Build.0 = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.ActiveCfg = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.Build.0 = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.ActiveCfg = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.Build.0 = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.ActiveCfg = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.Build.0 = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.Build.0 = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.ActiveCfg = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.Build.0 = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.ActiveCfg = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.Build.0 = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.ActiveCfg = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_dynamic.vcproj new file mode 100644 index 0000000..84687a2 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_dynamic.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_static.vcproj b/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_static.vcproj new file mode 100644 index 0000000..f3b83a9 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec_static.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_dynamic.vcproj new file mode 100644 index 0000000..19366b5 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_dynamic.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_static.vcproj b/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_static.vcproj new file mode 100644 index 0000000..7c7a626 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc_static.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/README b/Dependencies/libvorbis/win32/VS2008/README new file mode 100644 index 0000000..931047e --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/README @@ -0,0 +1,16 @@ +libvorbis has libogg as a dependency, you need to have libogg +compiled beforehand. + +Lets say you have libogg and libvorbis in the same directory: + +libogg-1.1.3 +libvorbis-1.2.0 + +Because there is no automatic library detection you have to, +either: + +1. Rename libogg-1.1.3 to libogg + +2. Open libogg.vsprops with a text editor (even notepad.exe +will suffice) and see if LIBOGG_VERSION is set to the correct +version, in this case "1.1.3" diff --git a/Dependencies/libvorbis/win32/VS2008/libogg.vsprops b/Dependencies/libvorbis/win32/VS2008/libogg.vsprops new file mode 100644 index 0000000..1355b50 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/libogg.vsprops @@ -0,0 +1,19 @@ + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_dynamic.vcproj new file mode 100644 index 0000000..e3c7b56 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_dynamic.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_static.vcproj b/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_static.vcproj new file mode 100644 index 0000000..ba252a2 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/libvorbis/libvorbis_static.vcproj @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_dynamic.vcproj new file mode 100644 index 0000000..c799088 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_dynamic.vcproj @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_static.vcproj b/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_static.vcproj new file mode 100644 index 0000000..a0acbd0 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/libvorbisfile/libvorbisfile_static.vcproj @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/vorbis_dynamic.sln b/Dependencies/libvorbis/win32/VS2008/vorbis_dynamic.sln new file mode 100644 index 0000000..1c141d2 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbis_dynamic.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "libvorbisfile\libvorbisfile_dynamic.vcproj", "{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "libvorbis\libvorbis_dynamic.vcproj", "{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisdec", "vorbisdec\vorbisdec_dynamic.vcproj", "{5833EEA1-1068-431F-A6E5-316E7DC5D90A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisenc", "vorbisenc\vorbisenc_dynamic.vcproj", "{E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_SSE|Win32 = Release_SSE|Win32 + Release_SSE|x64 = Release_SSE|x64 + Release_SSE2|Win32 = Release_SSE2|Win32 + Release_SSE2|x64 = Release_SSE2|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.ActiveCfg = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.Build.0 = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.ActiveCfg = Release|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.Build.0 = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.ActiveCfg = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.Build.0 = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.ActiveCfg = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.Build.0 = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.ActiveCfg = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.Build.0 = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.ActiveCfg = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.Build.0 = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.ActiveCfg = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.Build.0 = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.ActiveCfg = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.Build.0 = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.Build.0 = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.ActiveCfg = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.Build.0 = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.ActiveCfg = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.Build.0 = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.ActiveCfg = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Dependencies/libvorbis/win32/VS2008/vorbis_static.sln b/Dependencies/libvorbis/win32/VS2008/vorbis_static.sln new file mode 100644 index 0000000..45b8be4 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbis_static.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "libvorbisfile\libvorbisfile_static.vcproj", "{CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "libvorbis\libvorbis_static.vcproj", "{3A214E06-B95E-4D61-A291-1F8DF2EC10FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisdec", "vorbisdec\vorbisdec_static.vcproj", "{5833EEA1-1068-431F-A6E5-316E7DC5D90A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vorbisenc", "vorbisenc\vorbisenc_static.vcproj", "{E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release_SSE|Win32 = Release_SSE|Win32 + Release_SSE|x64 = Release_SSE|x64 + Release_SSE2|Win32 = Release_SSE2|Win32 + Release_SSE2|x64 = Release_SSE2|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.ActiveCfg = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|x64.Build.0 = Debug|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.ActiveCfg = Release|x64 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|x64.Build.0 = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.ActiveCfg = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|x64.Build.0 = Debug|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.ActiveCfg = Release|x64 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|x64.Build.0 = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.ActiveCfg = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|Win32.Build.0 = Debug|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.ActiveCfg = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Debug|x64.Build.0 = Debug|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.ActiveCfg = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|Win32.Build.0 = Release|Win32 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.ActiveCfg = Release|x64 + {5833EEA1-1068-431F-A6E5-316E7DC5D90A}.Release|x64.Build.0 = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|Win32.Build.0 = Debug|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.ActiveCfg = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Debug|x64.Build.0 = Debug|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|Win32.Build.0 = Release_SSE|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.ActiveCfg = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE|x64.Build.0 = Release_SSE|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.ActiveCfg = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release_SSE2|x64.Build.0 = Release_SSE2|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.ActiveCfg = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|Win32.Build.0 = Release|Win32 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.ActiveCfg = Release|x64 + {E48B6A8B-F7FE-4DA8-8248-E64DBAC4F56C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_dynamic.vcproj new file mode 100644 index 0000000..e5783ac --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_dynamic.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_static.vcproj b/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_static.vcproj new file mode 100644 index 0000000..b2597ce --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbisdec/vorbisdec_static.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_dynamic.vcproj b/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_dynamic.vcproj new file mode 100644 index 0000000..bb783d4 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_dynamic.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_static.vcproj b/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_static.vcproj new file mode 100644 index 0000000..b93f165 --- /dev/null +++ b/Dependencies/libvorbis/win32/VS2008/vorbisenc/vorbisenc_static.vcproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libvorbis-1.0.1/win32/vorbis.def b/Dependencies/libvorbis/win32/vorbis.def similarity index 86% rename from libvorbis-1.0.1/win32/vorbis.def rename to Dependencies/libvorbis/win32/vorbis.def index bbc267e..f397283 100644 --- a/libvorbis-1.0.1/win32/vorbis.def +++ b/Dependencies/libvorbis/win32/vorbis.def @@ -1,5 +1,5 @@ ; -; $Id: vorbis.def,v 1.14 2003/11/16 17:23:55 oddsock Exp $ +; $Id: vorbis.def 16335 2009-07-25 22:52:38Z cristianadam $ ; LIBRARY EXPORTS @@ -45,12 +45,15 @@ vorbis_synthesis_read vorbis_packet_blocksize vorbis_synthesis_halfrate vorbis_synthesis_halfrate_p +vorbis_synthesis_idheader ; vorbis_window -_analysis_output_always +;_analysis_output_always vorbis_encode_init vorbis_encode_setup_managed vorbis_encode_setup_vbr vorbis_encode_init_vbr vorbis_encode_setup_init -vorbis_encode_ctl \ No newline at end of file +vorbis_encode_ctl +; +vorbis_version_string diff --git a/libvorbis-1.0.1/win32/vorbisenc.def b/Dependencies/libvorbis/win32/vorbisenc.def similarity index 72% rename from libvorbis-1.0.1/win32/vorbisenc.def rename to Dependencies/libvorbis/win32/vorbisenc.def index 9221d83..d3e562f 100644 --- a/libvorbis-1.0.1/win32/vorbisenc.def +++ b/Dependencies/libvorbis/win32/vorbisenc.def @@ -1,5 +1,5 @@ ; -; $Id: vorbisenc.def,v 1.4 2003/10/01 22:27:26 giles Exp $ +; $Id: vorbisenc.def 7187 2004-07-20 07:24:27Z xiphmont $ ; LIBRARY diff --git a/libvorbis-1.0.1/win32/vorbisfile.def b/Dependencies/libvorbis/win32/vorbisfile.def similarity index 85% rename from libvorbis-1.0.1/win32/vorbisfile.def rename to Dependencies/libvorbis/win32/vorbisfile.def index d0bd2b3..91f243f 100644 --- a/libvorbis-1.0.1/win32/vorbisfile.def +++ b/Dependencies/libvorbis/win32/vorbisfile.def @@ -1,7 +1,7 @@ ; ; vorbisfile.def ; -; last modified: $Id: vorbisfile.def,v 1.6 2003/10/01 22:27:26 giles Exp $ +; last modified: $Id: vorbisfile.def 15566 2008-12-08 09:07:12Z conrad $ ; LIBRARY EXPORTS @@ -39,3 +39,4 @@ ov_test_open ov_crosslap ov_halfrate ov_halfrate_p +ov_fopen diff --git a/libvorbis-1.0.1/HACKING b/libvorbis-1.0.1/HACKING deleted file mode 100644 index 1c0a284..0000000 --- a/libvorbis-1.0.1/HACKING +++ /dev/null @@ -1,48 +0,0 @@ -Note that these instructions are *not* necessary for distribution -tarballs; they have separate configure/build instructions. - -Building this package from CVS is mainly intended for developers. -General users should obtain official distribution packages; both -source and binary distributions are available at -http://www.vorbis.com/. - ------ - -These are *brief* instructions on how to build this package from CVS. -Yes, there are details left out. - -There are generally four steps necessary when building from CVS (i.e., -a developer's copy): - -1. cvs checkout of the sources, or cvs update. RTFM from your - favorite flavor of CVS documentation; information on the xiph.org - CVS repository can be found at http://www.xiph.org/cvs.html. - -2. [re-]generate files such as "configure" and "Makefile.in" with the - GNU autoconf/automake tools. Run the "autogen.sh" script to - perform this step. - - *** IF YOU ARE NOT BUILDING WITH GNU MAKE *AND* GCC: you must set - the AUTOMAKE_FLAGS environment variable to "--include-deps" - before running autogen.sh. For example: - - csh% setenv AUTOMAKE_FLAGS --include-deps - csh% ./autogen.sh - or - sh% AUTOMAKE_FLAGS=--include-deps ./autogen.sh - -3. Run configure. There are several options available; see - "./configure --help" for more information. - -4. Run "make" to build the source. - -In general, steps 2 and 3 need to be re-run every time any of the -following files are modified (either manually or by a cvs update): - - configure.in - acinclude.m4 - -Running "make clean" after running steps 2 and 3 is generally also -advisable before running step 4. It isn't *always* necessary, but -unless you understand the workings of autoconf/automake, it's safest -to just do it. diff --git a/libvorbis-1.0.1/Makefile.am b/libvorbis-1.0.1/Makefile.am deleted file mode 100644 index b99f500..0000000 --- a/libvorbis-1.0.1/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign dist-zip - -SUBDIRS = lib include doc examples win32 debian vq - -m4datadir = $(datadir)/aclocal -m4data_DATA = vorbis.m4 - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc - -EXTRA_DIST = HACKING todo.txt macos macosx autogen.sh libvorbis.spec \ - vorbis.m4 vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in - -dist-hook: - rm -rf `find $(distdir)/macos -name CVS` - rm -rf `find $(distdir)/macosx -name CVS` - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" diff --git a/libvorbis-1.0.1/Makefile.in b/libvorbis-1.0.1/Makefile.in deleted file mode 100644 index 2937bd5..0000000 --- a/libvorbis-1.0.1/Makefile.in +++ /dev/null @@ -1,434 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign dist-zip - -SUBDIRS = lib include doc examples win32 debian vq - -m4datadir = $(datadir)/aclocal -m4data_DATA = vorbis.m4 - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc - -EXTRA_DIST = HACKING todo.txt macos macosx autogen.sh libvorbis.spec vorbis.m4 vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in - -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = vorbis.pc vorbisenc.pc vorbisfile.pc -DATA = $(m4data_DATA) $(pkgconfig_DATA) - -DIST_COMMON = README AUTHORS COPYING Makefile.am Makefile.in \ -acinclude.m4 aclocal.m4 config.guess config.sub configure configure.in \ -install-sh ltmain.sh missing mkinstalldirs vorbis.pc.in vorbisenc.pc.in \ -vorbisfile.pc.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 - cd $(srcdir) && $(ACLOCAL) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) -vorbis.pc: $(top_builddir)/config.status vorbis.pc.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -vorbisenc.pc: $(top_builddir)/config.status vorbisenc.pc.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -vorbisfile.pc: $(top_builddir)/config.status vorbisfile.pc.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -install-m4dataDATA: $(m4data_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(m4datadir) - @list='$(m4data_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p; \ - fi; fi; \ - done - -uninstall-m4dataDATA: - @$(NORMAL_UNINSTALL) - list='$(m4data_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(m4datadir)/$$p; \ - done - -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir) - @list='$(pkgconfig_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgconfigdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgconfigdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgconfigdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(pkgconfigdir)/$$p; \ - fi; fi; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - list='$(pkgconfig_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(pkgconfigdir)/$$p; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-zip: distdir - -chmod -R a+r $(distdir) - zip -rq $(distdir).zip $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - zip -rq $(distdir).zip $(distdir) - -rm -rf $(distdir) -distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: install-m4dataDATA install-pkgconfigDATA -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-m4dataDATA uninstall-pkgconfigDATA -uninstall: uninstall-recursive -all-am: Makefile $(DATA) -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(m4datadir) $(DESTDIR)$(pkgconfigdir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -rm -f config.status - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -rm -f config.status - -.PHONY: uninstall-m4dataDATA install-m4dataDATA uninstall-pkgconfigDATA \ -install-pkgconfigDATA install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -dist-hook: - rm -rf `find $(distdir)/macos -name CVS` - rm -rf `find $(distdir)/macosx -name CVS` - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/aclocal.m4 b/libvorbis-1.0.1/aclocal.m4 deleted file mode 100644 index 7645038..0000000 --- a/libvorbis-1.0.1/aclocal.m4 +++ /dev/null @@ -1,6990 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p6 - -dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -# acinclude.m4 -# all .m4 files needed that might not be installed go here - -# Configure paths for libogg -# Jack Moffitt 10-21-2000 -# Shamelessly stolen from Owen Taylor and Manish Singh - -dnl XIPH_PATH_OGG([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) -dnl Test for libogg, and define OGG_CFLAGS and OGG_LIBS -dnl -AC_DEFUN(XIPH_PATH_OGG, -[dnl -dnl Get the cflags and libraries -dnl -AC_ARG_WITH(ogg,[ --with-ogg=PFX Prefix where libogg is installed (optional)], ogg_prefix="$withval", ogg_prefix="") -AC_ARG_WITH(ogg-libraries,[ --with-ogg-libraries=DIR Directory where libogg library is installed (optional)], ogg_libraries="$withval", ogg_libraries="") -AC_ARG_WITH(ogg-includes,[ --with-ogg-includes=DIR Directory where libogg header files are installed (optional)], ogg_includes="$withval", ogg_includes="") -AC_ARG_ENABLE(oggtest, [ --disable-oggtest Do not try to compile and run a test Ogg program],, enable_oggtest=yes) - - if test "x$ogg_libraries" != "x" ; then - OGG_LIBS="-L$ogg_libraries" - elif test "x$ogg_prefix" != "x" ; then - OGG_LIBS="-L$ogg_prefix/lib" - elif test "x$prefix" != "xNONE" ; then - OGG_LIBS="-L$prefix/lib" - fi - - OGG_LIBS="$OGG_LIBS -logg" - - if test "x$ogg_includes" != "x" ; then - OGG_CFLAGS="-I$ogg_includes" - elif test "x$ogg_prefix" != "x" ; then - OGG_CFLAGS="-I$ogg_prefix/include" - elif test "x$prefix" != "xNONE"; then - OGG_CFLAGS="-I$prefix/include" - fi - - AC_MSG_CHECKING(for Ogg) - no_ogg="" - - - if test "x$enable_oggtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $OGG_CFLAGS" - LIBS="$LIBS $OGG_LIBS" -dnl -dnl Now check if the installed Ogg is sufficiently new. -dnl - rm -f conf.oggtest - AC_TRY_RUN([ -#include -#include -#include -#include - -int main () -{ - system("touch conf.oggtest"); - return 0; -} - -],, no_ogg=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - - if test "x$no_ogg" = "x" ; then - AC_MSG_RESULT(yes) - ifelse([$1], , :, [$1]) - else - AC_MSG_RESULT(no) - if test -f conf.oggtest ; then - : - else - echo "*** Could not run Ogg test program, checking why..." - CFLAGS="$CFLAGS $OGG_CFLAGS" - LIBS="$LIBS $OGG_LIBS" - AC_TRY_LINK([ -#include -#include -], [ return 0; ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding Ogg or finding the wrong" - echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means Ogg was incorrectly installed" - echo "*** or that you have moved Ogg since it was installed. In the latter case, you" - echo "*** may want to edit the ogg-config script: $OGG_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - OGG_CFLAGS="" - OGG_LIBS="" - ifelse([$2], , :, [$2]) - fi - AC_SUBST(OGG_CFLAGS) - AC_SUBST(OGG_LIBS) - rm -f conf.oggtest -]) - -# lib-prefix.m4 serial 3 (gettext-0.12.2) -dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -# lib-link.m4 serial 4 (gettext-0.12) -dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - undefine([Name]) - undefine([NAME]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - undefine([Name]) - undefine([NAME]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, -dnl hardcode_direct, hardcode_minus_L. -AC_DEFUN([AC_LIB_RPATH], -[ - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE(rpath, - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib$1-prefix], -[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib - --without-lib$1-prefix don't search for lib$1 in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -# lib-ld.m4 serial 2 (gettext-0.12) -dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl Subroutines of libtool.m4, -dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision -dnl with libtool.m4. - -dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi]) -with_gnu_ld=$acl_cv_prog_gnu_ld -]) - -dnl From libtool-1.4. Sets the variable LD. -AC_DEFUN([AC_LIB_PROG_LD], -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - [re_direlt='/[^/][^/]*/\.\./'] - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(acl_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_LIB_PROG_LD_GNU -]) - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# Copyright 2002 Free Software Foundation, Inc. - -# 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, 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., 59 Temple Place - Suite 330, Boston, MA - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.4-p6])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN([AM_MISSING_PROG], -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# serial 1 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT($USE_MAINTAINER_MODE) - AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -# Define a conditional. - -AC_DEFUN([AM_CONDITIONAL], -[AC_SUBST($1_TRUE) -AC_SUBST($1_FALSE) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -# serial 47 AC_PROG_LIBTOOL -# Debian $Rev: 100 $ - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If this macro is not defined by Autoconf, define it here. -m4_ifdef([AC_PROVIDE_IFELSE], - [], - [m4_define([AC_PROVIDE_IFELSE], - [m4_ifdef([AC_PROVIDE_$1], - [$2], [$3])])]) - - -# AC_PROG_LIBTOOL -# --------------- -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [AC_LIBTOOL_CXX], - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX - ])]) -dnl And a similar setup for Fortran 77 support - AC_PROVIDE_IFELSE([AC_PROG_F77], - [AC_LIBTOOL_F77], - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 -])]) - -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. - AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [ifdef([AC_PROG_GCJ], - [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([A][M_PROG_GCJ], - [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([LT_AC_PROG_GCJ], - [define([LT_AC_PROG_GCJ], - defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) -])])# AC_PROG_LIBTOOL - - -# _AC_PROG_LIBTOOL -# ---------------- -AC_DEFUN([_AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -])# _AC_PROG_LIBTOOL - - -# AC_LIBTOOL_SETUP -# ---------------- -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.50)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl - -AC_LIBTOOL_SYS_MAX_CMD_LEN -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] - -# Same as above, but do not quote variable references. -[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -AC_CHECK_TOOL(AR, ar, false) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=yes, enable_win32_dll=no) - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -AC_LIBTOOL_LANG_C_CONFIG -_LT_AC_TAGCONFIG -])# AC_LIBTOOL_SETUP - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], -[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -AC_DEFUN([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -])])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; - ]) -esac - -need_locks="$enable_libtool_lock" - -])# _LT_AC_LOCK - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED]) -AC_CACHE_CHECK([$1], [$2], - [$2=no - ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - $2=yes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" = xyes; then - ifelse([$5], , :, [$5]) -else - ifelse([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], -[AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - else - $2=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - ifelse([$4], , :, [$4]) -else - ifelse([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - testring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - *) - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - testring=$testring$testring - done - testring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# -------------------- -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h)dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ------------------------------------------------------------------ -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_unknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* -]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links="nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # /usr/X11R6/lib and /usr/local/lib are common enough... - sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /usr/local/lib" - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_ARG_WITH([tags], - [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], - [include additional configurations @<:@automatic@:>@])], - [tagnames="$withval"]) - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - AC_MSG_WARN([output file `$ofile' does not exist]) - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) - else - AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in - "") ;; - *) AC_MSG_ERROR([invalid tag name: $tagname]) - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then - AC_LIBTOOL_LANG_CXX_CONFIG - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - AC_LIBTOOL_LANG_F77_CONFIG - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - AC_LIBTOOL_LANG_GCJ_CONFIG - else - tagname="" - fi - ;; - - RC) - AC_LIBTOOL_LANG_RC_CONFIG - ;; - - *) - AC_MSG_ERROR([Unsupported tag name: $tagname]) - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - AC_MSG_ERROR([unable to update list of available tagged configurations.]) - fi -fi -])# _LT_AC_TAGCONFIG - - -# AC_LIBTOOL_DLOPEN -# ----------------- -# enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_DLOPEN - - -# AC_LIBTOOL_WIN32_DLL -# -------------------- -# declare package support for building win32 dll's -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_WIN32_DLL - - -# AC_ENABLE_SHARED([DEFAULT]) -# --------------------------- -# implement the --enable-shared flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([shared], - [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]AC_ENABLE_SHARED_DEFAULT) -])# AC_ENABLE_SHARED - - -# AC_DISABLE_SHARED -# ----------------- -#- set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -])# AC_DISABLE_SHARED - - -# AC_ENABLE_STATIC([DEFAULT]) -# --------------------------- -# implement the --enable-static flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([static], - [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]AC_ENABLE_STATIC_DEFAULT) -])# AC_ENABLE_STATIC - - -# AC_DISABLE_STATIC -# ----------------- -# set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -])# AC_DISABLE_STATIC - - -# AC_ENABLE_FAST_INSTALL([DEFAULT]) -# --------------------------------- -# implement the --enable-fast-install flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([fast-install], - [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) -])# AC_ENABLE_FAST_INSTALL - - -# AC_DISABLE_FAST_INSTALL -# ----------------------- -# set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -])# AC_DISABLE_FAST_INSTALL - - -# AC_LIBTOOL_PICMODE([MODE]) -# -------------------------- -# implement the --with-pic flag -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default) -])# AC_LIBTOOL_PICMODE - - -# AC_PROG_EGREP -# ------------- -# This is predefined starting with Autoconf 2.54, so this conditional -# definition can be removed once we require Autoconf 2.54 or later. -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi]) - EGREP=$ac_cv_prog_egrep - AC_SUBST([EGREP]) -])]) - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognise shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="ifelse([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognise a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - esac - fi - done - IFS="$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -])# AC_PROG_NM - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -])# AC_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will -# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided and an installed libltdl is not found, it is -# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' -# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single -# quotes!). If your package is not flat and you're not using automake, -# define top_builddir and top_srcdir appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_CXX -# -------------- -# enable support for C++ libraries -AC_DEFUN([AC_LIBTOOL_CXX], -[AC_REQUIRE([_LT_AC_LANG_CXX]) -])# AC_LIBTOOL_CXX - - -# _LT_AC_LANG_CXX -# --------------- -AC_DEFUN([_LT_AC_LANG_CXX], -[AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - - -# AC_LIBTOOL_F77 -# -------------- -# enable support for Fortran 77 libraries -AC_DEFUN([AC_LIBTOOL_F77], -[AC_REQUIRE([_LT_AC_LANG_F77]) -])# AC_LIBTOOL_F77 - - -# _LT_AC_LANG_F77 -# --------------- -AC_DEFUN([_LT_AC_LANG_F77], -[AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -])# _LT_AC_LANG_F77 - - -# AC_LIBTOOL_GCJ -# -------------- -# enable support for GCJ libraries -AC_DEFUN([AC_LIBTOOL_GCJ], -[AC_REQUIRE([_LT_AC_LANG_GCJ]) -])# AC_LIBTOOL_GCJ - - -# _LT_AC_LANG_GCJ -# --------------- -AC_DEFUN([_LT_AC_LANG_GCJ], -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], - [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], - [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) -])# _LT_AC_LANG_GCJ - - -# AC_LIBTOOL_RC -# -------------- -# enable support for Windows resource files -AC_DEFUN([AC_LIBTOOL_RC], -[AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) -])# AC_LIBTOOL_RC - - -# AC_LIBTOOL_LANG_C_CONFIG -# ------------------------ -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -AC_DEFUN([_LT_AC_LANG_C_CONFIG], -[lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - -_LT_AC_SYS_COMPILER - -# -# Check for any special shared library compilation flags. -# -_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' - ;; - esac -fi -if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then - AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : - else - AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) - _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) - - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) - -# Report which librarie types wil actually be built -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_C_CONFIG - - -# AC_LIBTOOL_LANG_CXX_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)= -_LT_AC_TAGVAR(postdep_objects, $1)= -_LT_AC_TAGVAR(predeps, $1)= -_LT_AC_TAGVAR(postdeps, $1)= -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - AC_PROG_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -_LT_AC_TAGVAR(ld_shlibs, $1)=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - freebsd[12]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - linux*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - osf3*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ - $rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - sco*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_AC_TAGVAR(GCC, $1)="$GXX" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_POSTDEP_PREDEP($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -])# AC_LIBTOOL_LANG_CXX_CONFIG - -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------ -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" -ifelse([$1], [], -[#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG], -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) - -# Is the compiler the GNU C compiler? -with_gcc=$_LT_AC_TAGVAR(GCC, $1) - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_[]_LT_AC_TAGVAR(LD, $1) - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) - -# Commands used to build and install a shared archive. -archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) -archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) -module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" - -# Set to yes if exported symbols are required. -always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) - -# The commands to list exported symbols. -export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) - -# Symbols that must always be exported. -include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) - -ifelse([$1],[], -[# ### END LIBTOOL CONFIG], -[# ### END LIBTOOL TAG CONFIG: $tagname]) - -__EOF__ - -ifelse([$1],[], [ - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -]) -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi -])# AC_LIBTOOL_CONFIG - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris* | sysv5*) - symcode='[[BDRT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) - ifelse([$1],[CXX],[ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - icpc) - # Intel C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx) - # Digital/Compaq C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc) - # Lucid - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" - ;; -esac -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -ifelse([$1],[CXX],[ - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -],[ - runpath_var= - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)= - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown - _LT_AC_TAGVAR(hardcode_automatic, $1)=no - _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_AC_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - bsdi4*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - openbsd*) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - sco3.2v5*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4.2uw2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv5*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_AC_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) - then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_AC_FILE_LTDLL_C -# ------------------- -# Be careful that the start marker always follows a newline. -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ -])# _LT_AC_FILE_LTDLL_C - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) - - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -AC_DEFUN([LT_AC_PROG_GCJ], -[AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS) -]) - -AC_DEFUN([LT_AC_PROG_RC], -[AC_CHECK_TOOL(RC, windres, no) -]) - -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && break - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -SED=$lt_cv_path_SED -]) -AC_MSG_RESULT([$SED]) -]) - diff --git a/libvorbis-1.0.1/autogen.sh b/libvorbis-1.0.1/autogen.sh deleted file mode 100755 index 6d1cf74..0000000 --- a/libvorbis-1.0.1/autogen.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# Run this to set up the build system: configure, makefiles, etc. -# (based on the version in enlightenment's cvs) - -package="vorbis" - -olddir=`pwd` -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -cd "$srcdir" -DIE=0 - -echo "checking for autoconf... " -(autoconf --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have autoconf installed to compile $package." - echo "Download the appropriate package for your distribution," - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} - -echo "checking for automake... " -(automake --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have automake installed to compile $package." - echo "Download the appropriate package for your system," - echo "or get the source from one of the GNU ftp sites" - echo "listed in http://www.gnu.org/order/ftp.html" - DIE=1 -} - -echo -n "checking for libtool... " -for LIBTOOLIZE in libtoolize glibtoolize nope; do - (which $LIBTOOLIZE) > /dev/null 2>&1 && break -done -if test x$LIBTOOLIZE = xnope; then - echo "nope." - LIBTOOLIZE=libtoolize -else - echo $LIBTOOLIZE -fi -($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have libtool installed to compile $package." - echo "Download the appropriate package for your system," - echo "or get the source from one of the GNU ftp sites" - echo "listed in http://www.gnu.org/order/ftp.html" - DIE=1 -} - -if test "$DIE" -eq 1; then - exit 1 -fi - -if test -z "$*"; then - echo "I am going to run ./configure with no arguments - if you wish " - echo "to pass any to it, please specify them on the $0 command line." -fi - -echo "Generating configuration files for $package, please wait...." - -echo " aclocal $ACLOCAL_FLAGS" -aclocal $ACLOCAL_FLAGS -#echo " autoheader" -#autoheader -echo " $LIBTOOLIZE --automake" -$LIBTOOLIZE --automake -echo " automake --add-missing $AUTOMAKE_FLAGS" -automake --add-missing $AUTOMAKE_FLAGS -echo " autoconf" -autoconf - -cd $olddir -$srcdir/configure "$@" && echo diff --git a/libvorbis-1.0.1/configure b/libvorbis-1.0.1/configure deleted file mode 100755 index ff4cbb0..0000000 --- a/libvorbis-1.0.1/configure +++ /dev/null @@ -1,20939 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.58. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=${tagnames+${tagnames},}CXX - -tagnames=${tagnames+${tagnames},}F77 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="lib/mdct.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT V_LIB_CURRENT V_LIB_REVISION V_LIB_AGE VF_LIB_CURRENT VF_LIB_REVISION VF_LIB_AGE VE_LIB_CURRENT VE_LIB_REVISION VE_LIB_AGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CXX CXXFLAGS ac_ct_CXX CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL XSLTPROC PDFXMLTEX BUILD_DOCS_TRUE BUILD_DOCS_FALSE OGG_CFLAGS OGG_LIBS ALLOCA LIBOBJS DEBUG PROFILE pthread_lib LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -ac_env_CXX_set=${CXX+set} -ac_env_CXX_value=$CXX -ac_cv_env_CXX_set=${CXX+set} -ac_cv_env_CXX_value=$CXX -ac_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_env_CXXFLAGS_value=$CXXFLAGS -ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_cv_env_CXXFLAGS_value=$CXXFLAGS -ac_env_CXXCPP_set=${CXXCPP+set} -ac_env_CXXCPP_value=$CXXCPP -ac_cv_env_CXXCPP_set=${CXXCPP+set} -ac_cv_env_CXXCPP_value=$CXXCPP -ac_env_F77_set=${F77+set} -ac_env_F77_value=$F77 -ac_cv_env_F77_set=${F77+set} -ac_cv_env_F77_value=$F77 -ac_env_FFLAGS_set=${FFLAGS+set} -ac_env_FFLAGS_value=$FFLAGS -ac_cv_env_FFLAGS_set=${FFLAGS+set} -ac_cv_env_FFLAGS_value=$FFLAGS - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-shared[=PKGS] - build shared libraries [default=yes] - --enable-static[=PKGS] - build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-docs build the documentation - --disable-oggtest Do not try to compile and run a test Ogg program - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-tags[=TAGS] - include additional configurations [automatic] - --with-ogg=PFX Prefix where libogg is installed (optional) - --with-ogg-libraries=DIR Directory where libogg library is installed (optional) - --with-ogg-includes=DIR Directory where libogg header files are installed (optional) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd "$ac_popdir" - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.58. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - -am__api_version="1.4" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -rm -f conftest* -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -PACKAGE=libvorbis - -VERSION=1.0.1 - -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - - - -missing_dir=`cd $ac_aux_dir && pwd` -echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5 -echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal-${am__api_version} - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working autoconf" >&5 -echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5 -echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-${am__api_version} - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOMAKE="$missing_dir/missing automake-${am__api_version}" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working autoheader" >&5 -echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - -echo "$as_me:$LINENO: checking for working makeinfo" >&5 -echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$as_me:$LINENO: result: found" >&5 -echo "${ECHO_T}found" >&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$as_me:$LINENO: result: missing" >&5 -echo "${ECHO_T}missing" >&6 -fi - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - MAINT=$MAINTAINER_MODE_TRUE - - - - -V_LIB_CURRENT=3 -V_LIB_REVISION=0 -V_LIB_AGE=3 -VF_LIB_CURRENT=4 -VF_LIB_REVISION=0 -VF_LIB_AGE=1 -VE_LIB_CURRENT=2 -VE_LIB_REVISION=0 -VE_LIB_AGE=0 - - - - - - - - - - - -cflags_save="$CFLAGS" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CFLAGS="$cflags_save" - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi; - -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi; - -# Check whether --enable-fast-install or --disable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi; - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && break - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -SED=$lt_cv_path_SED - -fi - -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag='-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' - -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - esac - fi - done - IFS="$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 -NM="$lt_cv_path_NM" - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi4*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | kfreebsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 3597 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -lt_cv_cc_needs_belf=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -esac - -need_locks="$enable_libtool_lock" - - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CXX" && break -done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - - CXX=$ac_ct_CXX -fi - - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 -GXX=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -CXXFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cxx_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_F77" && break -done - - F77=$ac_ct_F77 -fi - - -# Provide some information about the compiler. -echo "$as_me:4826:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_f77_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_f77_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_f77_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - i=0 - testring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - *) - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - testring=$testring$testring - done - testring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 -else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 -fi - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris* | sysv5*) - symcode='[BDRT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 -else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 -fi - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 -objdir=$lt_cv_objdir - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" - ;; - *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -enable_dlopen=no -enable_win32_dll=no - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# -# Check for any special shared library compilation flags. -# -lt_prog_cc_shlib= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - lt_prog_cc_shlib='-belf' - ;; - esac -fi -if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : - else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6 -if test "${lt_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_prog_compiler_static" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 - -if test x"$lt_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5860: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:5864: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic='-Kpic' - lt_prog_compiler_static='-dn' - ;; - - solaris*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6093: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6097: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 - -if test x"$lt_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6160: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:6164: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds="$tmp_archive_cmds" - fi - else - ld_shlibs=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec=' ' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - bsdi4*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' - link_all_deplibs=yes - else - ld_shlibs=no - fi - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # /usr/X11R6/lib and /usr/local/lib are common enough... - sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /usr/local/lib" - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var " || \ - test "X$hardcode_automatic"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# Report which librarie types wil actually be built -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - archive_cmds_need_lc=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' - link_all_deplibs=yes - else - ld_shlibs=no - fi - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - -# Check whether --with-tags or --without-tags was given. -if test "${with_tags+set}" = set; then - withval="$with_tags" - tagnames="$withval" -fi; - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} - else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in - "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=no -allow_undefined_flag_CXX= -always_export_symbols_CXX=no -archive_expsym_cmds_CXX= -export_dynamic_flag_spec_CXX= -hardcode_direct_CXX=no -hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= -hardcode_libdir_separator_CXX= -hardcode_minus_L_CXX=no -hardcode_automatic_CXX=no -module_cmds_CXX= -module_expsym_cmds_CXX= -link_all_deplibs_CXX=unknown -old_archive_cmds_CXX=$old_archive_cmds -no_undefined_flag_CXX= -whole_archive_flag_spec_CXX= -enable_shared_with_static_runtimes_CXX=no - -# Dependencies to place before and after the object being linked: -predep_objects_CXX= -postdep_objects_CXX= -predeps_CXX= -postdeps_CXX= -compiler_lib_search_path_CXX= - -# Source file extension for C++ test sources. -ac_ext=cc - -# Object file extension for compiled C++ test sources. -objext=o -objext_CXX=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 -ld_shlibs_CXX=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_CXX='' - hardcode_direct_CXX=yes - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_CXX=yes - else - # We have old collect2 - hardcode_direct_CXX=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_CXX=yes - hardcode_libdir_flag_spec_CXX='-L$libdir' - hardcode_libdir_separator_CXX= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_CXX=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - - archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_CXX=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX=' ' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs_CXX=no - fi - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes; then - archive_cmds_need_lc_CXX=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_CXX='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='-all_load $convenience' - link_all_deplibs_CXX=yes - else - ld_shlibs_CXX=no - fi - ;; - - dgux*) - case $cc_basename in - ec++) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - ghcx) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - freebsd12*) - # C++ shared libraries reported to be fairly broken before switch to ELF - ld_shlibs_CXX=no - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=no - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=yes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC) - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_CXX='+b $libdir' - hardcode_libdir_separator_CXX=: - ;; - ia64*) - hardcode_libdir_flag_spec_CXX='-L$libdir' - ;; - *) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - *) - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC) - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' - ;; - *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) - # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - link_all_deplibs_CXX=yes - ;; - esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - ;; - linux*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc) - # Intel C++ - with_gnu_ld=yes - archive_cmds_need_lc_CXX=no - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - cxx) - # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - mvs*) - case $cc_basename in - cxx) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - osf3*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' - ;; - RCC) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx) - allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ - $rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - sco*) - archive_cmds_need_lc_CXX=no - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - lcc) - # Lucid - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_shlibpath_var_CXX=no - case $host_os in - solaris2.0-5 | solaris2.0-5.*) ;; - *) - # The C++ compiler is used as linker so we must use $wl - # flag to pass the commands to the underlying system - # linker. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - gcx) - # Green Hills C++ Compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' - fi - ;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - archive_cmds_need_lc_CXX=no - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; -esac -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" - else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" - else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" - else - predep_objects_CXX="$predep_objects_CXX $p" - fi - else - if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" - else - postdep_objects_CXX="$postdep_objects_CXX $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=no ;; -esac - -lt_prog_compiler_wl_CXX= -lt_prog_compiler_pic_CXX= -lt_prog_compiler_static_CXX= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_CXX='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX= - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_CXX=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - else - lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++) - lt_prog_compiler_pic_CXX='-KPIC' - ;; - ghcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - if test "$host_cpu" != ia64; then - lt_prog_compiler_pic_CXX='+Z' - fi - ;; - aCC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux*) - case $cc_basename in - KCC) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - cxx) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx) - lt_prog_compiler_pic_CXX='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC) - lt_prog_compiler_wl_CXX='--backend -Wl,' - ;; - RCC) - # Rational C++ 2.4.1 - lt_prog_compiler_pic_CXX='-pic' - ;; - cxx) - # Digital/Compaq C++ - lt_prog_compiler_wl_CXX='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - sco*) - case $cc_basename in - CC) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - *) - ;; - esac - ;; - solaris*) - case $cc_basename in - CC) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - gcx) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC) - # Sun C++ 4.x - lt_prog_compiler_pic_CXX='-pic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - lcc) - # Lucid - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC) - # NonStop-UX NCC 3.20 - lt_prog_compiler_pic_CXX='-KPIC' - ;; - *) - ;; - esac - ;; - unixware*) - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10618: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:10622: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 - -if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX= - lt_prog_compiler_can_build_shared_CXX=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX= - ;; - *) - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10685: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:10689: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_CXX in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # /usr/X11R6/lib and /usr/local/lib are common enough... - sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /usr/local/lib" - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_CXX= -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var CXX" || \ - test "X$hardcode_automatic_CXX"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_CXX=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6 - -if test "$hardcode_action_CXX" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_CXX" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu - - -archive_cmds_need_lc_F77=no -allow_undefined_flag_F77= -always_export_symbols_F77=no -archive_expsym_cmds_F77= -export_dynamic_flag_spec_F77= -hardcode_direct_F77=no -hardcode_libdir_flag_spec_F77= -hardcode_libdir_flag_spec_ld_F77= -hardcode_libdir_separator_F77= -hardcode_minus_L_F77=no -hardcode_automatic_F77=no -module_cmds_F77= -module_expsym_cmds_F77= -link_all_deplibs_F77=unknown -old_archive_cmds_F77=$old_archive_cmds -no_undefined_flag_F77= -whole_archive_flag_spec_F77= -enable_shared_with_static_runtimes_F77=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -objext_F77=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=" subroutine t\n return\n end\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=" program t\n end\n" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix4*) - test "$enable_shared" = yes && enable_static=no - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -test "$ld_shlibs_F77" = no && can_build_shared=no - -GCC_F77="$G77" -LD_F77="$LD" - -lt_prog_compiler_wl_F77= -lt_prog_compiler_pic_F77= -lt_prog_compiler_static_F77= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_static_F77='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_F77=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_F77=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - else - lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_F77='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_F77='-Kpic' - lt_prog_compiler_static_F77='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_F77='-Qoption ld ' - lt_prog_compiler_pic_F77='-PIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_F77='-Kconform_pic' - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_F77" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12968: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:12972: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 - -if test x"$lt_prog_compiler_pic_works_F77" = xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77= - lt_prog_compiler_can_build_shared_F77=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77= - ;; - *) - lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13035: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13039: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_F77= - enable_shared_with_static_runtimes_F77=no - archive_cmds_F77= - archive_expsym_cmds_F77= - old_archive_From_new_cmds_F77= - old_archive_from_expsyms_cmds_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - thread_safe_flag_spec_F77= - hardcode_libdir_flag_spec_F77= - hardcode_libdir_flag_spec_ld_F77= - hardcode_libdir_separator_F77= - hardcode_direct_F77=no - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=unsupported - link_all_deplibs_F77=unknown - hardcode_automatic_F77=no - module_cmds_F77= - module_expsym_cmds_F77= - always_export_symbols_F77=no - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_F77= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_F77=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_F77=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77='-L$libdir' - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=no - enable_shared_with_static_runtimes_F77=yes - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - sunos4*) - archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_F77="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_F77="$tmp_archive_cmds" - fi - else - ld_shlibs_F77=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - - if test "$ld_shlibs_F77" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_F77= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=yes - archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_F77=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_F77=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_F77='' - hardcode_direct_F77=yes - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_F77=yes - else - # We have old collect2 - hardcode_direct_F77=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_F77=yes - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_libdir_separator_F77= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_F77=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_F77='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_F77=' ${wl}-bernotok' - allow_undefined_flag_F77=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_F77=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77=' ' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=no - ;; - - bsdi4*) - export_dynamic_flag_spec_F77=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_F77=' ' - allow_undefined_flag_F77=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_F77='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc_F77=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_F77='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='-all_load $convenience' - link_all_deplibs_F77=yes - else - ld_shlibs_F77=no - fi - ;; - - dgux*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - freebsd1*) - ld_shlibs_F77=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - ia64*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - *) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - link_all_deplibs_F77=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - newsos6) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_shlibpath_var_F77=no - ;; - - openbsd*) - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - ;; - *) - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - allow_undefined_flag_F77=unsupported - archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_F77='-rpath $libdir' - fi - hardcode_libdir_separator_F77=: - ;; - - sco3.2v5*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_shlibpath_var_F77=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_F77=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_F77='$CC -r -o $output$reload_objs' - hardcode_direct_F77=no - ;; - motorola) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv4.3*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_F77=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_F77='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv5*) - no_undefined_flag_F77=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_F77= - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - *) - ld_shlibs_F77=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6 -test "$ld_shlibs_F77" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_F77 in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_F77 - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_F77 - allow_undefined_flag_F77= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_F77=no - else - archive_cmds_need_lc_F77=yes - fi - allow_undefined_flag_F77=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # /usr/X11R6/lib and /usr/local/lib are common enough... - sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /usr/local/lib" - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_F77= -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var F77" || \ - test "X$hardcode_automatic_F77"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && - test "$hardcode_minus_L_F77" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_F77=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6 - -if test "$hardcode_action_F77" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_F77 - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_F77 -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_F77 -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_F77 -archive_expsym_cmds=$lt_archive_expsym_cmds_F77 -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_F77 -module_expsym_cmds=$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_F77 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_F77" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - - - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -objext_GCJ=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}\n" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - - -lt_prog_compiler_no_builtin_flag_GCJ= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15066: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15070: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl_GCJ= -lt_prog_compiler_pic_GCJ= -lt_prog_compiler_static_GCJ= - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 - - if test "$GCC" = yes; then - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_static_GCJ='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_GCJ=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_GCJ=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - else - lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_GCJ='-Kpic' - lt_prog_compiler_static_GCJ='-dn' - ;; - - solaris*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ='-Qoption ld ' - lt_prog_compiler_pic_GCJ='-PIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_GCJ='-Kconform_pic' - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_GCJ" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15299: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15303: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 - -if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ= - lt_prog_compiler_can_build_shared_GCJ=no -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ= - ;; - *) - lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15366: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:15370: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 - - runpath_var= - allow_undefined_flag_GCJ= - enable_shared_with_static_runtimes_GCJ=no - archive_cmds_GCJ= - archive_expsym_cmds_GCJ= - old_archive_From_new_cmds_GCJ= - old_archive_from_expsyms_cmds_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - thread_safe_flag_spec_GCJ= - hardcode_libdir_flag_spec_GCJ= - hardcode_libdir_flag_spec_ld_GCJ= - hardcode_libdir_separator_GCJ= - hardcode_direct_GCJ=no - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=unsupported - link_all_deplibs_GCJ=unknown - hardcode_automatic_GCJ=no - module_cmds_GCJ= - module_expsym_cmds_GCJ= - always_export_symbols_GCJ=no - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_GCJ= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_GCJ=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_GCJ=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ='-L$libdir' - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=no - enable_shared_with_static_runtimes_GCJ=yes - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - sunos4*) - archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_cmds_GCJ="$tmp_archive_cmds" - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_GCJ="$tmp_archive_cmds" - fi - else - ld_shlibs_GCJ=no - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - - if test "$ld_shlibs_GCJ" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_GCJ= - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=yes - archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_GCJ=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_GCJ=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_GCJ='' - hardcode_direct_GCJ=yes - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - - if test "$GCC" = yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct_GCJ=yes - else - # We have old collect2 - hardcode_direct_GCJ=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_GCJ=yes - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_libdir_separator_GCJ= - fi - esac - shared_flag='-shared' - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_GCJ=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_GCJ='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_GCJ=' ${wl}-bernotok' - allow_undefined_flag_GCJ=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_GCJ=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ=' ' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=no - ;; - - bsdi4*) - export_dynamic_flag_spec_GCJ=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=' ' - allow_undefined_flag_GCJ=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_GCJ='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc_GCJ=no - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='-all_load $convenience' - link_all_deplibs_GCJ=yes - else - ld_shlibs_GCJ=no - fi - ;; - - dgux*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - freebsd1*) - ld_shlibs_GCJ=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - ia64*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - *) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - link_all_deplibs_GCJ=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - newsos6) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_shlibpath_var_GCJ=no - ;; - - openbsd*) - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - ;; - *) - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - allow_undefined_flag_GCJ=unsupported - archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_GCJ='-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=: - ;; - - sco3.2v5*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_shlibpath_var_GCJ=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs_GCJ=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_GCJ='$CC -r -o $output$reload_objs' - hardcode_direct_GCJ=no - ;; - motorola) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4.3*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_GCJ=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_GCJ='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv5*) - no_undefined_flag_GCJ=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_GCJ= - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - *) - ld_shlibs_GCJ=no - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6 -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_GCJ in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_GCJ - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_GCJ=no - else - archive_cmds_need_lc_GCJ=yes - fi - allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # /usr/X11R6/lib and /usr/local/lib are common enough... - sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /usr/local/lib" - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=yes - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var GCJ" || \ - test "X$hardcode_automatic_GCJ"="Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_GCJ - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_GCJ -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_GCJ -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_GCJ -archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_GCJ -module_expsym_cmds=$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_GCJ - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_GCJ" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - RC) - - - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -objext_RC=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -lt_cv_prog_compiler_c_o_RC=yes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# A language-specific compiler. -CC=$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext='$shrext' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation ? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_RC -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_RC -archive_expsym_cmds=$lt_archive_expsym_cmds_RC -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_RC -module_expsym_cmds=$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_RC - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_RC - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_RC" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - ;; - - *) - { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configurations." >&2;} - { (exit 1); exit 1; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - -# Check whether --enable-docs or --disable-docs was given. -if test "${enable_docs+set}" = set; then - enableval="$enable_docs" - case "${enableval}" in - yes) build_docs=true;; - no) build_docs=false;; - *) { { echo "$as_me:$LINENO: error: unknown value ${enableval} for --enable-docs" >&5 -echo "$as_me: error: unknown value ${enableval} for --enable-docs" >&2;} - { (exit 1); exit 1; }; };; - esac -else - build_docs=false -fi; - -if test x$build_docs = xtrue; then - for ac_prog in xsltproc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_XSLTPROC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$XSLTPROC"; then - ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_XSLTPROC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -XSLTPROC=$ac_cv_prog_XSLTPROC -if test -n "$XSLTPROC"; then - echo "$as_me:$LINENO: result: $XSLTPROC" >&5 -echo "${ECHO_T}$XSLTPROC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$XSLTPROC" && break -done -test -n "$XSLTPROC" || XSLTPROC="/bin/false" - - for ac_prog in pdfxmltex -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_PDFXMLTEX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$PDFXMLTEX"; then - ac_cv_prog_PDFXMLTEX="$PDFXMLTEX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PDFXMLTEX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -PDFXMLTEX=$ac_cv_prog_PDFXMLTEX -if test -n "$PDFXMLTEX"; then - echo "$as_me:$LINENO: result: $PDFXMLTEX" >&5 -echo "${ECHO_T}$PDFXMLTEX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$PDFXMLTEX" && break -done -test -n "$PDFXMLTEX" || PDFXMLTEX="/bin/false" - - if test "x$XSLTPROC" = "x/bin/false" || test "x$PDFXMLTEX" = "x/bin/false"; then - build_docs=false - { echo "$as_me:$LINENO: WARNING: Documentation will not be built" >&5 -echo "$as_me: WARNING: Documentation will not be built" >&2;} - fi -fi - - - -if test x$build_docs = xtrue; then - BUILD_DOCS_TRUE= - BUILD_DOCS_FALSE='#' -else - BUILD_DOCS_TRUE='#' - BUILD_DOCS_FALSE= -fi - - - - - -cflags_save="$CFLAGS" -ldflags_save="$LDFLAGS" -if test -z "$GCC"; then - case $host in - *-*-irix*) - if test -z "$CC"; then - CC=cc - fi - DEBUG="-g -signed" - CFLAGS="-O2 -w -signed" - PROFILE="-p -g3 -O2 -signed" ;; - sparc-sun-solaris*) - DEBUG="-v -g" - CFLAGS="-xO4 -fast -w -fsimple -native -xcg92" - PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;; - *) - DEBUG="-g" - CFLAGS="-O" - PROFILE="-g -p" ;; - esac -else - - case $host in - *86-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" - CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" -# PROFILE="-Wall -W -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" - PROFILE="-Wall -W -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" - - # glibc < 2.1.3 has a serious FP bug in the math inline header - # that will cripple Vorbis. Look to see if the magic FP stack - # clobber is missing in the mathinline header, thus indicating - # the buggy version - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #define __LIBC_INTERNAL_MATH_INLINES 1 - #define __OPTIMIZE__ - #include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "log10.*fldlg2.*fxch" >/dev/null 2>&1; then - bad=maybe -else - bad=no -fi -rm -f conftest* - - if test ${bad} = "maybe" ;then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #define __LIBC_INTERNAL_MATH_INLINES 1 - #define __OPTIMIZE__ - #include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "log10.*fldlg2.*fxch.*st\([0123456789]*\)" >/dev/null 2>&1; then - bad=no -else - bad=yes -fi -rm -f conftest* - - fi - if test ${bad} = "yes" ;then - { echo "$as_me:$LINENO: WARNING: " >&5 -echo "$as_me: WARNING: " >&2;} - { echo "$as_me:$LINENO: WARNING: ********************************************************" >&5 -echo "$as_me: WARNING: ********************************************************" >&2;} - { echo "$as_me:$LINENO: WARNING: * The glibc headers on this machine have a serious bug *" >&5 -echo "$as_me: WARNING: * The glibc headers on this machine have a serious bug *" >&2;} - { echo "$as_me:$LINENO: WARNING: * in /usr/include/bits/mathinline.h This bug affects *" >&5 -echo "$as_me: WARNING: * in /usr/include/bits/mathinline.h This bug affects *" >&2;} - { echo "$as_me:$LINENO: WARNING: * all floating point code, not just Ogg, built on this *" >&5 -echo "$as_me: WARNING: * all floating point code, not just Ogg, built on this *" >&2;} - { echo "$as_me:$LINENO: WARNING: * machine. Upgrading to glibc 2.1.3 is strongly urged *" >&5 -echo "$as_me: WARNING: * machine. Upgrading to glibc 2.1.3 is strongly urged *" >&2;} - { echo "$as_me:$LINENO: WARNING: * to correct the problem. Note that upgrading glibc *" >&5 -echo "$as_me: WARNING: * to correct the problem. Note that upgrading glibc *" >&2;} - { echo "$as_me:$LINENO: WARNING: * will not fix any previously built programs; this is *" >&5 -echo "$as_me: WARNING: * will not fix any previously built programs; this is *" >&2;} - { echo "$as_me:$LINENO: WARNING: * a compile-time time bug. *" >&5 -echo "$as_me: WARNING: * a compile-time time bug. *" >&2;} - { echo "$as_me:$LINENO: WARNING: * To work around the problem for this build of Ogg, *" >&5 -echo "$as_me: WARNING: * To work around the problem for this build of Ogg, *" >&2;} - { echo "$as_me:$LINENO: WARNING: * autoconf is disabling all math inlining. This will *" >&5 -echo "$as_me: WARNING: * autoconf is disabling all math inlining. This will *" >&2;} - { echo "$as_me:$LINENO: WARNING: * hurt Ogg performace but is necessary for an Ogg that *" >&5 -echo "$as_me: WARNING: * hurt Ogg performace but is necessary for an Ogg that *" >&2;} - { echo "$as_me:$LINENO: WARNING: * will actually work. Once glibc is upgraded, rerun *" >&5 -echo "$as_me: WARNING: * will actually work. Once glibc is upgraded, rerun *" >&2;} - { echo "$as_me:$LINENO: WARNING: * configure and make to build with inlining. *" >&5 -echo "$as_me: WARNING: * configure and make to build with inlining. *" >&2;} - { echo "$as_me:$LINENO: WARNING: ********************************************************" >&5 -echo "$as_me: WARNING: ********************************************************" >&2;} - { echo "$as_me:$LINENO: WARNING: " >&5 -echo "$as_me: WARNING: " >&2;} - - CFLAGS=${OPT}" -D__NO_MATH_INLINES" - PROFILE=${PROFILE}" -D__NO_MATH_INLINES" - fi;; - powerpc-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES" - CFLAGS="-O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT" - PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";; - *-*-linux*) - DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" - CFLAGS="-O20 -ffast-math -D_REENTRANT -fsigned-char" - PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; - sparc-sun-*) - DEBUG="-g -Wall -W -D__NO_MATH_INLINES -fsigned-char -mv8" - CFLAGS="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char -mv8" - PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;; - *-*-darwin*) - DEBUG="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O0 -fsigned-char" - CFLAGS="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -O4 -ffast-math -fsigned-char" - PROFILE="-DDARWIN -fno-common -force_cpusubtype_ALL -Wall -g -pg -O4 -ffast-math -fsigned-char";; - *) - DEBUG="-g -Wall -W -D__NO_MATH_INLINES -fsigned-char" - CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" - PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; - esac -fi -CFLAGS="$CFLAGS $cflags_save" -LDFLAGS="$LDFLAGS $ldflags_save" - - -if test "${ac_cv_header_memory_h+set}" = set; then - echo "$as_me:$LINENO: checking for memory.h" >&5 -echo $ECHO_N "checking for memory.h... $ECHO_C" >&6 -if test "${ac_cv_header_memory_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_memory_h" >&5 -echo "${ECHO_T}$ac_cv_header_memory_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking memory.h usability" >&5 -echo $ECHO_N "checking memory.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking memory.h presence" >&5 -echo $ECHO_N "checking memory.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: memory.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: memory.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: memory.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: memory.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: memory.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: memory.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: memory.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: memory.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: memory.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: memory.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: memory.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for memory.h" >&5 -echo $ECHO_N "checking for memory.h... $ECHO_C" >&6 -if test "${ac_cv_header_memory_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_memory_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_memory_h" >&5 -echo "${ECHO_T}$ac_cv_header_memory_h" >&6 - -fi -if test $ac_cv_header_memory_h = yes; then - CFLAGS="$CFLAGS -DUSE_MEMORY_H" -else - : -fi - - - - - - -echo "$as_me:$LINENO: checking for cos in -lm" >&5 -echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6 -if test "${ac_cv_lib_m_cos+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char cos (); -int -main () -{ -cos (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_m_cos=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_m_cos=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 -echo "${ECHO_T}$ac_cv_lib_m_cos" >&6 -if test $ac_cv_lib_m_cos = yes; then - LIBS="-lm" -else - LIBS="" -fi - -echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 -echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 -if test $ac_cv_lib_pthread_pthread_create = yes; then - pthread_lib="-lpthread" -else - : -fi - - - -# Check whether --with-ogg or --without-ogg was given. -if test "${with_ogg+set}" = set; then - withval="$with_ogg" - ogg_prefix="$withval" -else - ogg_prefix="" -fi; - -# Check whether --with-ogg-libraries or --without-ogg-libraries was given. -if test "${with_ogg_libraries+set}" = set; then - withval="$with_ogg_libraries" - ogg_libraries="$withval" -else - ogg_libraries="" -fi; - -# Check whether --with-ogg-includes or --without-ogg-includes was given. -if test "${with_ogg_includes+set}" = set; then - withval="$with_ogg_includes" - ogg_includes="$withval" -else - ogg_includes="" -fi; -# Check whether --enable-oggtest or --disable-oggtest was given. -if test "${enable_oggtest+set}" = set; then - enableval="$enable_oggtest" - -else - enable_oggtest=yes -fi; - - if test "x$ogg_libraries" != "x" ; then - OGG_LIBS="-L$ogg_libraries" - elif test "x$ogg_prefix" != "x" ; then - OGG_LIBS="-L$ogg_prefix/lib" - elif test "x$prefix" != "xNONE" ; then - OGG_LIBS="-L$prefix/lib" - fi - - OGG_LIBS="$OGG_LIBS -logg" - - if test "x$ogg_includes" != "x" ; then - OGG_CFLAGS="-I$ogg_includes" - elif test "x$ogg_prefix" != "x" ; then - OGG_CFLAGS="-I$ogg_prefix/include" - elif test "x$prefix" != "xNONE"; then - OGG_CFLAGS="-I$prefix/include" - fi - - echo "$as_me:$LINENO: checking for Ogg" >&5 -echo $ECHO_N "checking for Ogg... $ECHO_C" >&6 - no_ogg="" - - - if test "x$enable_oggtest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $OGG_CFLAGS" - LIBS="$LIBS $OGG_LIBS" - rm -f conf.oggtest - if test "$cross_compiling" = yes; then - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -#include - -int main () -{ - system("touch conf.oggtest"); - return 0; -} - - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -no_ogg=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - - if test "x$no_ogg" = "x" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - : - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - if test -f conf.oggtest ; then - : - else - echo "*** Could not run Ogg test program, checking why..." - CFLAGS="$CFLAGS $OGG_CFLAGS" - LIBS="$LIBS $OGG_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding Ogg or finding the wrong" - echo "*** version of Ogg. If it is not finding Ogg, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means Ogg was incorrectly installed" - echo "*** or that you have moved Ogg since it was installed. In the latter case, you" - echo "*** may want to edit the ogg-config script: $OGG_CONFIG" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - OGG_CFLAGS="" - OGG_LIBS="" - { { echo "$as_me:$LINENO: error: must have Ogg installed!" >&5 -echo "$as_me: error: must have Ogg installed!" >&2;} - { (exit 1); exit 1; }; } - fi - - - rm -f conf.oggtest - -LIBS="$LIBS $OGG_LIBS" -echo "$as_me:$LINENO: checking for oggpack_writealign" >&5 -echo $ECHO_N "checking for oggpack_writealign... $ECHO_C" >&6 -if test "${ac_cv_func_oggpack_writealign+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define oggpack_writealign to an innocuous variant, in case declares oggpack_writealign. - For example, HP-UX 11i declares gettimeofday. */ -#define oggpack_writealign innocuous_oggpack_writealign - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char oggpack_writealign (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef oggpack_writealign - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char oggpack_writealign (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_oggpack_writealign) || defined (__stub___oggpack_writealign) -choke me -#else -char (*f) () = oggpack_writealign; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != oggpack_writealign; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_oggpack_writealign=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_oggpack_writealign=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_oggpack_writealign" >&5 -echo "${ECHO_T}$ac_cv_func_oggpack_writealign" >&6 -if test $ac_cv_func_oggpack_writealign = yes; then - : -else - { { echo "$as_me:$LINENO: error: Ogg >= 1.0 required !" >&5 -echo "$as_me: error: Ogg >= 1.0 required !" >&2;} - { (exit 1); exit 1; }; } -fi - - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_working_alloca_h=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_alloca_works=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=alloca.$ac_objext - -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF - - -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - exit (find_stack_direction () < 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_stack_direction=-1 -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking for working memcmp" >&5 -echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6 -if test "${ac_cv_func_memcmp_working+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_memcmp_working=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Some versions of memcmp are not 8-bit clean. */ - char c0 = 0x40, c1 = 0x80, c2 = 0x81; - if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - exit (1); - - /* The Next x86 OpenStep bug shows up only when comparing 16 bytes - or more and with at least one buffer not starting on a 4-byte boundary. - William Lewis provided this test program. */ - { - char foo[21]; - char bar[21]; - int i; - for (i = 0; i < 4; i++) - { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - exit (1); - } - exit (0); - } - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_memcmp_working=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_memcmp_working=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 -echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6 -test $ac_cv_func_memcmp_working = no && case $LIBOBJS in - "memcmp.$ac_objext" | \ - *" memcmp.$ac_objext" | \ - "memcmp.$ac_objext "* | \ - *" memcmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; -esac - - - - - - - - - - ac_config_files="$ac_config_files Makefile lib/Makefile lib/modes/Makefile lib/books/Makefile lib/books/coupled/Makefile lib/books/uncoupled/Makefile lib/books/floor/Makefile doc/Makefile doc/vorbisfile/Makefile doc/vorbisenc/Makefile include/Makefile include/vorbis/Makefile examples/Makefile win32/Makefile debian/Makefile vq/Makefile vorbis.pc vorbisenc.pc vorbisfile.pc" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.58. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.58, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - - - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "lib/modes/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/modes/Makefile" ;; - "lib/books/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/books/Makefile" ;; - "lib/books/coupled/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/books/coupled/Makefile" ;; - "lib/books/uncoupled/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/books/uncoupled/Makefile" ;; - "lib/books/floor/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/books/floor/Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "doc/vorbisfile/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/vorbisfile/Makefile" ;; - "doc/vorbisenc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/vorbisenc/Makefile" ;; - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "include/vorbis/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/vorbis/Makefile" ;; - "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - "win32/Makefile" ) CONFIG_FILES="$CONFIG_FILES win32/Makefile" ;; - "debian/Makefile" ) CONFIG_FILES="$CONFIG_FILES debian/Makefile" ;; - "vq/Makefile" ) CONFIG_FILES="$CONFIG_FILES vq/Makefile" ;; - "vorbis.pc" ) CONFIG_FILES="$CONFIG_FILES vorbis.pc" ;; - "vorbisenc.pc" ) CONFIG_FILES="$CONFIG_FILES vorbisenc.pc" ;; - "vorbisfile.pc" ) CONFIG_FILES="$CONFIG_FILES vorbisfile.pc" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@V_LIB_CURRENT@,$V_LIB_CURRENT,;t t -s,@V_LIB_REVISION@,$V_LIB_REVISION,;t t -s,@V_LIB_AGE@,$V_LIB_AGE,;t t -s,@VF_LIB_CURRENT@,$VF_LIB_CURRENT,;t t -s,@VF_LIB_REVISION@,$VF_LIB_REVISION,;t t -s,@VF_LIB_AGE@,$VF_LIB_AGE,;t t -s,@VE_LIB_CURRENT@,$VE_LIB_CURRENT,;t t -s,@VE_LIB_REVISION@,$VE_LIB_REVISION,;t t -s,@VE_LIB_AGE@,$VE_LIB_AGE,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;t t -s,@CXXCPP@,$CXXCPP,;t t -s,@F77@,$F77,;t t -s,@FFLAGS@,$FFLAGS,;t t -s,@ac_ct_F77@,$ac_ct_F77,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@XSLTPROC@,$XSLTPROC,;t t -s,@PDFXMLTEX@,$PDFXMLTEX,;t t -s,@BUILD_DOCS_TRUE@,$BUILD_DOCS_TRUE,;t t -s,@BUILD_DOCS_FALSE@,$BUILD_DOCS_FALSE,;t t -s,@OGG_CFLAGS@,$OGG_CFLAGS,;t t -s,@OGG_LIBS@,$OGG_LIBS,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@DEBUG@,$DEBUG,;t t -s,@PROFILE@,$PROFILE,;t t -s,@pthread_lib@,$pthread_lib,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/libvorbis-1.0.1/debian/Makefile.am b/libvorbis-1.0.1/debian/Makefile.am deleted file mode 100644 index 6f44e30..0000000 --- a/libvorbis-1.0.1/debian/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = changelog control copyright libvorbis-dev.docs \ - libvorbis-dev.examples libvorbis-dev.install libvorbis0a.install \ - libvorbisenc2.install libvorbisfile3.install rules diff --git a/libvorbis-1.0.1/debian/Makefile.in b/libvorbis-1.0.1/debian/Makefile.in deleted file mode 100644 index a6af13e..0000000 --- a/libvorbis-1.0.1/debian/Makefile.in +++ /dev/null @@ -1,212 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = changelog control copyright libvorbis-dev.docs libvorbis-dev.examples libvorbis-dev.install libvorbis0a.install libvorbisenc2.install libvorbisfile3.install rules - -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps debian/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = debian - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/debian/changelog b/libvorbis-1.0.1/debian/changelog deleted file mode 100644 index ad2650b..0000000 --- a/libvorbis-1.0.1/debian/changelog +++ /dev/null @@ -1,109 +0,0 @@ -libvorbis (1.0.1-1) unstable; urgency=low - - * New upstream. - * Improved descriptions. (Closes: #166649) - - -- Christopher L Cheney Wed, 3 Sep 2003 00:15:00 -0500 - -libvorbis (1.0.0-3) unstable; urgency=low - - * Add libvorbis0 conflict to libvorbis0a. - - -- Christopher L Cheney Wed, 12 Mar 2003 17:00:00 -0600 - -libvorbis (1.0.0-2) unstable; urgency=low - - * Rename libvorbis0 -> libvorbis0a to keep packages from upgrading to it - by mistake. (Closes: #156227, #156365, #161961, #171548, #172466, - #172469, #178756) - * GNU config automated update: config.sub (20020621 to 20030103), - config.guess (20020529 to 20030110) - - -- Christopher L Cheney Sat, 8 Mar 2003 13:00:00 -0600 - -libvorbis (1.0.0-1) unstable; urgency=low - - * New upstream. - * Split libvorbis package into libvorbis libvorbisenc libvorbisfile due to - shared object major versions going out of sync. - - -- Christopher L Cheney Fri, 19 Jul 2002 09:00:00 -0500 - -libvorbis (1.0rc3-1) unstable; urgency=low - - * New upstream. (Closes: #121995, #123472) - * added autotools target (config.* updater) to rules - - -- Christopher L Cheney Mon, 24 Dec 2001 11:00:00 -0600 - -libvorbis (1.0rc2-1) unstable; urgency=low - - * New upstream. - - -- Christopher L Cheney Sun, 12 Aug 2001 22:00:00 -0500 - -libvorbis (1.0rc1-1) unstable; urgency=low - - * New upstream. (Closes: #84977, #95330) - * Upstream says lame at fault. See bug details. (Closes: #98010) - * Fixed versioned depends. - * Changed clean method to distclean. - - -- Christopher L Cheney Sun, 17 Jun 2001 20:00:00 -0500 - -libvorbis (1.0beta4-1) unstable; urgency=low - - * New upstream. - * Appears to be fixed, can't reproduce bug (closes: #78848) - - -- Christopher L Cheney Mon, 26 Feb 2001 08:00:00 -0600 - -libvorbis (1.0beta3-3) unstable; urgency=low - - * Fixed Build-Depends libogg-dev version dependency. - * Fixed Sections. - * Updated to Standards-Version to 3.5.1.0 - - -- Christopher L Cheney Sat, 17 Feb 2001 18:14:53 -0600 - -libvorbis (1.0beta3-2) unstable; urgency=low - - * Added dependency for libogg-dev (closes: #78262) - * Added dependency for libogg-dev (closes: #81432) - * Corrected development library package name (closes: #82464) - - -- Christopher L Cheney Sat, 3 Feb 2001 13:29:30 -0600 - -libvorbis (1.0beta3-1) unstable; urgency=low - - * New Maintainer. - * Upstream source was reorganized. - * Package split according to the upstream reorganization. - - -- Christopher L Cheney Tue, 31 Oct 2000 15:08:22 -0600 - -vorbis (1.0beta2-1) unstable; urgency=low - - * New upstream version. Closes: #67326, #68416 - * Changed xmms-vorbis to Architechture: any. Closes: #67395 - * Added Build-deps. Closes: #66628 - * Moved vorbize to vorbis-tools along with oggenc and vorbiscomment - - -- Michael Beattie Wed, 9 Aug 2000 00:30:15 +1200 - -vorbis (1.0beta1-1) unstable; urgency=low - - * First Beta, Ready for debian release. - - -- Michael Beattie Fri, 30 Jun 2000 19:26:59 +1200 - -vorbis (0.0-1) unstable; urgency=low - - * Initial Release. - * Initial package, not placed in archive. - - -- Michael Beattie Mon, 26 Jun 2000 18:59:56 +1200 - -Local variables: -mode: debian-changelog -End: diff --git a/libvorbis-1.0.1/debian/control b/libvorbis-1.0.1/debian/control deleted file mode 100644 index b3f2646..0000000 --- a/libvorbis-1.0.1/debian/control +++ /dev/null @@ -1,60 +0,0 @@ -Source: libvorbis -Section: libs -Priority: optional -Maintainer: Christopher L Cheney -Build-Depends: autotools-dev, debhelper (>> 4.0.18), devscripts, libogg-dev (>> 1.1.0) -Standards-Version: 3.6.1.0 - -Package: libvorbis0a -Architecture: any -Section: libs -Depends: ${shlibs:Depends} -Conflicts: libvorbis0 -Replaces: libvorbis0 -Description: The Vorbis General Audio Compression Codec - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, - general-purpose compressed audio format for audio and music at fixed - and variable bitrates from 16 to 128 kbps/channel. - . - The Vorbis library is the primary Ogg Vorbis library. - -Package: libvorbisenc2 -Architecture: any -Section: libs -Depends: ${shlibs:Depends} -Conflicts: libvorbis0 (<< 1.0.0) -Replaces: libvorbis0 (<< 1.0.0) -Description: The Vorbis General Audio Compression Codec - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, - general-purpose compressed audio format for audio and music at fixed - and variable bitrates from 16 to 128 kbps/channel. - . - The Vorbisenc library provides a convenient API for setting up an encoding - environment using libvorbis. - -Package: libvorbisfile3 -Architecture: any -Section: libs -Depends: ${shlibs:Depends} -Conflicts: libvorbis0 (<< 1.0.0) -Replaces: libvorbis0 (<< 1.0.0) -Description: The Vorbis General Audio Compression Codec - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, - general-purpose compressed audio format for audio and music at fixed - and variable bitrates from 16 to 128 kbps/channel. - . - The Vorbisfile library provides a convenient high-level API for decoding - and basic manipulation of all Vorbis I audio streams. - -Package: libvorbis-dev -Architecture: any -Section: libdevel -Depends: libogg-dev, libvorbis0a (= ${Source-Version}), libvorbisenc2 (= ${Source-Version}), libvorbisfile3 (= ${Source-Version}) -Description: The Vorbis General Audio Compression Codec (development files) - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, - general-purpose compressed audio format for audio and music at fixed - and variable bitrates from 16 to 128 kbps/channel. - . - This package contains the header files and documentation needed to develop - applications with libvorbis. - diff --git a/libvorbis-1.0.1/debian/copyright b/libvorbis-1.0.1/debian/copyright deleted file mode 100644 index 2080282..0000000 --- a/libvorbis-1.0.1/debian/copyright +++ /dev/null @@ -1,38 +0,0 @@ -This package was debianized by Christopher L Cheney on -Tue, 31 Oct 2000 15:08:22 -0600. - -It was downloaded from http://www.vorbis.com/download_unix.psp - -Upstream Author: Monty - -Copyright: - -Copyright (c) 2002, Xiph.org Foundation - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- 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. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``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 REGENTS 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. - diff --git a/libvorbis-1.0.1/debian/libvorbis-dev.docs b/libvorbis-1.0.1/debian/libvorbis-dev.docs deleted file mode 100644 index d1df571..0000000 --- a/libvorbis-1.0.1/debian/libvorbis-dev.docs +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/share/doc/libvorbis-*/* diff --git a/libvorbis-1.0.1/debian/libvorbis-dev.examples b/libvorbis-1.0.1/debian/libvorbis-dev.examples deleted file mode 100644 index 1ae77b5..0000000 --- a/libvorbis-1.0.1/debian/libvorbis-dev.examples +++ /dev/null @@ -1,2 +0,0 @@ -examples/*.c -examples/*.pl diff --git a/libvorbis-1.0.1/debian/libvorbis-dev.install b/libvorbis-1.0.1/debian/libvorbis-dev.install deleted file mode 100644 index db22e50..0000000 --- a/libvorbis-1.0.1/debian/libvorbis-dev.install +++ /dev/null @@ -1,16 +0,0 @@ -debian/tmp/usr/include/vorbis/codec.h -debian/tmp/usr/include/vorbis/vorbisenc.h -debian/tmp/usr/include/vorbis/vorbisfile.h -debian/tmp/usr/lib/libvorbis.a -debian/tmp/usr/lib/libvorbis.la -debian/tmp/usr/lib/libvorbis.so -debian/tmp/usr/lib/libvorbisenc.a -debian/tmp/usr/lib/libvorbisenc.la -debian/tmp/usr/lib/libvorbisenc.so -debian/tmp/usr/lib/libvorbisfile.a -debian/tmp/usr/lib/libvorbisfile.la -debian/tmp/usr/lib/libvorbisfile.so -debian/tmp/usr/lib/pkgconfig/vorbis.pc -debian/tmp/usr/lib/pkgconfig/vorbisenc.pc -debian/tmp/usr/lib/pkgconfig/vorbisfile.pc -debian/tmp/usr/share/aclocal/vorbis.m4 diff --git a/libvorbis-1.0.1/debian/libvorbis0a.install b/libvorbis-1.0.1/debian/libvorbis0a.install deleted file mode 100644 index ad38b8b..0000000 --- a/libvorbis-1.0.1/debian/libvorbis0a.install +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/lib/libvorbis.so.* diff --git a/libvorbis-1.0.1/debian/libvorbisenc2.install b/libvorbis-1.0.1/debian/libvorbisenc2.install deleted file mode 100644 index eb70258..0000000 --- a/libvorbis-1.0.1/debian/libvorbisenc2.install +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/lib/libvorbisenc.so.* diff --git a/libvorbis-1.0.1/debian/libvorbisfile3.install b/libvorbis-1.0.1/debian/libvorbisfile3.install deleted file mode 100644 index 83bf445..0000000 --- a/libvorbis-1.0.1/debian/libvorbisfile3.install +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/lib/libvorbisfile.so.* diff --git a/libvorbis-1.0.1/debian/rules b/libvorbis-1.0.1/debian/rules deleted file mode 100755 index db21596..0000000 --- a/libvorbis-1.0.1/debian/rules +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/make -f -# Sample debian/rules that uses debhelper. -# GNU copyright 1997 to 1999 by Joey Hess. -# -# Modified to make a template file for a multi-binary package with separated -# build-arch and build-indep targets by Bill Allombert 2001 - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# This is the debhelper compatibility version to use. -export DH_COMPAT=4 - -# This has to be exported to make some magic below work. -export DH_OPTIONS - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - -objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE) - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) - INSTALL_PROGRAM += -s -endif - -configure: configure-stamp -configure-stamp: - dh_testdir - - # make build directory - mkdir $(objdir) - - # run configure with build tree $(objdir) - # change ../configure to ../autogen.sh for CVS build - cd $(objdir) && \ - ../configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ - --prefix=/usr --enable-static - - touch configure-stamp - -#Architecture -build: build-arch build-indep - -build-arch: build-arch-stamp -build-arch-stamp: configure-stamp - - cd $(objdir) && \ - $(MAKE) - - touch build-arch-stamp - -build-indep: build-indep-stamp -build-indep-stamp: configure-stamp - - # Add here commands to compile the indep part of the package. - #$(MAKE) doc - touch build-indep-stamp - -debian-clean: - dh_testdir - dh_testroot - - dh_clean - -clean: - dh_testdir - dh_testroot - rm -f build-arch-stamp build-indep-stamp configure-stamp - - # Remove build tree - rm -rf $(objdir) - - # if Makefile exists run distclean - if test -f Makefile; then \ - $(MAKE) distclean; \ - fi - - #if test -d CVS; then \ - $(MAKE) cvs-clean ;\ - fi - - dh_clean - -install: install-indep install-arch -install-indep: - dh_testdir - dh_testroot -# dh_clean -k -i -# dh_installdirs -i - -# dh_install -i --list-missing - -install-arch: - dh_testdir - dh_testroot - dh_clean -k -s - dh_installdirs -s - - cd $(objdir) && \ - $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp - - dh_install -s --list-missing - -# Must not depend on anything. This is to be called by -# binary-arch/binary-indep -# in another 'make' thread. -binary-common: - dh_testdir - dh_testroot - dh_installchangelogs - dh_installdocs - dh_installexamples -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip - dh_compress - dh_fixperms -# dh_perl -# dh_python - dh_makeshlibs -V - dh_installdeb - dh_shlibdeps -ldebian/libvorbis0a/usr/lib - dh_gencontrol - dh_md5sums - dh_builddeb - -# Build architecture independant packages using the common target. -binary-indep: build-indep install-indep -# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common - -# Build architecture dependant packages using the common target. -binary-arch: build-arch install-arch - $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common - -binary: binary-arch binary-indep -.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure diff --git a/libvorbis-1.0.1/doc/Makefile.am b/libvorbis-1.0.1/doc/Makefile.am deleted file mode 100644 index 99eb6b3..0000000 --- a/libvorbis-1.0.1/doc/Makefile.am +++ /dev/null @@ -1,94 +0,0 @@ -## Process this with automake to create Makefile.in - -AUTOMAKE_OPTIONS = foreign - -SUBDIRS = vorbisfile vorbisenc - -docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) - -static_docs = components.png \ - draft-kerr-avt-vorbis-rtp-02.txt \ - eightphase.png \ - evenlsp.png \ - floor1-1.png \ - floor1-2.png \ - floor1-3.png \ - floor1-4.png \ - floor1_inverse_dB_table.html \ - floorval.png \ - fourphase.png \ - framing.html \ - helper.html \ - hufftree-under.png \ - hufftree.png \ - index.html \ - lspmap.png \ - oddlsp.png \ - oggstream.html \ - programming.html \ - residue-pack.png \ - residue2.png \ - squarepolar.png \ - stereo.html \ - stream.png \ - v-comment.html \ - vorbis-clip.txt \ - vorbis-errors.txt \ - vorbis-fidelity.html \ - vorbis.html \ - vorbisword2.png \ - wait.png \ - white-ogg.png \ - white-xifish.png \ - window1.png \ - window2.png - -built_docs = Vorbis_I_spec.html Vorbis_I_spec.pdf - -# conditionally make the generated documentation -if BUILD_DOCS -doc_DATA = $(static_docs) $(built_docs) -else -doc_DATA = $(static_docs) -endif - -EXTRA_DIST = $(static_docs) $(built_docs) - -doc_sources = xml/Vorbis_I_spec.xml \ - xml/01-introduction.xml \ - xml/02-bitpacking.xml \ - xml/03-codebook.xml \ - xml/04-codec.xml \ - xml/05-comment.xml \ - xml/06-floor0.xml \ - xml/07-floor1.xml \ - xml/08-residue.xml \ - xml/09-helper.xml \ - xml/10-tables.xml \ - xml/a1-encapsulation_ogg.xml \ - xml/a2-encapsulation_rtp.xml \ - xml/footer.xml \ - xml/spec-common.xsl \ - xml/spec-fo.xsl \ - xml/spec-html.xsl - -nobase_EXTRA_DIST = $(doc_sources) - -# these are expensive; only remove if we have to -MAINTAINERCLEANFILES = $(built_docs) -CLEANFILES = Vorbis_I_spec.fo spec.aux spec.log spec.out - -# explicit rules for generating docs -Vorbis_I_spec.html: - xsltproc --xinclude --output $@ $(srcdir)/xml/spec-html.xsl $(srcdir)/xml/Vorbis_I_spec.xml - -Vorbis_I_spec.fo: - xsltproc --xinclude --output $@ $(srcdir)/xml/spec-fo.xsl $(srcdir)/xml/Vorbis_I_spec.xml - -Vorbis_I_spec.pdf: Vorbis_I_spec.fo - cp $< spec.fo # work around a passivetex bug - pdfxmltex --interaction nonstopmode spec.fo - pdfxmltex --interaction nonstopmode spec.fo - rm spec.fo - mv spec.pdf $@ - diff --git a/libvorbis-1.0.1/doc/Makefile.in b/libvorbis-1.0.1/doc/Makefile.in deleted file mode 100644 index 7a9cce2..0000000 --- a/libvorbis-1.0.1/doc/Makefile.in +++ /dev/null @@ -1,373 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -SUBDIRS = vorbisfile vorbisenc - -docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) - -static_docs = components.png draft-kerr-avt-vorbis-rtp-02.txt eightphase.png evenlsp.png floor1-1.png floor1-2.png floor1-3.png floor1-4.png floor1_inverse_dB_table.html floorval.png fourphase.png framing.html helper.html hufftree-under.png hufftree.png index.html lspmap.png oddlsp.png oggstream.html programming.html residue-pack.png residue2.png squarepolar.png stereo.html stream.png v-comment.html vorbis-clip.txt vorbis-errors.txt vorbis-fidelity.html vorbis.html vorbisword2.png wait.png white-ogg.png white-xifish.png window1.png window2.png - - -built_docs = Vorbis_I_spec.html Vorbis_I_spec.pdf -@BUILD_DOCS_TRUE@doc_DATA = $(static_docs) $(built_docs) -@BUILD_DOCS_FALSE@doc_DATA = $(static_docs) - -EXTRA_DIST = $(static_docs) $(built_docs) - -doc_sources = xml/Vorbis_I_spec.xml xml/01-introduction.xml xml/02-bitpacking.xml xml/03-codebook.xml xml/04-codec.xml xml/05-comment.xml xml/06-floor0.xml xml/07-floor1.xml xml/08-residue.xml xml/09-helper.xml xml/10-tables.xml xml/a1-encapsulation_ogg.xml xml/a2-encapsulation_rtp.xml xml/footer.xml xml/spec-common.xsl xml/spec-fo.xsl xml/spec-html.xsl - - -nobase_EXTRA_DIST = $(doc_sources) - -# these are expensive; only remove if we have to -MAINTAINERCLEANFILES = $(built_docs) -CLEANFILES = Vorbis_I_spec.fo spec.aux spec.log spec.out -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DATA = $(doc_DATA) - -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps doc/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -install-docDATA: $(doc_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(docdir) - @list='$(doc_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p; \ - fi; fi; \ - done - -uninstall-docDATA: - @$(NORMAL_UNINSTALL) - list='$(doc_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(docdir)/$$p; \ - done - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = doc - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: install-docDATA -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-docDATA -uninstall: uninstall-recursive -all-am: Makefile $(DATA) -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(docdir) - - -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: uninstall-docDATA install-docDATA install-data-recursive \ -uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# explicit rules for generating docs -Vorbis_I_spec.html: - xsltproc --xinclude --output $@ $(srcdir)/xml/spec-html.xsl $(srcdir)/xml/Vorbis_I_spec.xml - -Vorbis_I_spec.fo: - xsltproc --xinclude --output $@ $(srcdir)/xml/spec-fo.xsl $(srcdir)/xml/Vorbis_I_spec.xml - -Vorbis_I_spec.pdf: Vorbis_I_spec.fo - cp $< spec.fo # work around a passivetex bug - pdfxmltex --interaction nonstopmode spec.fo - pdfxmltex --interaction nonstopmode spec.fo - rm spec.fo - mv spec.pdf $@ - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/doc/Vorbis_I_spec.html b/libvorbis-1.0.1/doc/Vorbis_I_spec.html deleted file mode 100644 index 5f9d747..0000000 --- a/libvorbis-1.0.1/doc/Vorbis_I_spec.html +++ /dev/null @@ -1,2271 +0,0 @@ -Vorbis I specification

      Vorbis I specification

      Xiph.org Foundation


      1. Introduction and Description

      - $Id: 01-introduction.xml,v 1.8 2002/12/19 06:10:12 xiphmont Exp $ -Last update to this document: July 18, 2002 -

      1.1. Overview

      -This document provides a high level description of the Vorbis codec's -construction. A bit-by-bit specification appears beginning in -Section 4, “Codec Setup and Packet Decode”. -The later sections assume a high-level -understanding of the Vorbis decode process, which is -provided here.

      1.1.1. Application

      -Vorbis is a general purpose perceptual audio CODEC intended to allow -maximum encoder flexibility, thus allowing it to scale competitively -over an exceptionally wide range of bitrates. At the high -quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits) -it is in the same league as MPEG-2 and MPC. Similarly, the 1.0 -encoder can encode high-quality CD and DAT rate stereo at below 48kbps -without resampling to a lower rate. Vorbis is also intended for -lower and higher sample rates (from 8kHz telephony to 192kHz digital -masters) and a range of channel representations (monaural, -polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255 -discrete channels). -

      1.1.2. Classification

      -Vorbis I is a forward-adaptive monolithic transform CODEC based on the -Modified Discrete Cosine Transform. The codec is structured to allow -addition of a hybrid wavelet filterbank in Vorbis II to offer better -transient response and reproduction using a transform better suited to -localized time events. -

      1.1.3. Assumptions

      -The Vorbis CODEC design assumes a complex, psychoacoustically-aware -encoder and simple, low-complexity decoder. Vorbis decode is -computationally simpler than mp3, although it does require more -working memory as Vorbis has no static probability model; the vector -codebooks used in the first stage of decoding from the bitstream are -packed in their entirety into the Vorbis bitstream headers. In -packed form, these codebooks occupy only a few kilobytes; the extent -to which they are pre-decoded into a cache is the dominant factor in -decoder memory usage. -

      -Vorbis provides none of its own framing, synchronization or protection -against errors; it is solely a method of accepting input audio, -dividing it into individual frames and compressing these frames into -raw, unformatted 'packets'. The decoder then accepts these raw -packets in sequence, decodes them, synthesizes audio frames from -them, and reassembles the frames into a facsimile of the original -audio stream. Vorbis is a free-form variable bit rate (VBR) codec and packets have no -minimum size, maximum size, or fixed/expected size. Packets -are designed that they may be truncated (or padded) and remain -decodable; this is not to be considered an error condition and is used -extensively in bitrate management in peeling. Both the transport -mechanism and decoder must allow that a packet may be any size, or -end before or after packet decode expects.

      -Vorbis packets are thus intended to be used with a transport mechanism -that provides free-form framing, sync, positioning and error correction -in accordance with these design assumptions, such as Ogg (for file -transport) or RTP (for network multicast). For purposes of a few -examples in this document, we will assume that Vorbis is to be -embedded in an Ogg stream specifically, although this is by no means a -requirement or fundamental assumption in the Vorbis design.

      -The specification for embedding Vorbis into -an Ogg transport stream is in Appendix A, Embedding Vorbis into an Ogg stream. -

      1.1.4. Codec Setup and Probability Model

      -Vorbis' heritage is as a research CODEC and its current design -reflects a desire to allow multiple decades of continuous encoder -improvement before running out of room within the codec specification. -For these reasons, configurable aspects of codec setup intentionally -lean toward the extreme of forward adaptive.

      -The single most controversial design decision in Vorbis (and the most -unusual for a Vorbis developer to keep in mind) is that the entire -probability model of the codec, the Huffman and VQ codebooks, is -packed into the bitstream header along with extensive CODEC setup -parameters (often several hundred fields). This makes it impossible, -as it would be with MPEG audio layers, to embed a simple frame type -flag in each audio packet, or begin decode at any frame in the stream -without having previously fetched the codec setup header. -

      Note

      -Vorbis can initiate decode at any arbitrary packet within a -bitstream so long as the codec has been initialized/setup with the -setup headers.

      -Thus, Vorbis headers are both required for decode to begin and -relatively large as bitstream headers go. The header size is -unbounded, although for streaming a rule-of-thumb of 4kB or less is -recommended (and Xiph.Org's Vorbis encoder follows this suggestion).

      -Our own design work indicates the the primary liability of the -required header is in mindshare; it is an unusual design and thus -causes some amount of complaint among engineers as this runs against -current design trends (and also points out limitations in some -existing software/interface designs, such as Windows' ACM codec -framework). However, we find that it does not fundamentally limit -Vorbis' suitable application space.

      1.1.5. Format Specification

      -The Vorbis format is well-defined by its decode specification; any -encoder that produces packets that are correctly decoded by the -reference Vorbis decoder described below may be considered a proper -Vorbis encoder. A decoder must faithfully and completely implement -the specification defined below (except where noted) to be considered -a proper Vorbis decoder.

      1.1.6. Hardware Profile

      -Although Vorbis decode is computationally simple, it may still run -into specific limitations of an embedded design. For this reason, -embedded designs are allowed to deviate in limited ways from the -'full' decode specification yet still be certified compliant. These -optional omissions are labelled in the spec where relevant.

      1.2. Decoder Configuration

      -Decoder setup consists of configuration of multiple, self-contained -component abstractions that perform specific functions in the decode -pipeline. Each different component instance of a specific type is -semantically interchangeable; decoder configuration consists both of -internal component configuration, as well as arrangement of specific -instances into a decode pipeline. Componentry arrangement is roughly -as follows:

      decoder pipeline configuration

      1.2.1. Global Config

      -Global codec configuration consists of a few audio related fields -(sample rate, channels), Vorbis version (always '0' in Vorbis I), -bitrate hints, and the lists of component instances. All other -configuration is in the context of specific components.

      1.2.2. Mode

      -Each Vorbis frame is coded according to a master 'mode'. A bitstream -may use one or many modes.

      -The mode mechanism is used to encode a frame according to one of -multiple possible methods with the intention of choosing a method best -suited to that frame. Different modes are, e.g. how frame size -is changed from frame to frame. The mode number of a frame serves as a -top level configuration switch for all other specific aspects of frame -decode.

      -A 'mode' configuration consists of a frame size setting, window type -(always 0, the Vorbis window, in Vorbis I), transform type (always -type 0, the MDCT, in Vorbis I) and a mapping number. The mapping -number specifies which mapping configuration instance to use for -low-level packet decode and synthesis.

      1.2.3. Mapping

      -A mapping contains a channel coupling description and a list of -'submaps' that bundle sets of channel vectors together for grouped -encoding and decoding. These submaps are not references to external -components; the submap list is internal and specific to a mapping.

      -A 'submap' is a configuration/grouping that applies to a subset of -floor and residue vectors within a mapping. The submap functions as a -last layer of indirection such that specific special floor or residue -settings can be applied not only to all the vectors in a given mode, -but also specific vectors in a specific mode. Each submap specifies -the proper floor and residue instance number to use for decoding that -submap's spectral floor and spectral residue vectors.

      -As an example:

      -Assume a Vorbis stream that contains six channels in the standard 5.1 -format. The sixth channel, as is normal in 5.1, is bass only. -Therefore it would be wasteful to encode a full-spectrum version of it -as with the other channels. The submapping mechanism can be used to -apply a full range floor and residue encoding to channels 0 through 4, -and a bass-only representation to the bass channel, thus saving space. -In this example, channels 0-4 belong to submap 0 (which indicates use -of a full-range floor) and channel 5 belongs to submap 1, which uses a -bass-only representation.

      1.2.4. Floor

      -Vorbis encodes a spectral 'floor' vector for each PCM channel. This -vector is a low-resolution representation of the audio spectrum for -the given channel in the current frame, generally used akin to a -whitening filter. It is named a 'floor' because the Xiph.Org -reference encoder has historically used it as a unit-baseline for -spectral resolution.

      -A floor encoding may be of two types. Floor 0 uses a packed LSP -representation on a dB amplitude scale and Bark frequency scale. -Floor 1 represents the curve as a piecewise linear interpolated -representation on a dB amplitude scale and linear frequency scale. -The two floors are semantically interchangeable in -encoding/decoding. However, floor type 1 provides more stable -inter-frame behavior, and so is the preferred choice in all -coupled-stereo and high bitrate modes. Floor 1 is also considerably -less expensive to decode than floor 0.

      -Floor 0 is not to be considered deprecated, but it is of limited -modern use. No known Vorbis encoder past Xiph.org's own beta 4 makes -use of floor 0.

      -The values coded/decoded by a floor are both compactly formatted and -make use of entropy coding to save space. For this reason, a floor -configuration generally refers to multiple codebooks in the codebook -component list. Entropy coding is thus provided as an abstraction, -and each floor instance may choose from any and all available -codebooks when coding/decoding.

      1.2.5. Residue

      -The spectral residue is the fine structure of the audio spectrum -once the floor curve has been subtracted out. In simplest terms, it -is coded in the bitstream using cascaded (multi-pass) vector -quantization according to one of three specific packing/coding -algorithms numbered 0 through 2. The packing algorithm details are -configured by residue instance. As with the floor components, the -final VQ/entropy encoding is provided by external codebook instances -and each residue instance may choose from any and all available -codebooks.

      1.2.6. Codebooks

      -Codebooks are a self-contained abstraction that perform entropy -decoding and, optionally, use the entropy-decoded integer value as an -offset into an index of output value vectors, returning the indicated -vector of values.

      -The entropy coding in a Vorbis I codebook is provided by a standard -Huffman binary tree representation. This tree is tightly packed using -one of several methods, depending on whether codeword lengths are -ordered or unordered, or the tree is sparse.

      -The codebook vector index is similarly packed according to index -characteristic. Most commonly, the vector index is encoded as a -single list of values of possible values that are then permuted into -a list of n-dimensional rows (lattice VQ).

      1.3. High-level Decode Process

      1.3.1. Decode Setup

      -Before decoding can begin, a decoder must initialize using the -bitstream headers matching the stream to be decoded. Vorbis uses -three header packets; all are required, in-order, by this -specification. Once set up, decode may begin at any audio packet -belonging to the Vorbis stream. In Vorbis I, all packets after the -three initial headers are audio packets.

      -The header packets are, in order, the identification -header, the comments header, and the setup header.

      1.3.1.1. Identification Header

      -The identification header identifies the bitstream as Vorbis, Vorbis -version, and the simple audio characteristics of the stream such as -sample rate and number of channels.

      1.3.1.2. Comment Header

      -The comment header includes user text comments ("tags") and a vendor -string for the application/library that produced the bitstream. The -encoding and proper use of the comment header is described in -Section 5, “comment field and header specification”.

      1.3.1.3. Setup Header

      -The setup header includes extensive CODEC setup information as well as -the complete VQ and Huffman codebooks needed for decode.

      1.3.2. Decode Procedure

      -The decoding and synthesis procedure for all audio packets is -fundamentally the same. -

      1. decode packet type flag
      2. decode mode number
      3. decode window shape (long windows only)
      4. decode floor
      5. decode residue into residue vectors
      6. inverse channel coupling of residue vectors
      7. generate floor curve from decoded floor data
      8. compute dot product of floor and residue, producing audio spectrum vector
      9. inverse monolithic transform of audio spectrum vector, always an MDCT in Vorbis I
      10. overlap/add left-hand output of transform with right-hand output of previous frame
      11. store right hand-data from transform of current frame for future lapping
      12. if not first frame, return results of overlap/add as audio result of current frame

      -

      -Note that clever rearrangement of the synthesis arithmetic is -possible; as an example, one can take advantage of symmetries in the -MDCT to store the right-hand transform data of a partial MDCT for a -50% inter-frame buffer space savings, and then complete the transform -later before overlap/add with the next frame. This optimization -produces entirely equivalent output and is naturally perfectly legal. -The decoder must be entirely mathematically equivalent to the -specification, it need not be a literal semantic implementation.

      1.3.2.1. Packet type decode

      -Vorbis I uses four packet types. The first three packet types mark each -of the three Vorbis headers described above. The fourth packet type -marks an audio packet. All other packet types are reserved; packets -marked with a reserved type should be ignored.

      -Following the three header packets, all packets in a Vorbis I stream -are audio. The first step of audio packet decode is to read and -verify the packet type; a non-audio packet when audio is expected -indicates stream corruption or a non-compliant stream. The decoder -must ignore the packet and not attempt decoding it to -audio.

      1.3.2.2. Mode decode

      -Vorbis allows an encoder to set up multiple, numbered packet 'modes', -as described earlier, all of which may be used in a given Vorbis -stream. The mode is encoded as an integer used as a direct offset into -the mode instance index.

      1.3.2.3. Window shape decode (long windows only)

      -Vorbis frames may be one of two PCM sample sizes specified during -codec setup. In Vorbis I, legal frame sizes are powers of two from 64 -to 8192 samples. Aside from coupling, Vorbis handles channels as -independent vectors and these frame sizes are in samples per channel.

      -Vorbis uses an overlapping transform, namely the MDCT, to blend one -frame into the next, avoiding most inter-frame block boundary -artifacts. The MDCT output of one frame is windowed according to MDCT -requirements, overlapped 50% with the output of the previous frame and -added. The window shape assures seamless reconstruction.

      -This is easy to visualize in the case of equal sized-windows:

      overlap of two equal-sized windows

      -And slightly more complex in the case of overlapping unequal sized -windows:

      overlap of a long and a short window

      -In the unequal-sized window case, the window shape of the long window -must be modified for seamless lapping as above. It is possible to -correctly infer window shape to be applied to the current window from -knowing the sizes of the current, previous and next window. It is -legal for a decoder to use this method. However, in the case of a long -window (short windows require no modification), Vorbis also codes two -flag bits to specify pre- and post- window shape. Although not -strictly necessary for function, this minor redundancy allows a packet -to be fully decoded to the point of lapping entirely independently of -any other packet, allowing easier abstraction of decode layers as well -as allowing a greater level of easy parallelism in encode and -decode.

      -A description of valid window functions for use with an inverse MDCT -can be found in the paper -“ - -The use of multirate filter banks for coding of high quality digital -audio”, by T. Sporer, K. Brandenburg and B. Edler. Vorbis windows -all use the slope function - . -

      1.3.2.4. floor decode

      -Each floor is encoded/decoded in channel order, however each floor -belongs to a 'submap' that specifies which floor configuration to -use. All floors are decoded before residue decode begins.

      1.3.2.5. residue decode

      -Although the number of residue vectors equals the number of channels, -channel coupling may mean that the raw residue vectors extracted -during decode do not map directly to specific channels. When channel -coupling is in use, some vectors will correspond to coupled magnitude -or angle. The coupling relationships are described in the codec setup -and may differ from frame to frame, due to different mode numbers.

      -Vorbis codes residue vectors in groups by submap; the coding is done -in submap order from submap 0 through n-1. This differs from floors -which are coded using a configuration provided by submap number, but -are coded individually in channel order.

      1.3.2.6. inverse channel coupling

      -A detailed discussion of stereo in the Vorbis codec can be found in -the document Stereo Channel Coupling in the -Vorbis CODEC. Vorbis is not limited to only stereo coupling, but -the stereo document also gives a good overview of the generic coupling -mechanism.

      -Vorbis coupling applies to pairs of residue vectors at a time; -decoupling is done in-place a pair at a time in the order and using -the vectors specified in the current mapping configuration. The -decoupling operation is the same for all pairs, converting square -polar representation (where one vector is magnitude and the second -angle) back to Cartesian representation.

      -After decoupling, in order, each pair of vectors on the coupling list, -the resulting residue vectors represent the fine spectral detail -of each output channel.

      1.3.2.7. generate floor curve

      -The decoder may choose to generate the floor curve at any appropriate -time. It is reasonable to generate the output curve when the floor -data is decoded from the raw packet, or it can be generated after -inverse coupling and applied to the spectral residue directly, -combining generation and the dot product into one step and eliminating -some working space.

      -Both floor 0 and floor 1 generate a linear-range, linear-domain output -vector to be multiplied (dot product) by the linear-range, -linear-domain spectral residue.

      1.3.2.8. compute floor/residue dot product

      -This step is straightforward; for each output channel, the decoder -multiplies the floor curve and residue vectors element by element, -producing the finished audio spectrum of each channel.

      -One point is worth mentioning about this dot product; a common mistake -in a fixed point implementation might be to assume that a 32 bit -fixed-point representation for floor and residue and direct -multiplication of the vectors is sufficient for acceptable spectral -depth in all cases because it happens to mostly work with the current -Xiph.Org reference encoder.

      -However, floor vector values can span ~140dB (~24 bits unsigned), and -the audio spectrum vector should represent a minimum of 120dB (~21 -bits with sign), even when output is to a 16 bit PCM device. For the -residue vector to represent full scale if the floor is nailed to --140dB, it must be able to span 0 to +140dB. For the residue vector -to reach full scale if the floor is nailed at 0dB, it must be able to -represent -140dB to +0dB. Thus, in order to handle full range -dynamics, a residue vector may span -140dB to +140dB entirely within -spec. A 280dB range is approximately 48 bits with sign; thus the -residue vector must be able to represent a 48 bit range and the dot -product must be able to handle an effective 48 bit times 24 bit -multiplication. This range may be achieved using large (64 bit or -larger) integers, or implementing a movable binary point -representation.

      1.3.2.9. inverse monolithic transform (MDCT)

      -The audio spectrum is converted back into time domain PCM audio via an -inverse Modified Discrete Cosine Transform (MDCT). A detailed -description of the MDCT is available in the paper The use of multirate filter banks for coding of high quality digital -audio, by T. Sporer, K. Brandenburg and B. Edler.

      -Note that the PCM produced directly from the MDCT is not yet finished -audio; it must be lapped with surrounding frames using an appropriate -window (such as the Vorbis window) before the MDCT can be considered -orthogonal.

      1.3.2.10. overlap/add data

      -Windowed MDCT output is overlapped and added with the right hand data -of the previous window such that the 3/4 point of the previous window -is aligned with the 1/4 point of the current window (as illustrated in -the window overlap diagram). At this point, the audio data between the -center of the previous frame and the center of the current frame is -now finished and ready to be returned.

      1.3.2.11. cache right hand data

      -The decoder must cache the right hand portion of the current frame to -be lapped with the left hand portion of the next frame. -

      1.3.2.12. return finished audio data

      -The overlapped portion produced from overlapping the previous and -current frame data is finished data to be returned by the decoder. -This data spans from the center of the previous window to the center -of the current window. In the case of same-sized windows, the amount -of data to return is one-half block consisting of and only of the -overlapped portions. When overlapping a short and long window, much of -the returned range is not actually overlap. This does not damage -transform orthogonality. Pay attention however to returning the -correct data range; the amount of data to be returned is: - -

      -window_blocksize(previous_window)/4+window_blocksize(current_window)/4
      -

      - -from the center of the previous window to the center of the current -window.

      -Data is not returned from the first frame; it must be used to 'prime' -the decode engine. The encoder accounts for this priming when -calculating PCM offsets; after the first frame, the proper PCM output -offset is '0' (as no data has been returned yet).

      2. Bitpacking Convention

      - $Id: 02-bitpacking.xml,v 1.6 2002/10/27 16:20:47 giles Exp $ - Last update to this document: July 14, 2002 -

      2.1. Overview

      -The Vorbis codec uses relatively unstructured raw packets containing -arbitrary-width binary integer fields. Logically, these packets are a -bitstream in which bits are coded one-by-one by the encoder and then -read one-by-one in the same monotonically increasing order by the -decoder. Most current binary storage arrangements group bits into a -native word size of eight bits (octets), sixteen bits, thirty-two bits -or, less commonly other fixed word sizes. The Vorbis bitpacking -convention specifies the correct mapping of the logical packet -bitstream into an actual representation in fixed-width words. -

      2.1.1. octets, bytes and words

      -In most contemporary architectures, a 'byte' is synonymous with an -'octet', that is, eight bits. This has not always been the case; -seven, ten, eleven and sixteen bit 'bytes' have been used. For -purposes of the bitpacking convention, a byte implies the native, -smallest integer storage representation offered by a platform. On -modern platforms, this is generally assumed to be eight bits (not -necessarily because of the processor but because of the -filesystem/memory architecture. Modern filesystems invariably offer -bytes as the fundamental atom of storage). A 'word' is an integer -size that is a grouped multiple of this smallest size.

      -The most ubiquitous architectures today consider a 'byte' to be an -octet (eight bits) and a word to be a group of two, four or eight -bytes (16, 32 or 64 bits). Note however that the Vorbis bitpacking -convention is still well defined for any native byte size; Vorbis uses -the native bit-width of a given storage system. This document assumes -that a byte is one octet for purposes of example.

      2.1.2. bit order

      -A byte has a well-defined 'least significant' bit (LSb), which is the -only bit set when the byte is storing the two's complement integer -value +1. A byte's 'most significant' bit (MSb) is at the opposite -end of the byte. Bits in a byte are numbered from zero at the LSb to -n (n=7 in an octet) for the -MSb.

      2.1.3. byte order

      -Words are native groupings of multiple bytes. Several byte orderings -are possible in a word; the common ones are 3-2-1-0 ('big endian' or -'most significant byte first' in which the highest-valued byte comes -first), 0-1-2-3 ('little endian' or 'least significant byte first' in -which the lowest value byte comes first) and less commonly 3-1-2-0 and -0-2-1-3 ('mixed endian').

      -The Vorbis bitpacking convention specifies storage and bitstream -manipulation at the byte, not word, level, thus host word ordering is -of a concern only during optimization when writing high performance -code that operates on a word of storage at a time rather than by byte. -Logically, bytes are always coded and decoded in order from byte zero -through byte n.

      2.1.4. coding bits into byte sequences

      -The Vorbis codec has need to code arbitrary bit-width integers, from -zero to 32 bits wide, into packets. These integer fields are not -aligned to the boundaries of the byte representation; the next field -is written at the bit position at which the previous field ends.

      -The encoder logically packs integers by writing the LSb of a binary -integer to the logical bitstream first, followed by next least -significant bit, etc, until the requested number of bits have been -coded. When packing the bits into bytes, the encoder begins by -placing the LSb of the integer to be written into the least -significant unused bit position of the destination byte, followed by -the next-least significant bit of the source integer and so on up to -the requested number of bits. When all bits of the destination byte -have been filled, encoding continues by zeroing all bits of the next -byte and writing the next bit into the bit position 0 of that byte. -Decoding follows the same process as encoding, but by reading bits -from the byte stream and reassembling them into integers.

      2.1.5. signedness

      -The signedness of a specific number resulting from decode is to be -interpreted by the decoder given decode context. That is, the three -bit binary pattern 'b111' can be taken to represent either 'seven' as -an unsigned integer, or '-1' as a signed, two's complement integer. -The encoder and decoder are responsible for knowing if fields are to -be treated as signed or unsigned.

      2.1.6. coding example

      -Code the 4 bit integer value '12' [b1100] into an empty bytestream. -Bytestream result: - -

        
      -              |
      -              V
      -
      -        7 6 5 4 3 2 1 0
      -byte 0 [0 0 0 0 1 1 0 0]  <-
      -byte 1 [               ]
      -byte 2 [               ]
      -byte 3 [               ]
      -             ...
      -byte n [               ]  bytestream length == 1 byte
      -
      -

      -

      -Continue by coding the 3 bit integer value '-1' [b111]: - -

      -        |
      -        V
      -
      -        7 6 5 4 3 2 1 0
      -byte 0 [0 1 1 1 1 1 0 0]  <-
      -byte 1 [               ]
      -byte 2 [               ]
      -byte 3 [               ]
      -             ... 
      -byte n [               ]  bytestream length == 1 byte
      -

      -

      -Continue by coding the 7 bit integer value '17' [b0010001]: - -

      -          |
      -          V    
      -
      -        7 6 5 4 3 2 1 0
      -byte 0 [1 1 1 1 1 1 0 0]
      -byte 1 [0 0 0 0 1 0 0 0]  <-
      -byte 2 [               ]
      -byte 3 [               ]
      -             ...
      -byte n [               ]  bytestream length == 2 bytes
      -                          bit cursor == 6
      -

      -

      -Continue by coding the 13 bit integer value '6969' [b110 11001110 01]: - -

      -                |
      -                V
      -
      -        7 6 5 4 3 2 1 0
      -byte 0 [1 1 1 1 1 1 0 0]
      -byte 1 [0 1 0 0 1 0 0 0]
      -byte 2 [1 1 0 0 1 1 1 0]
      -byte 3 [0 0 0 0 0 1 1 0]  <-
      -             ...
      -byte n [               ]  bytestream length == 4 bytes
      -
      -

      -

      2.1.7. decoding example

      -Reading from the beginning of the bytestream encoded in the above example: - -

      -                      |
      -                      V
      -                      
      -        7 6 5 4 3 2 1 0
      -byte 0 [1 1 1 1 1 1 0 0]  <-
      -byte 1 [0 1 0 0 1 0 0 0]
      -byte 2 [1 1 0 0 1 1 1 0]
      -byte 3 [0 0 0 0 0 1 1 0]  bytestream length == 4 bytes
      -
      -

      -

      -We read two, two-bit integer fields, resulting in the returned numbers -'b00' and 'b11'. Two things are worth noting here: - -

      • Although these four bits were originally written as a single -four-bit integer, reading some other combination of bit-widths from the -bitstream is well defined. There are no artificial alignment -boundaries maintained in the bitstream.

      • The second value is the -two-bit-wide integer 'b11'. This value may be interpreted either as -the unsigned value '3', or the signed value '-1'. Signedness is -dependent on decode context.

      -

      2.1.8. end-of-packet alignment

      -The typical use of bitpacking is to produce many independent -byte-aligned packets which are embedded into a larger byte-aligned -container structure, such as an Ogg transport bitstream. Externally, -each bytestream (encoded bitstream) must begin and end on a byte -boundary. Often, the encoded bitstream is not an integer number of -bytes, and so there is unused (uncoded) space in the last byte of a -packet.

      -Unused space in the last byte of a bytestream is always zeroed during -the coding process. Thus, should this unused space be read, it will -return binary zeroes.

      -Attempting to read past the end of an encoded packet results in an -'end-of-packet' condition. End-of-packet is not to be considered an -error; it is merely a state indicating that there is insufficient -remaining data to fulfill the desired read size. Vorbis uses truncated -packets as a normal mode of operation, and as such, decoders must -handle reading past the end of a packet as a typical mode of -operation. Any further read operations after an 'end-of-packet' -condition shall also return 'end-of-packet'.

      2.1.9.  reading zero bits

      -Reading a zero-bit-wide integer returns the value '0' and does not -increment the stream cursor. Reading to the end of the packet (but -not past, such that an 'end-of-packet' condition has not triggered) -and then reading a zero bit integer shall succeed, returning 0, and -not trigger an end-of-packet condition. Reading a zero-bit-wide -integer after a previous read sets 'end-of-packet' shall also fail -with 'end-of-packet'.

      3. Probability Model and Codebooks

      - $Id: 03-codebook.xml,v 1.5 2002/10/27 16:20:47 giles Exp $ - Last update to this document: August 8, 2002 -

      3.1. Overview

      -Unlike practically every other mainstream audio codec, Vorbis has no -statically configured probability model, instead packing all entropy -decoding configuration, VQ and Huffman, into the bitstream itself in -the third header, the codec setup header. This packed configuration -consists of multiple 'codebooks', each containing a specific -Huffman-equivalent representation for decoding compressed codewords as -well as an optional lookup table of output vector values to which a -decoded Huffman value is applied as an offset, generating the final -decoded output corresponding to a given compressed codeword.

      3.1.1. Bitwise operation

      -The codebook mechanism is built on top of the vorbis bitpacker. Both -the codebooks themselves and the codewords they decode are unrolled -from a packet as a series of arbitrary-width values read from the -stream according to Section 2, “Bitpacking Convention”.

      3.2. Packed codebook format

      -For purposes of the examples below, we assume that the storage -system's native byte width is eight bits. This is not universally -true; see Section 2, “Bitpacking Convention” for discussion -relating to non-eight-bit bytes.

      3.2.1. codebook decode

      -A codebook begins with a 24 bit sync pattern, 0x564342: - -

      -byte 0: [ 0 1 0 0 0 0 1 0 ] (0x42)
      -byte 1: [ 0 1 0 0 0 0 1 1 ] (0x43)
      -byte 2: [ 0 1 0 1 0 1 1 0 ] (0x56)
      -

      -16 bit [codebook_dimensions] and 24 bit [codebook_entries] fields: - -

      -
      -byte 3: [ X X X X X X X X ] 
      -byte 4: [ X X X X X X X X ] [codebook_dimensions] (16 bit unsigned)
      -
      -byte 5: [ X X X X X X X X ] 
      -byte 6: [ X X X X X X X X ] 
      -byte 7: [ X X X X X X X X ] [codebook_entries] (24 bit unsigned)
      -
      -

      -Next is the [ordered] bit flag: - -

      -
      -byte 8: [               X ] [ordered] (1 bit)
      -
      -

      -Each entry, numbering a -total of [codebook_entries], is assigned a codeword length. -We now read the list of codeword lengths and store these lengths in -the array [codebook_codeword_lengths]. Decode of lengths is -according to whether the [ordered] flag is set or unset. - -

      • If the [ordered] flag is unset, the codeword list is not - length ordered and the decoder needs to read each codeword length - one-by-one.

        The decoder first reads one additional bit flag, the - [sparse] flag. This flag determines whether or not the - codebook contains unused entries that are not to be included in the - codeword decode tree: - -

        -byte 8: [             X 1 ] [sparse] flag (1 bit)
        -

        - The decoder now performs for each of the [codebook_entries] - codebook entries: - -

        -  
        -  1) if([sparse] is set){
        -
        -         2) [flag] = read one bit;
        -         3) if([flag] is set){
        -
        -              4) [length] = read a five bit unsigned integer;
        -              5) codeword length for this entry is [length]+1;
        -
        -            } else {
        -
        -              6) this entry is unused.  mark it as such.
        -
        -            }
        -
        -     } else the sparse flag is not set {
        -
        -        7) [length] = read a five bit unsigned integer;
        -        8) the codeword length for this entry is [length]+1;
        -        
        -     }
        -
        -
      • If the [ordered] flag is set, the codeword list for this - codebook is encoded in ascending length order. Rather than reading - a length for every codeword, the encoder reads the number of - codewords per length. That is, beginning at entry zero: - -

        -  1) [current_entry] = 0;
        -  2) [current_length] = read a five bit unsigned integer and add 1;
        -  3) [number] = read ilog([codebook_entries] - [current_entry]) bits as an unsigned integer
        -  4) set the entries [current_entry] through [current_entry]+[number]-1, inclusive, 
        -    of the [codebook_codeword_lengths] array to [current_length]
        -  5) set [current_entry] to [number] + [current_entry]
        -  6) increment [current_length] by 1
        -  7) if [current_entry] is greater than [codebook_entries] ERROR CONDITION; 
        -    the decoder will not be able to read this stream.
        -  8) if [current_entry] is less than [codebook_entries], repeat process starting at 3)
        -  9) done.
        -

      - -After all codeword lengths have been decoded, the decoder reads the -vector lookup table. Vorbis I supports three lookup types: -

      1. No lookup
      2. Implicitly populated value mapping (lattice VQ)
      3. Explicitly populated value mapping (tessellated or 'foam' -VQ)

      -

      -The lookup table type is read as a four bit unsigned integer: -

      -  1) [codebook_lookup_type] = read four bits as an unsigned integer
      -

      -Codebook decode precedes according to [codebook_lookup_type]: -

      • Lookup type zero indicates no lookup to be read. Proceed past -lookup decode.

      • Lookup types one and two are similar, differing only in the -number of lookup values to be read. Lookup type one reads a list of -values that are permuted in a set pattern to build a list of vectors, -each vector of order [codebook_dimensions] scalars. Lookup -type two builds the same vector list, but reads each scalar for each -vector explicitly, rather than building vectors from a smaller list of -possible scalar values. Lookup decode proceeds as follows: - -

        -  1) [codebook_minimum_value] = float32_unpack( read 32 bits as an unsigned integer) 
        -  2) [codebook_delta_value] = float32_unpack( read 32 bits as an unsigned integer) 
        -  3) [codebook_value_bits] = read 4 bits as an unsigned integer and add 1
        -  4) [codebook_sequence_p] = read 1 bit as a boolean flag
        -
        -  if ( [codebook_lookup_type] is 1 ) {
        -   
        -     5) [codebook_lookup_values] = lookup1_values([codebook_entries], [codebook_dimensions] )
        -
        -  } else {
        -
        -     6) [codebook_lookup_values] = [codebook_entries] * [codebook_dimensions]
        -
        -  }
        -
        -  7) read a total of [codebook_lookup_values] unsigned integers of [codebook_value_bits] each; 
        -     store these in order in the array [codebook_multiplicands]
        -
      • A [codebook_lookup_type] of greater than two is reserved -and indicates a stream that is not decodable by the specification in this -document.

      -

      -An 'end of packet' during any read operation in the above steps is -considered an error condition rendering the stream undecodable.

      3.2.1.1. Huffman decision tree representation

      -The [codebook_codeword_lengths] array and -[codebook_entries] value uniquely define the Huffman decision -tree used for entropy decoding.

      -Briefly, each used codebook entry (recall that length-unordered -codebooks support unused codeword entries) is assigned, in order, the -lowest valued unused binary Huffman codeword possible. Assume the -following codeword length list: - -

      -entry 0: length 2
      -entry 1: length 4
      -entry 2: length 4
      -entry 3: length 4
      -entry 4: length 4
      -entry 5: length 2
      -entry 6: length 3
      -entry 7: length 3
      -

      -Assigning codewords in order (lowest possible value of the appropriate -length to highest) results in the following codeword list: - -

      -entry 0: length 2 codeword 00
      -entry 1: length 4 codeword 0100
      -entry 2: length 4 codeword 0101
      -entry 3: length 4 codeword 0110
      -entry 4: length 4 codeword 0111
      -entry 5: length 2 codeword 10
      -entry 6: length 3 codeword 110
      -entry 7: length 3 codeword 111
      -

      Note

      -Unlike most binary numerical values in this document, we -intend the above codewords to be read and used bit by bit from left to -right, thus the codeword '001' is the bit string 'zero, zero, one'. -When determining 'lowest possible value' in the assignment definition -above, the leftmost bit is the MSb.

      -It is clear that the codeword length list represents a Huffman -decision tree with the entry numbers equivalent to the leaves numbered -left-to-right: - -

      [huffman tree illustration]

      -

      -As we assign codewords in order, we see that each choice constructs a -new leaf in the leftmost possible position.

      -Note that it's possible to underspecify or overspecify a Huffman tree -via the length list. In the above example, if codeword seven were -eliminated, it's clear that the tree is unfinished: - -

      [underspecified huffman tree illustration]

      -

      -Similarly, in the original codebook, it's clear that the tree is fully -populated and a ninth codeword is impossible. Both underspecified and -overspecified trees are an error condition rendering the stream -undecodable.

      -Codebook entries marked 'unused' are simply skipped in the assigning -process. They have no codeword and do not appear in the decision -tree, thus it's impossible for any bit pattern read from the stream to -decode to that entry number.

      3.2.1.2. VQ lookup table vector representation

      -Unpacking the VQ lookup table vectors relies on the following values: -

      -the [codebook_multiplicands] array
      -[codebook_minimum_value]
      -[codebook_delta_value]
      -[codebook_sequence_p]
      -[codebook_lookup_type]
      -[codebook_entries]
      -[codebook_dimensions]
      -[codebook_lookup_values]
      -

      -

      -Decoding (unpacking) a specific vector in the vector lookup table -proceeds according to [codebook_lookup_type]. The unpacked -vector values are what a codebook would return during audio packet -decode in a VQ context.

      3.2.1.2.1. Vector value decode: Lookup type 1

      -Lookup type one specifies a lattice VQ lookup table built -algorithmically from a list of scalar values. Calculate (unpack) the -final values of a codebook entry vector from the entries in -[codebook_multiplicands] as follows ([value_vector] -is the output vector representing the vector of values for entry number -[lookup_offset] in this codebook): - -

      -  1) [last] = 0;
      -  2) [index_divisor] = 1;
      -  3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) {
      -       
      -       4) [multiplicand_offset] = ( [lookup_offset] divided by [index_divisor] using integer 
      -          division ) integer modulo [codebook_lookup_values]
      -
      -       5) vector [value_vector] element [i] = 
      -            ( [codebook_multiplicands] array element number [multiplicand_offset] ) *
      -            [codebook_delta_value] + [codebook_minimum_value] + [last];
      -
      -       6) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i]
      -
      -       7) [index_divisor] = [index_divisor] * [codebook_lookup_values]
      -
      -     }
      - 
      -  8) vector calculation completed.
      -
      3.2.1.2.2. Vector value decode: Lookup type 2

      -Lookup type two specifies a VQ lookup table in which each scalar in -each vector is explicitly set by the [codebook_multiplicands] -array in a one-to-one mapping. Calculate [unpack] the -final values of a codebook entry vector from the entries in -[codebook_multiplicands] as follows ([value_vector] -is the output vector representing the vector of values for entry number -[lookup_offset] in this codebook): - -

      -  1) [last] = 0;
      -  2) [multiplicand_offset] = [lookup_offset] * [codebook_dimensions]
      -  3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) {
      -
      -       4) vector [value_vector] element [i] = 
      -            ( [codebook_multiplicands] array element number [multiplicand_offset] ) *
      -            [codebook_delta_value] + [codebook_minimum_value] + [last];
      -
      -       5) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] 
      -
      -       6) increment [multiplicand_offset]
      -
      -     }
      - 
      -  7) vector calculation completed.
      -

      3.3. Use of the codebook abstraction

      -The decoder uses the codebook abstraction much as it does the -bit-unpacking convention; a specific codebook reads a -codeword from the bitstream, decoding it into an entry number, and then -returns that entry number to the decoder (when used in a scalar -entropy coding context), or uses that entry number as an offset into -the VQ lookup table, returning a vector of values (when used in a context -desiring a VQ value). Scalar or VQ context is always explicit; any call -to the codebook mechanism requests either a scalar entry number or a -lookup vector.

      -Note that VQ lookup type zero indicates that there is no lookup table; -requesting decode using a codebook of lookup type 0 in any context -expecting a vector return value (even in a case where a vector of -dimension one) is forbidden. If decoder setup or decode requests such -an action, that is an error condition rendering the packet -undecodable.

      -Using a codebook to read from the packet bitstream consists first of -reading and decoding the next codeword in the bitstream. The decoder -reads bits until the accumulated bits match a codeword in the -codebook. This process can be though of as logically walking the -Huffman decode tree by reading one bit at a time from the bitstream, -and using the bit as a decision boolean to take the 0 branch (left in -the above examples) or the 1 branch (right in the above examples). -Walking the tree finishes when the decode process hits a leaf in the -decision tree; the result is the entry number corresponding to that -leaf. Reading past the end of a packet propagates the 'end-of-stream' -condition to the decoder.

      -When used in a scalar context, the resulting codeword entry is the -desired return value.

      -When used in a VQ context, the codeword entry number is used as an -offset into the VQ lookup table. The value returned to the decoder is -the vector of scalars corresponding to this offset.

      4. Codec Setup and Packet Decode

      - $Id: 04-codec.xml,v 1.8 2003/03/11 11:02:17 xiphmont Exp $ - Last update to this document: March 11, 2003 -

      4.1. Overview

      -This document serves as the top-level reference document for the -bit-by-bit decode specification of Vorbis I. This document assumes a -high-level understanding of the Vorbis decode process, which is -provided in Section 1, “Introduction and Description”. Section 2, “Bitpacking Convention” covers reading and writing bit fields from -and to bitstream packets.

      4.2. Header decode and decode setup

      -A Vorbis bitstream begins with three header packets. The header -packets are, in order, the identification header, the comments header, -and the setup header. All are required for decode compliance. An -end-of-packet condition during decoding the first or third header -packet renders the stream undecodable. End-of-packet decoding the -comment header is a non-fatal error condition.

      4.2.1. Common header decode

      -Each header packet begins with the same header fields. -

      -  1) [packet_type] : 8 bit value
      -  2) 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73: the characters 'v','o','r','b','i','s' as six octets
      -

      -Decode continues according to packet type; the identification header -is type 1, the comment header type 3 and the setup header type 5 -(these types are all odd as a packet with a leading single bit of '0' -is an audio packet). The packets must occur in the order of -identification, comment, setup.

      4.2.2. Identification header

      -The identification header is a short header of only a few fields used -to declare the stream definitively as Vorbis, and provide a few externally -relevant pieces of information about the audio stream. The -identification header is coded as follows:

      - 1) [vorbis_version] = read 32 bits as unsigned integer
      - 2) [audio_channels] = read 8 bit integer as unsigned
      - 3) [audio_sample_rate] = read 32 bits as unsigned integer
      - 4) [bitrate_maximum] = read 32 bits as signed integer
      - 5) [bitrate_nominal] = read 32 bits as signed integer
      - 6) [bitrate_minimum] = read 32 bits as signed integer
      - 7) [blocksize_0] = 2 exponent (read 4 bits as unsigned integer)
      - 8) [blocksize_1] = 2 exponent (read 4 bits as unsigned integer)
      - 9) [framing_flag] = read one bit
      -

      -[vorbis_version] is to read '0' in order to be compatible -with this document. Both [audio_channels] and -[audio_sample_rate] must read greater than zero. Allowed final -blocksize values are 64, 128, 256, 512, 1024, 2048, 4096 and 8192 in -Vorbis I. [blocksize_0] must be less than or equal to -[blocksize_1]. The framing bit must be nonzero. Failure to -meet any of these conditions renders a stream undecodable.

      -The bitrate fields above are used only as hints. The nominal bitrate -field especially may be considerably off in purely VBR streams. The -fields are meaningful only when greater than zero.

      • All three fields set to the same value implies a fixed rate, or tightly bounded, nearly fixed-rate bitstream
      • Only nominal set implies a VBR or ABR stream that averages the nominal bitrate
      • Maximum and or minimum set implies a VBR bitstream that obeys the bitrate limits
      • None set indicates the encoder does not care to speculate.

      4.2.3. Comment header

      -Comment header decode and data specification is covered in -Section 5, “comment field and header specification”.

      4.2.4. Setup header

      -Vorbis codec setup is configurable to an extreme degree: - -

      [decoder pipeline configuration]

      -

      -The setup header contains the bulk of the codec setup information -needed for decode. The setup header contains, in order, the lists of -codebook configurations, time-domain transform configurations -(placeholders in Vorbis I), floor configurations, residue -configurations, channel mapping configurations and mode -configurations. It finishes with a framing bit of '1'. Header decode -proceeds in the following order:

      4.2.4.1. Codebooks
      1. [vorbis_codebook_count] = read eight bits as unsigned integer and add one
      2. Decode [vorbis_codebook_count] codebooks in order as defined -in Section 3, “Probability Model and Codebooks”. Save each configuration, in -order, in an array of -codebook configurations [vorbis_codebook_configurations].
      4.2.4.2. Time domain transforms

      -These hooks are placeholders in Vorbis I. Nevertheless, the -configuration placeholder values must be read to maintain bitstream -sync.

      1. [vorbis_time_count] = read 6 bits as unsigned integer and add one
      2. read [vorbis_time_count] 16 bit values; each value should be zero. If any value is nonzero, this is an error condition and the stream is undecodable.
      4.2.4.3. Floors

      -Vorbis uses two floor types; header decode is handed to the decode -abstraction of the appropriate type.

      1. [vorbis_floor_count] = read 6 bits as unsigned integer and add one
      2. For each [i] of [vorbis_floor_count] floor numbers: -

        1. read the floor type: vector [vorbis_floor_types] element [i] = -read 16 bits as unsigned integer
        2. If the floor type is zero, decode the floor -configuration as defined in Section 6, “Floor type 0 setup and decode”; save -this -configuration in slot [i] of the floor configuration array [vorbis_floor_configurations].
        3. If the floor type is one, -decode the floor configuration as defined in Section 7, “Floor type 1 setup and decode”; save this configuration in slot [i] of the floor configuration array [vorbis_floor_configurations].
        4. If the the floor type is greater than one, this stream is undecodable; ERROR CONDITION

        -

      4.2.4.4. Residues

      -Vorbis uses three residue types; header decode of each type is identical. -

      1. [vorbis_residue_count] = read 6 bits as unsigned integer and add one -
      2. For each of [vorbis_residue_count] residue numbers: -

        1. read the residue type; vector [vorbis_residue_types] element [i] = read 16 bits as unsigned integer
        2. If the residue type is zero, -one or two, decode the residue configuration as defined in Section 8, “Residue setup and decode”; save this configuration in slot [i] of the residue configuration array [vorbis_residue_configurations].
        3. If the the residue type is greater than two, this stream is undecodable; ERROR CONDITION

        -

      4.2.4.5. Mappings

      -Mappings are used to set up specific pipelines for encoding -multichannel audio with varying channel mapping applications. Vorbis I -uses a single mapping type (0), with implicit PCM channel mappings.

      1. [vorbis_mapping_count] = read 6 bits as unsigned integer and add one
      2. For each [i] of [vorbis_mapping_count] mapping numbers: -

        1. read the mapping type: 16 bits as unsigned integer. There's no reason to save the mapping type in Vorbis I.
        2. If the mapping type is nonzero, the stream is undecodable
        3. If the mapping type is zero: -

          1. read 1 bit as a boolean flag -

            1. if set, [vorbis_mapping_submaps] = read 4 bits as unsigned integer and add one
            2. if unset, [vorbis_mapping_submaps] = 1

            -

          2. read 1 bit as a boolean flag -

            1. if set, square polar channel mapping is in use: -

              1. [vorbis_mapping_coupling_steps] = read 8 bits as unsigned integer and add one
              2. for [j] each of [vorbis_mapping_coupling_steps] steps: -

                1. vector [vorbis_mapping_magnitude] element [j]= read ilog([audio_channels] - 1) bits as unsigned integer
                2. vector [vorbis_mapping_angle] element [j]= read ilog([audio_channels] - 1) bits as unsigned integer
                3. the numbers read in the above two steps are channel numbers representing the channel to treat as magnitude and the channel to treat as angle, respectively. If for any coupling step the angle channel number equals the magnitude channel number, the magnitude channel number is greater than [audio_channels]-1, or the angle channel is greater than [audio_channels]-1, the stream is undecodable.

                -

              -

            2. if unset, [vorbis_mapping_coupling_steps] = 0

            -

          3. read 2 bits (reserved field); if the value is nonzero, the stream is undecodable
          4. if [vorbis_mapping_submaps] is greater than one, we read channel multiplex settings. For each [j] of [audio_channels] channels:

            1. vector [vorbis_mapping_mux] element [j] = read 4 bits as unsigned integer
            2. if the value is greater than the highest numbered submap ([vorbis_mapping_submaps] - 1), this in an error condition rendering the stream undecodable
          5. for each submap [j] of [vorbis_mapping_submaps] submaps, read the floor and residue numbers for use in decoding that submap:

            1. read and discard 8 bits (the unused time configuration placeholder)
            2. read 8 bits as unsigned integer for the floor number; save in vector [vorbis_mapping_submap_floor] element [j]
            3. verify the floor number is not greater than the highest number floor configured for the bitstream. If it is, the bitstream is undecodable
            4. read 8 bits as unsigned integer for the residue number; save in vector [vorbis_mapping_submap_residue] element [j]
            5. verify the residue number is not greater than the highest number residue configured for the bitstream. If it is, the bitstream is undecodable
          6. save this mapping configuration in slot [i] of the mapping configuration array [vorbis_mapping_configurations].

        -

      4.2.4.6. Modes
      1. [vorbis_mode_count] = read 6 bits as unsigned integer and add one
      2. For each of [vorbis_mode_count] mode numbers:

        1. [vorbis_mode_blockflag] = read 1 bit
        2. [vorbis_mode_windowtype] = read 16 bits as unsigned integer
        3. [vorbis_mode_transformtype] = read 16 bits as unsigned integer
        4. [vorbis_mode_mapping] = read 8 bits as unsigned integer
        5. verify ranges; zero is the only legal value in Vorbis I for -[vorbis_mode_windowtype] -and [vorbis_mode_transformtype]. [vorbis_mode_mapping] must not be greater than the highest number mapping in use. Any illegal values render the stream undecodable.
        6. save this mode configuration in slot [i] of the mode configuration array -[vorbis_mode_configurations].
      3. read 1 bit as a framing flag. If unset, a framing error occurred and the stream is not -decodable.

      -After reading mode descriptions, setup header decode is complete. -

      4.3. Audio packet decode and synthesis

      -Following the three header packets, all packets in a Vorbis I stream -are audio. The first step of audio packet decode is to read and -verify the packet type. A non-audio packet when audio is expected -indicates stream corruption or a non-compliant stream. The decoder -must ignore the packet and not attempt decoding it to audio. -

      4.3.1. packet type, mode and window decode

      1. read 1 bit [packet_type]; check that packet type is 0 (audio)
      2. read ilog([vorbis_mode_count]-1) bits -[mode_number]
      3. decode blocksize [n] is equal to [blocksize_0] if -[vorbis_mode_blockflag] is 0, else [n] is equal to [blocksize_1].
      4. perform window selection and setup; this window is used later by the inverse MDCT:

        1. if this is a long window (the [vorbis_mode_blockflag] flag of this mode is -set):

          1. read 1 bit for [previous_window_flag]
          2. read 1 bit for [next_window_flag]
          3. if [previous_window_flag] is not set, the left half - of the window will be a hybrid window for lapping with a - short block. See Section 1.3.2.3, “Window shape decode (long windows only)” for an illustration of overlapping -dissimilar - windows. Else, the left half window will have normal long - shape.
          4. if [next_window_flag] is not set, the right half of - the window will be a hybrid window for lapping with a short - block. See Section 1.3.2.3, “Window shape decode (long windows only)” for an -illustration of overlapping dissimilar - windows. Else, the left right window will have normal long - shape.
        2. if this is a short window, the window is always the same - short-window shape.

      -Vorbis windows all use the slope function y=sin(0.5 * π * sin^2((x+.5)/n * π)), -where n is window size and x ranges 0...n-1, but dissimilar -lapping requirements can affect overall shape. Window generation -proceeds as follows:

      1. [window_center] = [n] / 2
      2. if ([vorbis_mode_blockflag] is set and [previous_window_flag] is -not set) then -

        1. [left_window_start] = [n]/4 - -[blocksize_0]/4
        2. [left_window_end] = [n]/4 + [blocksize_0]/4
        3. [left_n] = [blocksize_0]/2

        - else -

        1. [left_window_start] = 0
        2. [left_window_end] = [window_center]
        3. [left_n] = [n]/2
      3. if ([vorbis_mode_blockflag] is set and [next_window_flag] is not -set) then -

        1. [right_window_start] = [n]*3/4 - -[blocksize_0]/4
        2. [right_window_end] = [n]*3/4 + -[blocksize_0]/4
        3. [right_n] = [blocksize_0]/2

        - else -

        1. [right_window_start] = [window_center]
        2. [right_window_end] = [n]
        3. [right_n] = [n]/2
      4. window from range 0 ... [left_window_start]-1 inclusive is zero
      5. for [i] in range [left_window_start] ... -[left_window_end]-1, window([i]) = sin(.5 * π * sin^2( ([i]-[left_window_start]+.5) / [left_n] * .5 * π) )
      6. window from range [left_window_end] ... [right_window_start]-1 -inclusive is one
      7. for [i] in range [right_window_start] ... [right_window_end]-1, window([i]) = sin(.5 * π * sin^2( ([i]-[right_window_start]+.5) / [right_n] * .5 * π + .5 * π) )
      8. window from range [rigth_window_start] ... [n]-1 is -zero

      -An end-of-packet condition up to this point should be considered an -error that discards this packet from the stream. An end of packet -condition past this point is to be considered a possible nominal -occurrence.

      4.3.2. floor curve decode

      -From this point on, we assume out decode context is using mode number -[mode_number] from configuration array -[vorbis_mode_configurations] and the map number -[vorbis_mode_mapping] (specified by the current mode) taken -from the mapping configuration array -[vorbis_mapping_configurations].

      -Floor curves are decoded one-by-one in channel order.

      -For each floor [i] of [audio_channels] -

      1. [submap_number] = element [i] of vector [vorbis_mapping_mux]
      2. [floor_number] = element [submap_number] of vector -[vorbis_submap_floor]
      3. if the floor type of this -floor (vector [vorbis_floor_types] element -[floor_number]) is zero then decode the floor for -channel [i] according to the -Section 6.2.2, “packet decode”
      4. if the type of this floor -is one then decode the floor for channel [i] according -to the Section 7.2.2.1, “packet decode”
      5. save the needed decoded floor information for channel for later synthesis
      6. if the decoded floor returned 'unused', set vector [no_residue] element -[i] to true, else set vector [no_residue] element [i] to -false

      -

      -An end-of-packet condition during floor decode shall result in packet -decode zeroing all channel output vectors and skipping to the -add/overlap output stage.

      4.3.3. nonzero vector propagate

      -A possible result of floor decode is that a specific vector is marked -'unused' which indicates that that final output vector is all-zero -values (and the floor is zero). The residue for that vector is not -coded in the stream, save for one complication. If some vectors are -used and some are not, channel coupling could result in mixing a -zeroed and nonzeroed vector to produce two nonzeroed vectors.

      -for each [i] from 0 ... [vorbis_mapping_coupling_steps]-1 - -

      1. if either [no_residue] entry for channel -([vorbis_mapping_magnitude] element [i]) or (channel -[vorbis_mapping_angle] element [i]) are set to false, then both -must be set to false. Note that an 'unused' floor has no decoded floor -information; it is important that this is remembered at floor curve -synthesis time.

      -

      4.3.4. residue decode

      -Unlike floors, which are decoded in channel order, the residue vectors -are decoded in submap order.

      -for each submap [i] in order from 0 ... [vorbis_mapping_submaps]-1

      1. [ch] = 0
      2. for each channel [j] in order from 0 ... [audio_channels] - 1

        1. if channel [j] in submap [i] (vector [vorbis_mapping_mux] element [j] is equal to [i])

          1. if vector [no_residue] element [j] is true -

            1. vector [do_not_decode_flag] element [ch] is set

            - else -

            1. vector [do_not_decode_flag] element [ch] is unset
          2. increment [ch]
      3. [residue_number] = vector [vorbis_mapping_submap_residue] element [i]
      4. [residue_type] = vector [vorbis_residue_types] element [residue_number]
      5. decode [ch] vectors using residue [residue_number], according to type [residue_type], also passing vector [do_not_decode_flag] to indicate which vectors in the bundle should not be decoded. Correct per-vector decode length is [n]/2.
      6. [ch] = 0
      7. for each channel [j] in order from 0 ... [audio_channels]

        1. if channel [j] is in submap [i] (vector [vorbis_mapping_mux] element [j] is equal to [i])

          1. residue vector for channel [j] is set to decoded residue vector [ch]
          2. increment [ch]

      4.3.5. inverse coupling

      -for each [i] from [vorbis_mapping_coupling_steps]-1 descending to 0 - -

      1. [magnitude_vector] = the residue vector for channel -(vector [vorbis_mapping_magnitude] element [i])
      2. [angle_vector] = the residue vector for channel (vector -[vorbis_mapping_angle] element [i])
      3. for each scalar value [M] in vector [magnitude_vector] and the corresponding scalar value [A] in vector [angle_vector]:

        1. if ([M] is greater than zero) -

          1. if ([A] is greater than zero) -

            1. [new_M] = [M]
            2. [new_A] = [M]-[A]

            - else -

            1. [new_A] = [M]
            2. [new_M] = [M]+[A]

            -

          - else -

          1. if ([A] is greater than zero) -

            1. [new_M] = [M]
            2. [new_A] = [M]+[A]

            - else -

            1. [new_A] = [M]
            2. [new_M] = [M]-[A]

            -

          -

        2. set scalar value [M] in vector [magnitude_vector] to [new_M]
        3. set scalar value [A] in vector [angle_vector] to [new_A]

      -

      4.3.6. dot product

      -For each channel, synthesize the floor curve from the decoded floor -information, according to packet type. Note that the vector synthesis -length for floor computation is [n]/2.

      -For each channel, multiply each element of the floor curve by each -element of that channel's residue vector. The result is the dot -product of the floor and residue vectors for each channel; the produced -vectors are the length [n]/2 audio spectrum for each -channel.

      -One point is worth mentioning about this dot product; a common mistake -in a fixed point implementation might be to assume that a 32 bit -fixed-point representation for floor and residue and direct -multiplication of the vectors is sufficient for acceptable spectral -depth in all cases because it happens to mostly work with the current -Xiph.Org reference encoder.

      -However, floor vector values can span ~140dB (~24 bits unsigned), and -the audio spectrum vector should represent a minimum of 120dB (~21 -bits with sign), even when output is to a 16 bit PCM device. For the -residue vector to represent full scale if the floor is nailed to --140dB, it must be able to span 0 to +140dB. For the residue vector -to reach full scale if the floor is nailed at 0dB, it must be able to -represent -140dB to +0dB. Thus, in order to handle full range -dynamics, a residue vector may span -140dB to +140dB entirely within -spec. A 280dB range is approximately 48 bits with sign; thus the -residue vector must be able to represent a 48 bit range and the dot -product must be able to handle an effective 48 bit times 24 bit -multiplication. This range may be achieved using large (64 bit or -larger) integers, or implementing a movable binary point -representation.

      4.3.7. inverse MDCT

      -Convert the audio spectrum vector of each channel back into time -domain PCM audio via an inverse Modified Discrete Cosine Transform -(MDCT). A detailed description of the MDCT is available in the paper -The -use of multirate filter banks for coding of high quality digital -audio, by T. Sporer, K. Brandenburg and B. Edler. The window -function used for the MDCT is the function described earlier.

      4.3.8. overlap_add

      -Windowed MDCT output is overlapped and added with the right hand data -of the previous window such that the 3/4 point of the previous window -is aligned with the 1/4 point of the current window (as illustrated in -Section 1.3.2.3, “Window shape decode (long windows only)”). The overlapped portion -produced from overlapping the previous and current frame data is -finished data to be returned by the decoder. This data spans from the -center of the previous window to the center of the current window. In -the case of same-sized windows, the amount of data to return is -one-half block consisting of and only of the overlapped portions. When -overlapping a short and long window, much of the returned range does not -actually overlap. This does not damage transform orthogonality. Pay -attention however to returning the correct data range; the amount of -data to be returned is: - -

      -window_blocksize(previous_window)/4+window_blocksize(current_window)/4
      -

      - -from the center (element windowsize/2) of the previous window to the -center (element windowsize/2-1, inclusive) of the current window.

      -Data is not returned from the first frame; it must be used to 'prime' -the decode engine. The encoder accounts for this priming when -calculating PCM offsets; after the first frame, the proper PCM output -offset is '0' (as no data has been returned yet).

      4.3.9. output channel order

      -Vorbis I specifies only a channel mapping type 0. In mapping type 0, -channel mapping is implicitly defined as follows for standard audio -applications:

      one channel
      the stream is monophonic
      two channels
      the stream is stereo. channel order: left, right
      three channels
      the stream is a 1d-surround encoding. channel order: left, -center, right
      four channels
      the stream is quadraphonic surround. channel order: front left, -front right, rear left, rear right
      five channels
      the stream is five-channel surround. channel order: front left, -front center, front right, rear left, rear right
      six channels
      the stream is 5.1 surround. channel order: front left, front -center, front right, rear left, rear right, LFE
      greater than six channels
      channel use and order is defined by the application

      -Applications using Vorbis for dedicated purposes may define channel -mapping as seen fit. Future channel mappings (such as three and four -channel Ambisonics) will -make use of channel mappings other than mapping 0.

      5. comment field and header specification

      - $Id: 05-comment.xml,v 1.5 2002/10/31 19:37:57 giles Exp $ - Last update to this document: July 16, 2002 -

      5.1. Overview

      The Vorbis text comment header is the second (of three) header -packets that begin a Vorbis bitstream. It is meant for short text -comments, not arbitrary metadata; arbitrary metadata belongs in a -separate logical bitstream (usually an XML stream type) that provides -greater structure and machine parseability.

      The comment field is meant to be used much like someone jotting a -quick note on the bottom of a CDR. It should be a little information to -remember the disc by and explain it to others; a short, to-the-point -text note that need not only be a couple words, but isn't going to be -more than a short paragraph. The essentials, in other words, whatever -they turn out to be, eg: - -

      Honest Bob and the Factory-to-Dealer-Incentives, I'm Still -Around, opening for Moxy Früvous, 1997.

      -

      5.2. Comment encoding

      5.2.1. Structure

      -The comment header is logically a list of eight-bit-clean vectors; the -number of vectors is bounded to 2^32-1 and the length of each vector -is limited to 2^32-1 bytes. The vector length is encoded; the vector -contents themselves are not null terminated. In addition to the vector -list, there is a single vector for vendor name (also 8 bit clean, -length encoded in 32 bits). The 1.0 release of libvorbis sets the -vendor string to "Xiph.Org libVorbis I 20020717".

      The comment header is decoded as follows: - -

      -  1) [vendor_length] = read an unsigned integer of 32 bits
      -  2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets
      -  3) [user_comment_list_length] = read an unsigned integer of 32 bits
      -  4) iterate [user_comment_list_length] times {
      -       5) [length] = read an unsigned integer of 32 bits
      -       6) this iteration's user comment = read a UTF-8 vector as [length] octets
      -     }
      -  7) [framing_bit] = read a single bit as boolean
      -  8) if ( [framing_bit] unset or end-of-packet ) then ERROR
      -  9) done.
      -

      -

      5.2.2. Content vector format

      -The comment vectors are structured similarly to a UNIX environment variable. -That is, comment fields consist of a field name and a corresponding value and -look like:

      -comment[0]="ARTIST=me"; 
      -comment[1]="TITLE=the sound of Vorbis"; 
      -

      -The field name is case-insensitive and may consist of ASCII 0x20 -through 0x7D, 0x3D ('=') excluded. ASCII 0x41 through 0x5A inclusive -(characters A-Z) is to be considered equivalent to ASCII 0x61 through -0x7A inclusive (characters a-z). -

      -The field name is immediately followed by ASCII 0x3D ('='); -this equals sign is used to terminate the field name. -

      -0x3D is followed by 8 bit clean UTF-8 encoded value of the -field contents to the end of the field. -

      5.2.2.1. Field names

      Below is a proposed, minimal list of standard filed names with a -description of intended use. No single or group of field names is -mandatory; a comment header may contain one, all or none of the names -in this list.

      TITLE
      Track/Work name
      VERSION
      The version field may be used to -differentiate multiple -versions of the same track title in a single collection. (e.g. remix -info) -
      ALBUM
      The collection name to which this track belongs -
      TRACKNUMBER
      The track number of this piece if part of a specific larger collection or album -
      ARTIST
      The artist generally considered responsible for the work. In popular music this is usually the performing band or singer. For classical music it would be the composer. For an audio book it would be the author of the original text. -
      PERFORMER
      The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists. In an audio book it would be the actor who did the reading. In popular music this is typically the same as the ARTIST and is omitted. -
      COPYRIGHT
      Copyright attribution, e.g., '2001 Nobody's Band' or '1999 Jack Moffitt' -
      LICENSE
      License information, eg, 'All Rights Reserved', 'Any -Use Permitted', a URL to a license such as a Creative Commons license -("www.creativecommons.org/blahblah/license.html") or the EFF Open -Audio License ('distributed under the terms of the Open Audio -License. see http://www.eff.org/IP/Open_licenses/eff_oal.html for -details'), etc. -
      ORGANIZATION
      Name of the organization producing the track (i.e. -the 'record label') -
      DESCRIPTION
      A short text description of the contents -
      GENRE
      A short text indication of music genre -
      DATE
      Date the track was recorded -
      LOCATION
      Location where track was recorded -
      CONTACT
      Contact information for the creators or distributors of the track. This could be a URL, an email address, the physical address of the producing label. -
      ISRC
      International Standard Recording Code for the -track; see the ISRC -intro page for more information on ISRC numbers. -
      5.2.2.2. Implications

      Field names should not be 'internationalized'; this is a -concession to simplicity not an attempt to exclude the majority of -the world that doesn't speak English. Field contents -however, use the UTF-8 character encoding to allow easy representation of any -language.

      We have the length of the entirety of the field and restrictions on -the field name so that the field name is bounded in a known way. Thus -we also have the length of the field contents.

      Individual 'vendors' may use non-standard field names within -reason. The proper use of comment fields should be clear through -context at this point. Abuse will be discouraged.

      There is no vendor-specific prefix to 'nonstandard' field names. -Vendors should make some effort to avoid arbitrarily polluting the -common namespace. We will generally collect the more useful tags -here to help with standardization.

      Field names are not required to be unique (occur once) within a -comment header. As an example, assume a track was recorded by three -well know artists; the following is permissible, and encouraged: - -

      -ARTIST=Dizzy Gillespie 
      -ARTIST=Sonny Rollins 
      -ARTIST=Sonny Stitt 
      -

      - -

      5.2.3. Encoding

      -The comment header comprises the entirety of the second bitstream -header packet. Unlike the first bitstream header packet, it is not -generally the only packet on the second page and may not be restricted -to within the second bitstream page. The length of the comment header -packet is (practically) unbounded. The comment header packet is not -optional; it must be present in the bitstream even if it is -effectively empty.

      -The comment header is encoded as follows (as per Ogg's standard -bitstream mapping which renders least-significant-bit of the word to be -coded into the least significant available bit of the current -bitstream octet first): - -

      1. - Vendor string length (32 bit unsigned quantity specifying number of octets) -
      2. - Vendor string ([vendor string length] octets coded from beginning of string to end of string, not null terminated) -
      3. - Number of comment fields (32 bit unsigned quantity specifying number of fields) -
      4. - Comment field 0 length (if [Number of comment fields]>0; 32 bit unsigned quantity specifying number of octets) -
      5. - Comment field 0 ([Comment field 0 length] octets coded from beginning of string to end of string, not null terminated) -
      6. - Comment field 1 length (if [Number of comment fields]>1...)... -

      -

      -This is actually somewhat easier to describe in code; implementation of the above can be found in vorbis/lib/info.c, _vorbis_pack_comment() and _vorbis_unpack_comment(). -

      6. Floor type 0 setup and decode

      - $Id: 06-floor0.xml,v 1.7 2002/10/27 16:20:47 giles Exp $ - Last update to this document: July 19, 2002 -

      6.1. Overview

      -Vorbis floor type zero uses Line Spectral Pair (LSP, also alternately -known as Line Spectral Frequency or LSF) representation to encode a -smooth spectral envelope curve as the frequency response of the LSP -filter. This representation is equivalent to a traditional all-pole -infinite impulse response filter as would be used in linear predictive -coding; LSP representation may be converted to LPC representation and -vice-versa.

      6.2. Floor 0 format

      -Floor zero configuration consists of six integer fields and a list of -VQ codebooks for use in coding/decoding the LSP filter coefficient -values used by each frame.

      6.2.1. header decode

      -Configuration information for instances of floor zero decodes from the -codec setup header (third packet). configuration decode proceeds as -follows:

      -  1) [floor0_order] = read an unsigned integer of 8 bits
      -  2) [floor0_rate] = read an unsigned integer of 16 bits
      -  3) [floor0_bark_map_size] = read an unsigned integer of 16 bits
      -  4) [floor0_amplitude_bits] = read an unsigned integer of six bits
      -  5) [floor0_amplitude_offset] = read an unsigned integer of eight bits
      -  6) [floor0_number_of_books] = read an unsigned integer of four bits and add 1
      -  7) if any of [floor0_order], [floor0_rate], [floor0_bark_map_size], [floor0_amplitude_bits],
      -     [floor0_amplitude_offset] or [floor0_number_of_books] are less than zero, the stream is not decodable
      -  8) array [floor0_book_list] = read a list of [floor0_number_of_books] unsigned integers of eight bits each;
      -

      -An end-of-packet condition during any of these bitstream reads renders -this stream undecodable. In addition, any element of the array -[floor0_book_list] that is greater than the maximum codebook -number for this bitstream is an error condition that also renders the -stream undecodable.

      6.2.2. packet decode

      -Extracting a floor0 curve from an audio packet consists of first -decoding the curve amplitude and [floor0_order] LSP -coefficient values from the bitstream, and then computing the floor -curve, which is defined as the frequency response of the decoded LSP -filter.

      -Packet decode proceeds as follows:

      -  1) [amplitude] = read an unsigned integer of [floor0_amplitude_bits] bits
      -  2) if ( [amplitude] is greater than zero ) {
      -       3) [coefficients] is an empty, zero length vector
      -
      -       4) [booknumber] = read an unsigned integer of ilog( [floor0_number_of_books] ) bits
      -       5) if ( [booknumber] is greater than the highest number decode codebook ) then packet is undecodable
      -       6) [lastval] = zero;
      -       7) vector [temp_vector] = read vector from bitstream using codebook number [booknumber] in VQ context.
      -       8) add the scalar value [last] to each scalar in vector [temp_vector]
      -       9) [last] = the value of the last scalar in vector [temp_vector]
      -      10) concatenate [temp_vector] onto the end of the [coefficients] vector
      -      11) if (length of vector [coefficients] is less than [floor0_order], continue at step 6
      -
      -     }
      -
      - 12) done.
      - 
      -

      -Take note of the following properties of decode: -

      • An [amplitude] value of zero must result in a return code that indicates this channel is unused in this frame (the output of the channel will be all-zeroes in synthesis). Several later stages of decode don't occur for an unused channel.
      • An end-of-packet condition during decode should be considered a -nominal occruence; if end-of-packet is reached during any read -operation above, floor decode is to return 'unused' status as if the -[amplitude] value had read zero at the beginning of decode.
      • The book number used for decode -can, in fact, be stored in the bitstream in ilog( [floor0_number_of_books] - -1 ) bits. Nevertheless, the above specification is correct and values -greater than the maximum possible book value are reserved.
      • The number of scalars read into the vector [coefficients] -may be greater than [floor0_order], the number actually -required for curve computation. For example, if the VQ codebook used -for the floor currently being decoded has a -[codebook_dimensions] value of three and -[floor0_order] is ten, the only way to fill all the needed -scalars in [coefficients] is to to read a total of twelve -scalars as four vectors of three scalars each. This is not an error -condition, and care must be taken not to allow a buffer overflow in -decode. The extra values are not used and may be ignored or discarded.

      -

      6.2.3. curve computation

      -Given an [amplitude] integer and [coefficients] -vector from packet decode as well as the [floor0_order], -[floor0_rate], [floor0_bark_map_size], [floor0_amplitude_bits] and -[floor0_amplitude_offset] values from floor setup, and an output -vector size [n] specified by the decode process, we compute a -floor output vector.

      -If the value [amplitude] is zero, the return value is a -length [n] vector with all-zero scalars. Otherwise, begin by -assuming the following definitions for the given vector to be -synthesized:

      [lsp map equation]

      -The above is used to synthesize the LSP curve on a Bark-scale frequency -axis, then map the result to a linear-scale frequency axis. -Similarly, the below calculation synthesizes the output LSP curve [output] on a log -(dB) amplitude scale, mapping it to linear amplitude in the last step:

      1. [i] = 0
      2. if ( [floor0_order] is odd ) { -

        1. calculate [p] and [q] according to: -

          [equation for odd lsp]

          -

        - } else [floor0_order] is even { -

        1. calculate [p] and [q] according to: -

          [equation for even lsp]

          -

        - } -

      3. calculate [linear_floor_value] according to: -

        [expression for floorval]

        -

      4. [iteration_condition] = map element [i]
      5. [output] element [i] = [linear_floor_value]
      6. increment [i]
      7. if ( map element [i] is equal to [iteration_condition] ) continue at step 7
      8. if ( [i] is less than [n] ) continue at step 2
      9. done

      7. Floor type 1 setup and decode

      - $Id: 07-floor1.xml,v 1.5 2003/03/11 11:02:17 xiphmont Exp $ - Last update to this document: March 11, 2003 -

      7.1. Overview

      -Vorbis floor type one uses a piecewise straight-line representation to -encode a spectral envelope curve. The representation plots this curve -mechanically on a linear frequency axis and a logarithmic (dB) -amplitude axis. The integer plotting algorithm used is similar to -Bresenham's algorithm.

      7.2. Floor 1 format

      7.2.1. model

      -Floor type one represents a spectral curve as a series of -line segments. Synthesis constructs a floor curve using iterative -prediction in a process roughly equivalent to the following simplified -description:

      • the first line segment (base case) is a logical line spanning -from x_0,y_0 to x_1,y_1 where in the base case x_0=0 and x_1=[n], the -full range of the spectral floor to be computed.
      • the induction step chooses a point x_new within an existing -logical line segment and produces a y_new value at that point computed -from the existing line's y value at x_new (as plotted by the line) and -a difference value decoded from the bitstream packet.
      • floor computation produces two new line segments, one running from -x_0,y_0 to x_new,y_new and from x_new,y_new to x_1,y_1. This step is -performed logically even if y_new represents no change to the -amplitude value at x_new so that later refinement is additionally -bounded at x_new.
      • the induction step repeats, using a list of x values specified in -the codec setup header at floor 1 initialization time. Computation -is completed at the end of the x value list.

      -Consider the following example, with values chosen for ease of -understanding rather than representing typical configuration:

      -For the below example, we assume a floor setup with an [n] of 128. -The list of selected X values in increasing order is -0,16,32,48,64,80,96,112 and 128. In list order, the values interleave -as 0, 128, 64, 32, 96, 16, 48, 80 and 112. The corresponding -list-order Y values as decoded from an example packet are 110, 20, -5, --45, 0, -25, -10, 30 and -10. We compute the floor in the following -way, beginning with the first line:

      [graph of example floor]

      -We now draw new logical lines to reflect the correction to new_Y, and -iterate for X positions 32 and 96:

      [graph of example floor]

      -Although the new Y value at X position 96 is unchanged, it is still -used later as an endpoint for further refinement. From here on, the -pattern should be clear; we complete the floor computation as follows:

      [graph of example floor]
      [graph of example floor]

      -A more efficient algorithm with carefully defined integer rounding -behavior is used for actual decode, as described later. The actual -algorithm splits Y value computation and line plotting into two steps -with modifications to the above algorithm to eliminate noise -accumulation through integer roundoff/truncation.

      7.2.2. header decode

      -A list of floor X values is stored in the packet header in interleaved -format (used in list order during packet decode and synthesis). This -list is split into partitions, and each partition is assigned to a -partition class. X positions 0 and [n] are implicit and do not belong -to an explicit partition or partition class.

      -A partition class consists of a representation vector width (the -number of Y values which the partition class encodes at once), a -'subclass' value representing the number of alternate entropy books -the partition class may use in representing Y values, the list of -[subclass] books and a master book used to encode which alternate -books were chosen for representation in a given packet. The -master/subclass mechanism is meant to be used as a flexible -representation cascade while still using codebooks only in a scalar -context.

      -
      -  1) [floor1_partitions] = read 5 bits as unsigned integer
      -  2) [maximum_class] = -1
      -  3) iterate [i] over the range 0 ... [floor1_partitions]-1 {
      -       
      -        4) vector [floor1_partition_class_list] element [i] = read 4 bits as unsigned integer
      -
      -     }
      -
      -  5) [maximum_class] = largest integer scalar value in vector [floor1_partition_class_list]
      -  6) iterate [i] over the range 0 ... [maximum_class] {
      -
      -        7) vector [floor1_class_dimensions] element [i] = read 3 bits as unsigned integer and add 1
      -	8) vector [floor1_class_subclasses] element [i] = read 2 bits as unsigned integer
      -        9) if ( vector [floor1_class_subclasses] element [i] is nonzero ) {
      -            
      -             10) vector [floor1_class_masterbooks] element [i] = read 8 bits as unsigned integer
      -           
      -           }
      -
      -       11) iterate [j] over the range 0 ... (2 exponent [floor1_class_subclasses] element [i]) - 1  {
      -
      -             12) array [floor1_subclass_books] element [i],[j] = 
      -                 read 8 bits as unsigned integer and subtract one
      -           }
      -      }
      -
      - 13) [floor1_multiplier] = read 2 bits as unsigned integer and add one
      - 14) [rangebits] = read 4 bits as unsigned integer
      - 15) vector [floor1_X_list] element [0] = 0
      - 16) vector [floor1_X_list] element [1] = 2 exponent [rangebits];
      - 17) [floor1_values] = 2
      - 18) iterate [i] over the range 0 ... [floor1_partitions]-1 {
      -
      -       19) [current_class_number] = vector [floor1_partition_class_list] element [i]
      -       20) iterate [j] over the range 0 ... ([floor1_class_dimensions] element [current_class_number])-1 {
      -             21) vector [floor1_X_list] element ([j] + [floor1_values]) = 
      -                 read [rangebits] bits as unsigned integer
      -             22) increment [floor1_values] by one
      -           }
      -     }
      - 
      - 23) done
      -

      -An end-of-packet condition while reading any aspect of a floor 1 -configuration during setup renders a stream undecodable. In -addition, a [floor1_class_masterbooks] or -[floor1_subclass_books] scalar element greater than the -highest numbered codebook configured in this stream is an error -condition that renders the stream undecodable.

      7.2.2.1. packet decode

      -Packet decode begins by checking the [nonzero] flag:

      -  1) [nonzero] = read 1 bit as boolean
      -

      -If [nonzero] is unset, that indicates this channel contained -no audio energy in this frame. Decode immediately returns a status -indicating this floor curve (and thus this channel) is unused this -frame. (A return status of 'unused' is different from decoding a -floor that has all points set to minimum representation amplitude, -which happens to be approximately -140dB). -

      -Assuming [nonzero] is set, decode proceeds as follows:

      -  1) [range] = vector { 256, 128, 86, 64 } element ([floor1_multiplier]-1)
      -  2) vector [floor1_Y] element [0] = read ilog([range]-1) bits as unsigned integer
      -  3) vector [floor1_Y] element [1] = read ilog([range]-1) bits as unsigned integer
      -  4) [offset] = 2;
      -  5) iterate [i] over the range 0 ... [floor1_partitions]-1 {
      -
      -       6) [class] = vector [floor1_partition_class]  element [i]
      -       7) [cdim]  = vector [floor1_class_dimensions] element [class]
      -       8) [cbits] = vector [floor1_class_subclasses] element [class]
      -       9) [csub]  = (2 exponent [cbits])-1
      -      10) [cval]  = 0
      -      11) if ( [cbits] is greater than zero ) {
      - 
      -             12) [cval] = read from packet using codebook number
      -                 (vector [floor1_class_masterbooks] element [class]) in scalar context
      -          }
      -      
      -      13) iterate [j] over the range 0 ... [cdim]-1 {
      -       
      -             14) [book] = array [floor1_subclass_books] element [class],([cval] bitwise AND [csub])
      -             15) [cval] = [cval] right shifted [cbits] bits
      -	     16) if ( [book] is not less than zero ) {
      -	     
      -	           17) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook 
      -                       [book] in scalar context
      -
      -                 } else [book] is less than zero {
      -
      -	           18) vector [floor1_Y] element ([j]+[offset]) = 0
      -
      -                 }
      -          }
      -             
      -      19) [offset] = [offset] + [cdim]
      -         
      -     }
      -  
      - 20) done
      -

      -An end-of-packet condition during curve decode should be considered a -nominal occurrence; if end-of-packet is reached during any read -operation above, floor decode is to return 'unused' status as if the -[nonzero] flag had been unset at the beginning of decode. -

      -Vector [floor1_Y] contains the values from packet decode -needed for floor 1 synthesis.

      7.2.2.2. curve computation

      -Curve computation is split into two logical steps; the first step -derives final Y amplitude values from the encoded, wrapped difference -values taken from the bitstream. The second step plots the curve -lines. Also, although zero-difference values are used in the -iterative prediction to find final Y values, these points are -conditionally skipped during final line computation in step two. -Skipping zero-difference values allows a smoother line fit.

      -Although some aspects of the below algorithm look like inconsequential -optimizations, implementors are warned to follow the details closely. -Deviation from implementing a strictly equivalent algorithm can result -in serious decoding errors.

      7.2.2.2.1. step 1: amplitude value synthesis

      -Unwrap the always-positive-or-zero values read from the packet into -+/- difference values, then apply to line prediction.

      -  1) [range] = vector { 256, 128, 86, 64 } element ([floor1_multiplier]-1)
      -  2) vector [floor1_step2_flag] element [0] = set
      -  3) vector [floor1_step2_flag] element [1] = set
      -  4) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0]
      -  5) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1]
      -  6) iterate [i] over the range 2 ... [floor1_values]-1 {
      -    
      -       7) [low_neighbor_offset] = low_neighbor([floor1_X_list],[i])
      -       8) [high_neighbor_offset] = high_neighbor([floor1_X_list],[i])
      -
      -       9) [predicted] = render_point( vector [floor1_X_list] element [low_neighbor_offset],
      -				      vector [floor1_final_Y] element [low_neighbor_offset],
      -                                      vector [floor1_X_list] element [high_neighbor_offset],
      -				      vector [floor1_final_Y] element [high_neighbor_offset],
      -                                      vector [floor1_X_list] element [i] )
      -
      -      10) [val] = vector [floor1_Y] element [i]
      -      11) [highroom] = [range] - [predicted]
      -      12) [lowroom]  = [predicted]
      -      13) if ( [highroom] is less than [lowroom] ) {
      -
      -            14) [room] = [highroom] * 2
      -         
      -          } else [highroom] is not less than [lowroom] {
      -		      
      -            15) [root] = [lowroom] * 2
      -        
      -          }
      -
      -      16) if ( [val] is nonzero ) {
      -
      -            17) vector [floor1_step2_flag] element [low_neighbor_offset] = set
      -            18) vector [floor1_step2_flag] element [high_neighbor_offset] = set
      -            19) vector [floor1_step2_flag] element [i] = set
      -            20) if ( [val] is greater than or equal to [room] ) {
      - 
      -                  21) if ( [hiroom] is greater than [lowroom] ) {
      -
      -                        22) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted]
      -		     
      -		      } else [hiroom] is not greater than [lowroom] {
      -              
      -                        23) vector [floor1_final_Y] element [i] = [predicted] - [val] + [hiroom] - 1
      -                   
      -                      }
      -               
      -                } else [val] is less than [room] {
      -		 
      -		  24) if ([val] is odd) {
      -                 
      -                        25) vector [floor1_final_Y] element [i] = 
      -                            [predicted] - (([val] + 1) divided by  2 using integer division)
      -
      -                      } else [val] is even {
      -
      -                        26) vector [floor1_final_Y] element [i] = 
      -                            [predicted] + ([val] / 2 using integer division)
      -                          
      -                      }
      -
      -                }      
      -
      -          } else [val] is zero {
      -
      -            27) vector [floor1_step2_flag] element [i] = unset
      -            28) vector [floor1_final_Y] element [i] = [predicted]
      -
      -          }
      -
      -     }
      -
      - 29) done
      -
      -
      7.2.2.2.2. step 2: curve synthesis

      -Curve synthesis generates a return vector [floor] of length -[n] (where [n] is provided by the decode process -calling to floor decode). Floor 1 curve synthesis makes use of the -[floor1_X_list], [floor1_final_Y] and -[floor1_step2_flag] vectors, as well as [floor1_multiplier] -and [floor1_values] values.

      -Decode begins by sorting the scalars from vectors -[floor1_X_list], [floor1_final_Y] and -[floor1_step2_flag] together into new vectors -[floor1_X_list]', [floor1_final_Y]' and -[floor1_step2_flag]' according to ascending sort order of the -values in [floor1_X_list]. That is, sort the values of -[floor1_X_list] and then apply the same permutation to -elements of the other two vectors so that the X, Y and step2_flag -values still match.

      -Then compute the final curve in one pass:

      -  1) [hx] = 0
      -  2) [lx] = 0
      -  3) [ly] = vector [floor1_final_Y]' element [0] * [floor1_multiplier]
      -  4) iterate [i] over the range 1 ... [floor1_values]-1 {
      -
      -       5) if ( [floor1_step2_flag]' is set ) {
      -
      -             6) [hy] = [floor1_final_Y]' element [i] * [floor1_multiplier]
      - 	     7) [hx] = [floor1_X_list]' element [i]
      -             8) render_line( [lx], [ly], [hx], [hy], [floor] )
      -             9) [lx] = [hx]
      -	    10) [ly] = [hy]
      -          }
      -     }
      - 
      - 11) if ( [hx] is less than [n] ) {
      -
      -        12) render_line( [hx], [hy], [n], [hy], [floor] )
      -
      -     }
      -
      - 13) if ( [hx] is greater than [n] ) {
      -
      -            14) truncate vector [floor] to [n] elements
      -
      -     }
      - 
      - 15) for each scalar in vector [floor], perform a lookup substitution using 
      -     the scalar value from [floor] as an offset into the vector [floor1_inverse_dB_static_table]
      -
      - 16) done
      -
      -

      8. Residue setup and decode

      - $Id: 08-residue.xml,v 1.5 2003/03/11 11:02:17 xiphmont Exp $ - Last update to this document: March 11, 2003 -

      8.1. Overview

      -A residue vector represents the fine detail of the audio spectrum of -one channel in an audio frame after the encoder subtracts the floor -curve and performs any channel coupling. A residue vector may -represent spectral lines, spectral magnitude, spectral phase or -hybrids as mixed by channel coupling. The exact semantic content of -the vector does not matter to the residue abstraction.

      -Whatever the exact qualities, the Vorbis residue abstraction codes the -residue vectors into the bitstream packet, and then reconstructs the -vectors during decode. Vorbis makes use of three different encoding -variants (numbered 0, 1 and 2) of the same basic vector encoding -abstraction.

      8.2. Residue format

      -Reside format partitions each vector in the vector bundle into chunks, -classifies each chunk, encodes the chunk classifications and finally -encodes the chunks themselves using the the specific VQ arrangement -defined for each selected selected classification. The exact -interleaving and partitioning vary by residue encoding number, however -the high-level process used to classify and encode the residue vector -is the same in all three variants.

      -A set of coded residue vectors are all of the same length. High level -coding structure, ignoring for the moment exactly how a partition is -encoded and simply trusting that it is, is as follows:

      • Each vector is partitioned into multiple equal sized chunks -according to configuration specified. If we have a vector size of -n, a partition size residue_partition_size, and a total -of ch residue vectors, the total number of partitioned chunks -coded is n/residue_partition_size*ch. It is -important to note that the integer division truncates. In the below -example, we assume an example residue_partition_size of 8.

      • Each partition in each vector has a classification number that -specifies which of multiple configured VQ codebook setups are used to -decode that partition. The classification numbers of each partition -can be thought of as forming a vector in their own right, as in the -illustration below. Just as the residue vectors are coded in grouped -partitions to increase encoding efficiency, the classification vector -is also partitioned into chunks. The integer elements of each scalar -in a classification chunk are built into a single scalar that -represents the classification numbers in that chunk. In the below -example, the classification codeword encodes two classification -numbers.

      • The values in a residue vector may be encoded monolithically in a -single pass through the residue vector, but more often efficient -codebook design dictates that each vector is encoded as the additive -sum of several passes through the residue vector using more than one -VQ codebook. Thus, each residue value potentially accumulates values -from multiple decode passes. The classification value associated with -a partition is the same in each pass, thus the classification codeword -is coded only in the first pass.

      [illustration of residue vector format]

      8.3. residue 0

      -Residue 0 and 1 differ only in the way the values within a residue -partition are interleaved during partition encoding (visually treated -as a black box--or cyan box or brown box--in the above figure).

      -Residue encoding 0 interleaves VQ encoding according to the -dimension of the codebook used to encode a partition in a specific -pass. The dimension of the codebook need not be the same in multiple -passes, however the partition size must be an even multiple of the -codebook dimension.

      -As an example, assume a partition vector of size eight, to be encoded -by residue 0 using codebook sizes of 8, 4, 2 and 1:

      -
      -            original residue vector: [ 0 1 2 3 4 5 6 7 ]
      -
      -codebook dimensions = 8  encoded as: [ 0 1 2 3 4 5 6 7 ]
      -
      -codebook dimensions = 4  encoded as: [ 0 2 4 6 ], [ 1 3 5 7 ]
      -
      -codebook dimensions = 2  encoded as: [ 0 4 ], [ 1 5 ], [ 2 6 ], [ 3 7 ]
      -
      -codebook dimensions = 1  encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ]
      -
      -

      -It is worth mentioning at this point that no configurable value in the -residue coding setup is restricted to a power of two.

      8.4. residue 1

      -Residue 1 does not interleave VQ encoding. It represents partition -vector scalars in order. As with residue 0, however, partition length -must be an integer multiple of the codebook dimension, although -dimension may vary from pass to pass.

      -As an example, assume a partition vector of size eight, to be encoded -by residue 0 using codebook sizes of 8, 4, 2 and 1:

      -
      -            original residue vector: [ 0 1 2 3 4 5 6 7 ]
      -
      -codebook dimensions = 8  encoded as: [ 0 1 2 3 4 5 6 7 ]
      -
      -codebook dimensions = 4  encoded as: [ 0 1 2 3 ], [ 4 5 6 7 ]
      -
      -codebook dimensions = 2  encoded as: [ 0 1 ], [ 2 3 ], [ 4 5 ], [ 6 7 ]
      -
      -codebook dimensions = 1  encoded as: [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ]
      -
      -

      8.5. residue 2

      -Residue type two can be thought of as a variant of residue type 1. -Rather than encoding multiple passed-in vectors as in residue type 1, -the ch passed in vectors of length n are first -interleaved and flattened into a single vector of length -ch*n. Encoding then proceeds as in type 1. Decoding is -as in type 1 with decode interleave reversed. If operating on a single -vector to begin with, residue type 1 and type 2 are equivalent.

      [illustration of residue type 2]

      8.6. Residue decode

      8.6.1. header decode

      -Header decode for all three residue types is identical.

      -  1) [residue_begin] = read 24 bits as unsigned integer
      -  2) [residue_end] = read 24 bits as unsigned integer
      -  3) [residue_partition_size] = read 24 bits as unsigned integer and add one
      -  4) [residue_classifications] = read 6 bits as unsigned integer and add one
      -  5) [residue_classbook] = read 8 bits as unsigned integer
      -

      -[residue_begin] and [residue_end] select the specific -sub-portion of each vector that is actually coded; it implements akin -to a bandpass where, for coding purposes, the vector effectively -begins at element [residue_begin] and ends at -[residue_end]. Preceding and following values in the unpacked -vectors are zeroed. Note that for residue type 2, these values as -well as [residue_partition_size]apply to the interleaved -vector, not the individual vectors before interleave. -[residue_partition_size] is as explained above, -[residue_classifications] is the number of possible -classification to which a partition can belong and -[residue_classbook] is the codebook number used to code -classification codewords. The number of dimensions in book -[residue_classbook] determines how many classification values -are grouped into a single classification codeword.

      -Next we read a bitmap pattern that specifies which partition classes -code values in which passes.

      -  1) iterate [i] over the range 0 ... [residue_classifications]-1 {
      -  
      -       2) [high_bits] = 0
      -       3) [low_bits] = read 3 bits as unsigned integer
      -       4) [bitflag] = read one bit as boolean
      -       5) if ( [bitflag] is set ) then [high_bits] = read five bits as unsigned integer
      -       6) vector [residue_cascade] element [i] = [high_bits] * 8 + [low_bits]
      -     }
      -  7) done
      -

      -Finally, we read in a list of book numbers, each corresponding to -specific bit set in the cascade bitmap. We loop over the possible -codebook classifications and the maximum possible number of encoding -stages (8 in Vorbis I, as constrained by the elements of the cascade -bitmap being eight bits):

      -  1) iterate [i] over the range 0 ... [residue_classifications]-1 {
      -  
      -       2) iterate [j] over the range 0 ... 7 {
      -  
      -            3) if ( vector [residue_cascade] element [i] bit [j] is set ) {
      -
      -                 4) array [residue_books] element [i][j] = read 8 bits as unsigned integer
      -
      -               } else {
      -
      -                 5) array [residue_books] element [i][j] = unused
      -
      -               }
      -          }
      -      }
      -
      -  6) done
      -

      -An end-of-packet condition at any point in header decode renders the -stream undecodable. In addition, any codebook number greater than the -maximum numbered codebook set up in this stream also renders the -stream undecodable.

      8.6.2. packet decode

      -Format 0 and 1 packet decode is identical except for specific -partition interleave. Format 2 packet decode can be built out of the -format 1 decode process. Thus we describe first the decode -infrastructure identical to all three formats.

      -In addition to configuration information, the residue decode process -is passed the number of vectors in the submap bundle and a vector of -flags indicating if any of the vectors are not to be decoded. If the -passed in number of vectors is 3 and vector number 1 is marked 'do not -decode', decode skips vector 1 during the decode loop. However, even -'do not decode' vectors are allocated and zeroed.

      -The following convenience values are conceptually useful to clarifying -the decode process:

      -  1) [classwords_per_codeword] = [codebook_dimensions] value of codebook [residue_classbook]
      -  2) [n_to_read] = [residue_end] - [residue_begin]
      -  3) [partitions_to_read] = [n_to_read] / [residue_partition_size]
      -

      -Packet decode proceeds as follows, matching the description offered earlier in the document. We assume that the number of vectors being encoded, [ch] is provided by the higher level decoding process.

      -  1) allocate and zero all vectors that will be returned.
      -  2) iterate [pass] over the range 0 ... 7 {
      -
      -       3) [partition_count] = 0
      -
      -       4) if ([pass] is zero) {
      -     
      -            5) iterate [j] over the range 0 .. [ch]-1 {
      -
      -                 6) if vector [j] is not marked 'do not decode' {
      -
      -                      7) [temp] = read from packet using codebook [residue_classbook] in scalar context
      -                      8) iterate [i] descending over the range [classwords_per_codeword]-1 ... 0 {
      -
      -                           9) array [classifications] element [j],([i]+[partition_count]) =
      -                              [temp] integer modulo [residue_classifications]
      -                          10) [temp] = [temp] / [residue_classifications] using integer division
      -
      -                         }
      -      
      -                    }
      -            
      -               }
      -        
      -          }
      -
      -      11) iterate [i] over the range 0 .. ([classwords_per_codeword] - 1) while [partition_count] 
      -          is also less than [partitions_to_read] {
      -
      -            12) iterate [j] over the range 0 .. [ch]-1 {
      -   
      -                 13) if vector [j] is not marked 'do not decode' {
      -   
      -                      14) [vqclass] = array [classifications] element [j],[partition_count]
      -                      15) [vqbook] = array [residue_books] element [vqclass],[pass]
      -                      16) if ([vqbook] is not 'unused') {
      -   
      -                           17) decode partition into output vector number [j], starting at scalar 
      -                           offset [residue_begin]+[partition_count]*[residue_partition_size] using 
      -                           codebook number [vqbook] in VQ context
      -                     }
      -                }
      -   
      -            18) increment [partition_count] by one
      -
      -          }
      -     }
      - 
      - 19) done
      -
      -

      -An end-of-packet condition during packet decode is to be considered a -nominal occurrence. Decode returns the result of vector decode up to -that point.

      8.6.3. format 0 specifics

      -Format zero decodes partitions exactly as described earlier in the -'Residue Format: residue 0' section. The following pseudocode -presents the same algorithm. Assume:

      • [n] is the value in [residue_partition_size]
      • [v] is the residue vector
      • [offset] is the beginning read offset in [v]
      - 1) [step] = [n] / [codebook_dimensions]
      - 2) iterate [i] over the range 0 ... [step]-1 {
      -
      -      3) vector [entry_temp] = read vector from packet using current codebook in VQ context
      -      4) iterate [j] over the range 0 ... [codebook_dimensions]-1 {
      -
      -           5) vector [v] element ([offset]+[i]+[j]*[step]) =
      -	        vector [v] element ([offset]+[i]+[j]*[step]) +
      -                vector [entry_temp] element [j]
      -
      -         }
      -
      -    }
      -
      -  6) done
      -
      -

      8.6.4. format 1 specifics

      -Format 1 decodes partitions exactly as described earlier in the -'Residue Format: residue 1' section. The following pseudocode -presents the same algorithm. Assume:

      • [n] is the value in -[residue_partition_size]
      • [v] is the residue vector
      • [offset] is the beginning read offset in [v]
      - 1) [i] = 0
      - 2) vector [entry_temp] = read vector from packet using current codebook in VQ context
      - 3) iterate [j] over the range 0 ... [codebook_dimensions]-1 {
      -
      -      5) vector [v] element ([offset]+[i]) =
      -	  vector [v] element ([offset]+[i]) +
      -          vector [entry_temp] element [j]
      -      6) increment [i]
      -
      -    }
      - 
      -  4) if ( [i] is less than [n] ) continue at step 2
      -  5) done
      -

      8.6.5. format 2 specifics

      -Format 2 is reducible to format 1. It may be implemented as an additional stepprior to and an additional post-decode step after a normal format 1 decode. -

      -Format 2 handles 'do not decode' vectors differently than residue 0 or -1; if all vectors are marked 'do not decode', no decode occurrs. -However, if at least one vector is to be decoded, all the vectors are -decoded. We then request normal format 1 to decode a single vector -representing all output channels, rather than a vector for each -channel. After decode, deinterleave the vector into independent vectors, one for each output channel. That is:

      1. If all vectors 0 through ch-1 are marked 'do not decode', allocate and clear a single vector [v]of length ch*n and skip step 2 below; proceed directly to the post-decode step.
      2. Rather than performing format 1 decode to produce ch vectors of length n each, call format 1 decode to produce a single vector [v] of length ch*n.
      3. Post decode: Deinterleave the single vector [v] returned by format 1 decode as described above into ch independent vectors, one for each outputchannel, according to: -

        -  1) iterate [i] over the range 0 ... [n]-1 {
        -
        -       2) iterate [j] over the range 0 ... [ch]-1 {
        -
        -            3) output vector number [j] element [i] = vector [v] element ([i] * [ch] + [j])
        -
        -          }
        -     }
        -
        -  4) done
        -  

        -

      9. Helper equations

      - $Id: 09-helper.xml,v 1.5 2002/10/27 16:20:47 giles Exp $ - Last update to this document: October 15, 2002 -

      9.1. Overview

      -The equations below are used in multiple places by the Vorbis codec -specification. Rather than cluttering up the main specification -documents, they are defined here and referenced where appropriate. -

      9.2. Functions

      9.2.1. ilog

      -The "ilog(x)" function returns the position number (1 through n) of the highest set bit in the two's complement integer value -[x]. Values of [x] less than zero are defined to return zero.

      -  1) [return_value] = 0;
      -  2) if ( [x] is greater than zero ){
      -      
      -       3) increment [return_value];
      -       4) logical shift [x] one bit to the right, padding the MSb with zero
      -       5) repeat at step 2)
      -
      -     }
      -
      -   6) done
      -

      -Examples: - -

      • ilog(0) = 0;
      • ilog(1) = 1;
      • ilog(2) = 2;
      • ilog(3) = 2;
      • ilog(4) = 3;
      • ilog(7) = 3;
      • ilog(negative number) = 0;

      -

      9.2.2. float32_unpack

      -"float32_unpack(x)" is intended to translate the packed binary -representation of a Vorbis codebook float value into the -representation used by the decoder for floating point numbers. For -purposes of this example, we will unpack a Vorbis float32 into a -host-native floating point number.

      -  1) [mantissa] = [x] bitwise AND 0x1fffff (unsigned result)
      -  2) [sign] = [x] bitwise AND 0x80000000 (unsigned result)
      -  3) [exponent] = ( [x] bitwise AND 0x7fe00000) shifted right 21 bits (unsigned result)
      -  4) if ( [sign] is nonzero ) then negate [mantissa]
      -  5) return [mantissa] * ( 2 ^ ( [exponent] - 788 ) )
      -

      9.2.3. lookup1_values

      -"lookup1_values(codebook_entries,codebook_dimensions)" is used to -compute the correct length of the value index for a codebook VQ lookup -table of lookup type 1. The values on this list are permuted to -construct the VQ vector lookup table of size -[codebook_entries].

      -The return value for this function is defined to be 'the greatest -integer value for which [return_value] to the power of -[codebook_dimensions] is less than or equal to -[codebook_entries]'.

      9.2.4. low_neighbor

      -"low_neighbor(v,x)" finds the position n in vector [v] of -the greatest value scalar element for which n is less than -[x] and vector [v] element n is less -than vector [v] element [x].

      9.2.4.1. high_neighbor

      -"high_neighbor(v,x)" finds the position n in vector [v] of -the lowest value scalar element for which n is less than -[x] and vector [v] element n is greater -than vector [v] element [x].

      9.2.4.2. render_point

      -"render_point(x0,y0,x1,y1,X)" is used to find the Y value at point X -along the line specified by x0, x1, y0 and y1. This function uses an -integer algorithm to solve for the point directly without calculating -intervening values along the line.

      -  1)  [dy] = [y1] - [y0]
      -  2) [adx] = [x1] - [x0]
      -  3) [ady] = absolute value of [dy]
      -  4) [err] = [ady] * ([X] - [x0])
      -  5) [off] = [err] / [adx] using integer division
      -  6) if ( [dy] is less than zero ) {
      -
      -       7) [Y] = [y0] - [off]
      -
      -     } else {
      -
      -       8) [Y] = [y0] + [off]
      -  
      -     }
      -
      -  9) done
      -
      9.2.4.3. render_line

      -Floor decode type one uses the integer line drawing algorithm of -"render_line(x0, y0, x1, y1, v)" to construct an integer floor -curve for contiguous piecewise line segments. Note that it has not -been relevant elsewhere, but here we must define integer division as -rounding division of both positive and negative numbers toward zero. -

      -  1)   [dy] = [y1] - [y0]
      -  2)  [adx] = [x1] - [x0]
      -  3)  [ady] = absolute value of [dy]
      -  4) [base] = [dy] / [adx] using integer division
      -  5)    [x] = [x0]
      -  6)    [y] = [y0]
      -  7)  [err] = 0
      -
      -  8) if ( [dy] is less than 0 ) {
      -
      -        9) [sy] = [base] - 1
      -
      -     } else {
      -
      -       10) [sy] = [base] + 1
      -
      -     }
      -
      - 11) [ady] = [ady] - (absolute value of [base]) * [adx]
      - 12) vector [v] element [x] = [y]
      -
      - 13) iterate [x] over the range [x0]+1 ... [x1]-1 {
      -
      -       14) [err] = [err] + [ady];
      -       15) if ( [err] >= [adx] ) {
      -
      -             15) [err] = [err] - [adx]
      -             16)   [y] = [y] + [sy]
      -
      -           } else {
      -
      -             17) [y] = [y] + [base]
      -   
      -           }
      -
      -       18) vector [v] element [x] = [y]
      -
      -     }
      -

      10. Tables

      - $Id: 10-tables.xml,v 1.2 2002/10/27 14:55:31 giles Exp $ - Last update to this document: July 18, 2002 -

      10.1. floor1_inverse_dB_table

      -The vector [floor1_inverse_dB_table] is a 256 element static -lookup table consiting of the following values (read left to right -then top to bottom):

      -  1.0649863e-07, 1.1341951e-07, 1.2079015e-07, 1.2863978e-07, 
      -  1.3699951e-07, 1.4590251e-07, 1.5538408e-07, 1.6548181e-07, 
      -  1.7623575e-07, 1.8768855e-07, 1.9988561e-07, 2.1287530e-07, 
      -  2.2670913e-07, 2.4144197e-07, 2.5713223e-07, 2.7384213e-07, 
      -  2.9163793e-07, 3.1059021e-07, 3.3077411e-07, 3.5226968e-07, 
      -  3.7516214e-07, 3.9954229e-07, 4.2550680e-07, 4.5315863e-07, 
      -  4.8260743e-07, 5.1396998e-07, 5.4737065e-07, 5.8294187e-07, 
      -  6.2082472e-07, 6.6116941e-07, 7.0413592e-07, 7.4989464e-07, 
      -  7.9862701e-07, 8.5052630e-07, 9.0579828e-07, 9.6466216e-07, 
      -  1.0273513e-06, 1.0941144e-06, 1.1652161e-06, 1.2409384e-06, 
      -  1.3215816e-06, 1.4074654e-06, 1.4989305e-06, 1.5963394e-06, 
      -  1.7000785e-06, 1.8105592e-06, 1.9282195e-06, 2.0535261e-06, 
      -  2.1869758e-06, 2.3290978e-06, 2.4804557e-06, 2.6416497e-06, 
      -  2.8133190e-06, 2.9961443e-06, 3.1908506e-06, 3.3982101e-06, 
      -  3.6190449e-06, 3.8542308e-06, 4.1047004e-06, 4.3714470e-06, 
      -  4.6555282e-06, 4.9580707e-06, 5.2802740e-06, 5.6234160e-06, 
      -  5.9888572e-06, 6.3780469e-06, 6.7925283e-06, 7.2339451e-06, 
      -  7.7040476e-06, 8.2047000e-06, 8.7378876e-06, 9.3057248e-06, 
      -  9.9104632e-06, 1.0554501e-05, 1.1240392e-05, 1.1970856e-05, 
      -  1.2748789e-05, 1.3577278e-05, 1.4459606e-05, 1.5399272e-05, 
      -  1.6400004e-05, 1.7465768e-05, 1.8600792e-05, 1.9809576e-05, 
      -  2.1096914e-05, 2.2467911e-05, 2.3928002e-05, 2.5482978e-05, 
      -  2.7139006e-05, 2.8902651e-05, 3.0780908e-05, 3.2781225e-05, 
      -  3.4911534e-05, 3.7180282e-05, 3.9596466e-05, 4.2169667e-05, 
      -  4.4910090e-05, 4.7828601e-05, 5.0936773e-05, 5.4246931e-05, 
      -  5.7772202e-05, 6.1526565e-05, 6.5524908e-05, 6.9783085e-05, 
      -  7.4317983e-05, 7.9147585e-05, 8.4291040e-05, 8.9768747e-05, 
      -  9.5602426e-05, 0.00010181521, 0.00010843174, 0.00011547824, 
      -  0.00012298267, 0.00013097477, 0.00013948625, 0.00014855085, 
      -  0.00015820453, 0.00016848555, 0.00017943469, 0.00019109536, 
      -  0.00020351382, 0.00021673929, 0.00023082423, 0.00024582449, 
      -  0.00026179955, 0.00027881276, 0.00029693158, 0.00031622787, 
      -  0.00033677814, 0.00035866388, 0.00038197188, 0.00040679456, 
      -  0.00043323036, 0.00046138411, 0.00049136745, 0.00052329927, 
      -  0.00055730621, 0.00059352311, 0.00063209358, 0.00067317058, 
      -  0.00071691700, 0.00076350630, 0.00081312324, 0.00086596457, 
      -  0.00092223983, 0.00098217216, 0.0010459992,  0.0011139742, 
      -  0.0011863665,  0.0012634633,  0.0013455702,  0.0014330129, 
      -  0.0015261382,  0.0016253153,  0.0017309374,  0.0018434235, 
      -  0.0019632195,  0.0020908006,  0.0022266726,  0.0023713743, 
      -  0.0025254795,  0.0026895994,  0.0028643847,  0.0030505286, 
      -  0.0032487691,  0.0034598925,  0.0036847358,  0.0039241906, 
      -  0.0041792066,  0.0044507950,  0.0047400328,  0.0050480668, 
      -  0.0053761186,  0.0057254891,  0.0060975636,  0.0064938176, 
      -  0.0069158225,  0.0073652516,  0.0078438871,  0.0083536271, 
      -  0.0088964928,  0.009474637,   0.010090352,   0.010746080, 
      -  0.011444421,   0.012188144,   0.012980198,   0.013823725, 
      -  0.014722068,   0.015678791,   0.016697687,   0.017782797, 
      -  0.018938423,   0.020169149,   0.021479854,   0.022875735, 
      -  0.024362330,   0.025945531,   0.027631618,   0.029427276, 
      -  0.031339626,   0.033376252,   0.035545228,   0.037855157, 
      -  0.040315199,   0.042935108,   0.045725273,   0.048696758, 
      -  0.051861348,   0.055231591,   0.058820850,   0.062643361, 
      -  0.066714279,   0.071049749,   0.075666962,   0.080584227, 
      -  0.085821044,   0.091398179,   0.097337747,   0.10366330, 
      -  0.11039993,    0.11757434,    0.12521498,    0.13335215, 
      -  0.14201813,    0.15124727,    0.16107617,    0.17154380, 
      -  0.18269168,    0.19456402,    0.20720788,    0.22067342, 
      -  0.23501402,    0.25028656,    0.26655159,    0.28387361, 
      -  0.30232132,    0.32196786,    0.34289114,    0.36517414, 
      -  0.38890521,    0.41417847,    0.44109412,    0.46975890, 
      -  0.50028648,    0.53279791,    0.56742212,    0.60429640, 
      -  0.64356699,    0.68538959,    0.72993007,    0.77736504, 
      -  0.82788260,    0.88168307,    0.9389798,     1.
      -

      A. Embedding Vorbis into an Ogg stream

      A.1. Overview

      -This document describes using Ogg logical and physical transport -streams to encapsulate Vorbis compressed audio packet data into file -form.

      -The Section 1, “Introduction and Description” provides an overview of the construction -of Vorbis audio packets.

      -The Ogg -bitstream overview and Ogg logical -bitstream and framing spec provide detailed descriptions of Ogg -transport streams. This specification document assumes a working -knowledge of the concepts covered in these named backround -documents. Please read them first.

      A.1.1. Restrictions

      -The Ogg/Vorbis I specification currently dictates that Ogg/Vorbis -streams use Ogg transport streams in degenerate, unmultiplexed -form only. That is: - -

      • - A meta-headerless Ogg file encapsulates the Vorbis I packets -
      • - The Ogg stream may be chained, i.e. contain multiple, contigous logical streams (links). -
      • - The Ogg stream must be unmultiplexed (only one stream, a Vorbis audio stream, per link) -

      -

      -This is not to say that it is not currently possible to multiplex -Vorbis with other media types into a multi-stream Ogg file. At the -time this document was written, Ogg was becoming a popular container -for low-bitrate movies consisting of DiVX video and Vorbis audio. -However, a 'Vorbis I audio file' is taken to imply Vorbis audio -existing alone within a degenerate Ogg stream. A compliant 'Vorbis -audio player' is not required to implement Ogg support beyond the -specific support of Vorbis within a degenrate ogg stream (naturally, -application authors are encouraged to support full multiplexed Ogg -handling). -

      A.1.2. MIME type

      -The correct MIME type of any Ogg file is application/ogg. -However, if a file is a Vorbis I audio file (which implies a -degenerate Ogg stream including only unmultiplexed Vorbis audio), the -mime type audio/x-vorbis is also allowed.

      A.2. Encapsulation

      -Ogg encapsulation of a Vorbis packet stream is straightforward.

      • - The first Vorbis packet (the indentification header), which - uniquely identifies a stream as Vorbis audio, is placed alone in the - first page of the logical Ogg stream. This results in a first Ogg - page of exactly 58 bytes at the very beginning of the logical stream. -
      • - This first page is marked 'beginning of stream' in the page flags. -
      • - The second and third vorbis packets (comment and setup - headers) may span one or more pages beginning on the second page of - the logical stream. However many pages they span, the third header - packet finishes the page on which it ends. The next (first audio) packet - must begin on a fresh page. -
      • - The granule position of these first pages containing only headers is zero. -
      • - The first audio packet of the logical stream begins a fresh Ogg page. -
      • - Packets are placed into ogg pages in order until the end of stream. -
      • - The last page is marked 'end of stream' in the page flags. -
      • - Vorbis packets may span page boundaries. -
      • - The granule position of pages containing Vorbis audio is in units - of PCM audio samples (per channel; a stereo stream's granule position - does not increment at twice the speed of a mono stream). -
      • - The granule position of a page represents the end PCM sample - position of the last packet completed on that page. - A page that is entirely spanned by a single packet (that completes on a - subsequent page) has no granule position, and the granule position is - set to '-1'. -
      • - The granule (PCM) position of the first page need not indicate - that the stream started at position zero. Although the granule - position belongs to the last completed packet on the page and a - valid granule position must be positive, by - inference it may indicate that the PCM position of the beginning - of audio is positive or negative. -

        • - A positive starting value simply indicates that this stream begins at - some positive time offset, potentially within a larger - program. This is a common case when connecting to the middle - of broadcast stream. -
        • - A negative value indicates that - output samples preceeding time zero should be discarded during - decoding; this technique is used to allow sample-granularity - editing of the stream start time of already-encoded Vorbis - streams. The number of samples to be discarded must not exceed - the overlap-add span of the first two audio packets. -

        - In both of these cases in which the initial audio PCM starting - offset is nonzero, the second finished audio packet must flush the - page on which it appears and the third packet begin a fresh page. - This allows the decoder to always be able to perform PCM position - adjustments before needing to return any PCM data from synthesis, - resulting in correct positioning information without any aditional - seeking logic. -

        Note

        - Failure to do so should, at worst, cause a - decoder implementation to return incorrect positioning information - for seeking operations at the very beginning of the stream. -

      • - A granule position on the final page in a stream that indicates - less audio data than the final packet would normally return is used to - end the stream on other than even frame boundaries. The difference - between the actual available data returned and the declared amount - indicates how many trailing samples to discard from the decoding - process. -

      B. Vorbis encapsulation in RTP

      -
      -
      -<xi:include>
      -  <xi:fallback>
      -    

      Please consult the internet draft RTP Payload Format for Vorbis Encoded - Audio for description of how to embed Vorbis audio in an RTP stream.

      - </xi:fallback>
      -</xi:include>
      -

      C. Colophon

      [Xiph.org logo]

      -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      -This document is set in DocBook XML. -

      diff --git a/libvorbis-1.0.1/doc/Vorbis_I_spec.pdf b/libvorbis-1.0.1/doc/Vorbis_I_spec.pdf deleted file mode 100644 index d1bcb7eaabf3caf49de9f5fb433eefe86074295c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350026 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

      {gmf} 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⁡fUBH*}k!W*6# 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%0AD!hl1wXP&6OWYCiGo#wQhOu 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 - -Status of this Memo - - This document is an Internet-Draft and is in full conformance - with all provisions of Section 10 of RFC2026. - - Internet-Drafts are working documents of the Internet Engineering - Task Force (IETF), its areas, and its working groups. Note that - other groups may also distribute working documents as - Internet-Drafts. - - Internet-Drafts are draft documents valid for a maximum of six - months and may be updated, replaced, or obsoleted by other - documents at any time. It is inappropriate to use Internet- - Drafts as reference material or to cite them other than as - "work in progress". - - The list of current Internet-Drafts can be accessed at - http://www.ietf.org/ietf/1id-abstracts.txt - - The list of Internet-Draft Shadow Directories can be accessed at - http://www.ietf.org/shadow.html. - -Copyright Notice - - Copyright (C) The Internet Society (2003). All Rights Reserved. - -Abstract - - This document describes a RTP payload format for transporting - Vorbis encoded audio. It details the RTP encapsulation mechanism - for raw Vorbis data and details the delivery mechanisms for the - decoder probability model, referred to as a codebook, metadata - and other setup information. - - - - - - - - - - - - -Kerr Expires December 10, 2003 [Page 1] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - -Table of Contents - - 1. Introduction ........................................ 2 - 1.1 Terminology ......................................... 3 - 2. Payload Format ...................................... 3 - 2.1 RTP Header .......................................... 3 - 2.2 Payload Header ...................................... 4 - 2.3 Payload Data ........................................ 5 - 2.4 Example RTP Packet .................................. 5 - 3. Frame Packetizing ................................... 6 - 3.1 Example Fragmented Vorbis Packet .................... 6 - 3.2 Packet Loss ......................................... 8 - 4. Configuration Headers ............................... 8 - 4.1 RTCP Based Config Header Transmission ............... 9 - 4.2 Codebook Caching .................................... 11 - 5. Session Description ................................. 11 - 5.1 SDP Based Config Header Transmission ................ 12 - 6. IANA Considerations ................................. 13 - 7. Congestion Control .................................. 13 - 8. Security Considerations ............................. 14 - 9. Acknowledgements .................................... 14 - 10. Normative References ................................ 14 - 10.1 Informative References ................................ 14 - 11. Full Copyright Statement ............................ 15 - 12. Authors Address ..................................... 15 - - -1 Introduction - - The Xiph.org Foundation creates and defines codecs for use in - multimedia that are not encumbered by patents and thus may be freely - implemented by any individual or organization. - - Vorbis is a general purpose perceptual audio codec intended to allow - maximum encoder flexibility, thus allowing it to scale competitively - over an exceptionally wide range of bitrates. At the high - quality/bitrate end of the scale (CD or DAT rate stereo, - 16/24 bits), it is in the same league as MPEG-2 and MPC. Similarly, - the 1.0 encoder can encode high-quality CD and DAT rate stereo at - below 48k bits/sec without resampling to a lower rate. Vorbis is - also intended for lower and higher sample rates (from 8kHz - telephony to 192kHz digital masters) and a range of channel - representations (monaural, polyphonic, stereo, quadraphonic, 5.1, - ambisonic, or up to 255 discrete channels). - - Vorbis encoded audio is generally encapsulated within an Ogg format - bitstream [1], which provides framing and synchronization. For the - purposes of RTP transport, this layer is unnecessary, and so raw - Vorbis packets are used in the payload. - - - - - -Kerr Expires December 10, 2003 [Page 2] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - -1.1 Terminology - - The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", - "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this - document are to be interpreted as described in RFC 2119 [2]. - -2 Payload Format - - For RTP based transportation of Vorbis encoded audio the standard - RTP header is followed by an 8 bit payload header, then the payload - data. - - -2.1 RTP Header - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |V=2|P|X| CC |M| PT | sequence number | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | timestamp | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | synchronization source (SSRC) identifier | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | contributing source (CSRC) identifiers | - | ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - - The RTP header begins with an octet of fields (V, P, X, and CC) to - support specialized RTP uses (see [4] and [5] for details). For - Vorbis RTP, the following values are used. - - Version (V): 2 bits - This field identifies the version of RTP. The version - used by this specification is two (2). - - Padding (P): 1 bit - If the padding bit is set, the packet contains one or more - additional padding octets at the end which are not part of - the payload. P is set if the total packet size is less than - the MTU. - - Extension (X): 1 bit - If the extension, X, bit is set, the fixed header MUST be - followed by exactly one header extension, with a format defined - in Section 5.3.1. of [4], - - CSRC count (CC): 4 bits - The CSRC count contains the number of CSRC identifiers. - - - -Kerr Expires December 10, 2003 [Page 3] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - Marker (M): 1 bit - Set to zero. Audio silence suppression not used. This conforms - to section 4.1 of [6]. - - Payload Type (PT): 7 bits - An RTP profile for a class of applications is expected to assign - a payload type for this format, or a dynamically allocated - payload type SHOULD be chosen which designates the payload as - Vorbis. - - Sequence number: 16 bits - The sequence number increments by one for each RTP data packet - sent, and may be used by the receiver to detect packet loss and - to restore packet sequence. This field is detailed further in - [3]. - - Timestamp: 32 bits - A timestamp representing the sampling time of the first sample of - the first Vorbis packet in the RTP packet. The clock frequency - MUST be set to the sample rate of the encoded audio data and is - conveyed out-of-band. - - SSRC/CSRC identifiers: - These two fields, 32 bits each with one SSRC field and a maximum - of 16 CSRC fields, are as defined in [3]. - - -2.2 Payload Header - - After the RTP Header section the next octet is the Payload Header. - This octet is split into a number of bitfields detailing the format - of the following Payload Data packets. - - 0 1 2 3 4 5 6 7 - +---+---+---+---+---+---+---+---+ - | C | F | R | # of packets | - +---+---+---+---+---+---+---+---+ - - Continuation (C): 1 bit - Set to one if this is a continuation of a fragmented packet. - - Fragmented (F): 1 bit - Set to one if the payload contains complete packets or if it - contains the last fragment of a fragmented packet. - - Reserved (R): 1 bit - Reserved, MUST be set to zero by senders, and ignored by - receivers. - - The last 5 bits are the number of complete packets in this payload. - This provides for a maximum number of 32 Vorbis packets in the - payload. If C is set to one, this number SHOULD be 0. - -Kerr Expires December 10, 2003 [Page 4] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - -2.3 Payload Data - - Vorbis packets are unbounded in length currently. At some future - point there will likely be a practical limit placed on packet - length. - - Typical Vorbis packet sizes are from very small (2-3 bytes) to - quite large (8-12 kilobytes). The reference implementation [9] - typically produces packets less than ~800 bytes, except for the - header packets which are ~4-12 kilobytes. - - Within a RTP context the maximum Vorbis packet SHOULD be kept below - the MTU size, typically 1500 octets, including the RTP and payload - headers, to avoid fragmentation. For the delivery of Vorbis audio - using RTP the maximum size of the header block is limited to 64K. - - If the payload contains a single Vorbis packet or a Vorbis packet - fragment, the Vorbis packet data follows the payload header. - - For payloads which consist of multiple Vorbis packets, payload data - consists of one octet representing the packet length followed by - the packet data for each of the Vorbis packets in the payload. - - The Vorbis packet length octet is the length of the data block - minus one. - - The payload packing of the Vorbis data packets SHOULD follow the - guidelines set-out in section 4.4 of [5] where the oldest packet - occurs immediately after the RTP packet header. - - Channel mapping of the audio is in accordance with BS. 775-1 - ITU-R. - - -2.4 Example RTP Packet - - Here is an example RTP packet containing two Vorbis packets. - - RTP Packet Header: - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | 2 |0|0| 0 |0| PT | sequence number | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | timestamp (in sample rate units) | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | synchronisation source (SSRC) identifier | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | contributing source (CSRC) identifiers | - | ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -Kerr Expires December 10, 2003 [Page 5] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - Payload Data: - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |0|1|0| # pks: 2| len | vorbis data ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | ...vorbis data... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | ... | len | next vorbis packet data... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - -3 Frame Packetizing - - Each RTP packet contains either one complete Vorbis packet, one - Vorbis packet fragment, or an integer number of complete Vorbis - packets (up to a max of 32 packets, since the number of packets - is defined by a 5 bit value). - - Any Vorbis packet that is larger than 256 octets and less than the - path-MTU MUST be placed in a RTP packet by itself. - - Any Vorbis packet that is 256 bytes or less SHOULD be bundled in the - RTP packet with as many Vorbis packets as will fit, up to a maximum - of 32. - - If a Vorbis packet will not fit within the network MTU, it SHOULD be - fragmented. A fragmented packet has a zero in the last five bits - of the payload header. Each fragment after the first will also set - the Continued (C) bit to one in the payload header. The RTP packet - containing the last fragment of the Vorbis packet will have the - Final Fragment (F) bit set to one. To maintain the correct sequence - for fragmented packet reception the timestamp field of fragmented - packets MUST be the same as the first packet sent, with the sequence - number incremented as normal for the subsequent RTP packets. - - - - -3.1 Example Fragmented Vorbis Packet - - Here is an example fragmented Vorbis packet split over three RTP - packets. - - - - - - - - - -Kerr Expires December 10, 2003 [Page 6] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - Packet 1: - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |V=2|P|X| CC |M| PT | 1000 | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | xxxxx | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | synchronization source (SSRC) identifier | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | contributing source (CSRC) identifiers | - | ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |0|0|0| 0| len | vorbis data .. | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | ..vorbis data.. | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - In this packet the initial sequence number is 1000 and the - timestamp is xxxxx. The number of packets field is set to 0. - - - Packet 2: - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |V=2|P|X| CC |M| PT | 1001 | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | xxxxx | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | synchronization source (SSRC) identifier | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | contributing source (CSRC) identifiers | - | ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |1|0|0| 0| len | vorbis data ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | ..vorbis data.. | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - The C bit is set to 1 and the number of packets field is set to 0. - For large Vorbis fragments there can be several of these type of - payload packets. The maximum packet size SHOULD be no greater - than the MTU of 1500 octets, including all RTP and payload headers. - The sequence number has been incremented by one but the timestamp - field remains the same as the initial packet. - - - - - -Kerr Expires December 10, 2003 [Page 7] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - Packet 3: - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |V=2|P|X| CC |M| PT | 1002 | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | xxxxx | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | synchronization source (SSRC) identifier | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | contributing source (CSRC) identifiers | - | ... | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |1|1|0| 0| len | vorbis data .. | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | ..vorbis data.. | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - This is the last Vorbis fragment packet. The C and F bits are - set and the packet count remains set to 0. As in the previous - packets the timestamp remains set to the first packet in the - sequence and the sequence number has been incremented. - - -3.2 Packet Loss - - As there is no error correction within the Vorbis stream, packet - loss will result in a loss of signal. Packet loss is more of an - issue for fragmented Vorbis packets as the client will have to - cope with the handling of the C and F flags. If we use the - fragmented Vorbis packet example above and the first packet is - lost the client SHOULD detect that the next packet has the packet - count field set to 0 and the C bit is set and MUST drop it. The - next packet, which is the final fragmented packet, MUST be dropped - in the same manner. Feedback reports on lost and dropped packets - MUST be sent back via RTCP. - - -4 Configuration Headers - - To decode a Vorbis stream three configuration header blocks are - needed. The first header indicates the sample and bitrates, the - number of channels and the version of the Vorbis encoder used. - The second header contains the decoders probability model, or - codebooks and the third header details stream metadata. - - - - - - -Kerr Expires December 10, 2003 [Page 8] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - As the RTP stream may change certain configuration data mid-session - there are two different methods for delivering this configuration - data to a client, RTCP which is detailed below and SDP which is - detailed in section 5. SDP delivery is used to set-up an initial - state for the client application and RTCP is used to change state - during the session. The changes may be due to different metadata - or codebooks as well as different bitrates of the stream. - - Unlike other mainstream audio codecs Vorbis has no statically - configured probability model, instead it packs all entropy decoding - configuration, VQ and Huffman models into a self-contained codebook. - This codebook block also requires additional identification - information detailing the number of audio channels, bit rates and - other information used to initialise the Vorbis stream. - - -4.1 RTCP Based Header Transmission - - The three header data blocks are sent out-of-band as an APP defined - RTCP message with the 4 octet name field set to VORB. - - VORB RTCP packets MUST set the padding (P) flag and add the - appropriate padding octets needed to conform with section 6.6 - of [3]. Synchronizing the configuration headers to the RTP stream - is critical. A 32 bit timestamp field is used to indicate the - timepoint when a VORB header MUST be applied to the RTP stream. - VORB RTCP packets MUST be sent just ahead of the change in the RTP - stream. As the reception loss of the RTCP header will mean the - RTP stream will fail to decode properly the freqency of their - periodic retransmission MUST be high enough to minimize the - stream disturbance whilst remaining under the RTCP bandwidth - allocation. - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |V=2|P| subtype | PT=APP=204 | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | SSRC/CSRC | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | VORB | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Timestamp (in sample rate units) | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Vorbis Version | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Audio Sample Rate | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Bitrate Maximum | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Bitrate Nominal | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -Kerr Expires December 10, 2003 [Page 9] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Bitrate Minimum | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | bsz 0 | bsz 1 | Num Audio Channels |c|m|o|x|x|x|x|x| - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | Codebook length | Codebook checksum | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - .. Codebook | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - .. URI string | - +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ - | Vendor string length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Vendor string .. - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | User comments list length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - .. User comment length / User comment | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - - The first Vorbis config header defines the Vorbis stream - attributes. The Vorbis version MUST be set to zero to comply with - this document. The fields Sample Rate, Bitrate Maximum/Nominal/ - Minimum and Num Audio Channels are set in accordance with [6] with - the bsz fields above referring to the blocksize parameters. The - framing bit is not used for RTP transportation and so applications - constructing Vorbis files MUST take care to set this if required. - - The next 8 bits are used to indicate the presence of the two - other Vorbis stream config headers and the size overflow header. - - The c flag indicates the presence of a codebook header block, the - m flag indicates the presence of a comment metadata block. The o - flag indicates if the size of either of the c and m headers would - make the VORB packet greater than that allowed for a RTCP message. - - The remaining five bits, indicated with an x, are reserved/unused - and MUST be set to 0 for this version of the document. - - If the c flag is set then the next header block will contain the - codebook configuration data. - - This setup information MUST be completely intact, as a client can - not decode a stream with an incomplete or corrupted codebook set. - - A 16 bit codebook length field and a 16 bit 1's complement checksum - of the codebook precedes the codebook datablock. The length field - allows for codebooks to be up to 64K in size. The checksum is used - to detect a corrupted codebook. - -Kerr Expires December 10, 2003 [Page 10] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - If a checksum failure is detected then a new config header file - SHOULD be obtained from SDP, if the codebook has not changed since - the session has started. If no SDP value is set and no other method - for obtaining the config headers exists then this is considered to - be a failure and SHOULD be reported to the client application. - - If the m flag is set then the next header block will contain the - comment metadata, such as artist name, track title and so on. These - metadata messages are not intended to be fully descriptive but to - offer basic track/song information. This message MUST be sent at - the start of the stream, together with the setup and codebook - headers, even if it contains no information. During a session the - metadata associated with the stream may change from that specified - at the start, e.g. a live concert broadcast changing acts/scenes, so - clients MUST have the ability to receive m header blocks. Details - on the format of the comments can be found in the Vorbis - documentation [7]. - - The format for the data takes the form of a 32 bit codec vendors - name length field followed by the name encoded in UTF-8. The next - field denotes the number of user comments and then the user comments - length and text field pairs, up to the number indicated by the user - comment list length. - - If the o, overflow, bit is set then the URI of a whole header block - is specified in an overflow URI field, which is a null terminated - UTF-8 string. The header file specified at the URI MUST NOT have - the overflow flag set, otherwise a loop condition will occur. - - -4.2 Codebook Caching - - Codebook caching allows clients that have previously connected to a - stream to re-use the codebooks and thus begin the playback of the - session faster. When a client receives a codebook it may store - it, together with the MD5 key, locally and can compare the MD5 key - of locally cached codebooks with the key it receives via SDP, which - is detailed in section 5.1. - - -5 Session Description for Vorbis RTP Streams - - Session description information concerning the Vorbis stream - SHOULD be provided if possible and MUST be in accordance with [8]. - The SDP information is split into two sections, a mandatory - section detailing the RTP stream and an optional section used to - convey information needed for codebook caching. - - - - - - -Kerr Expires December 10, 2003 [Page 11] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - Below is an outline of the mandatory SDP attributes. - - u= - m=audio RTP/AVP 98 - c=IN IP4/6 - a=rtpmap:98 vorbis/ - - The contents of the Vorbis Header file referred to in the - u attribute MUST contain all three of the config header blocks - as specified in section 4. The overflow bit of the header packet - MUST not be set. - - The port value is specified by the server application bound to - the URI specified in the c attribute. The bitrate value specified - in the a attribute MUST match the Vorbis sample rate value. - -5.1 SDP Based Config Header Transmission - - The optional SDP attributes are used to convey details of the - Vorbis stream which are required for codebook caching. If the - following attributes are set they take precedent over values - specified in the u attribute detailed above. The maximum size - of the mandatory and optional SDP attributes MUST be less than - 1K in size to conform to section 4.1 of [8]. - - a=md5key: - a=bitrate_min: - a=bitrate_norm: - a=bitrate_max: - a=bsz0: - a=bsz1: - a=channels: - a=meta_vendor: - - If the codebook MD5 attribute, md5key, is set the key is compared - to a locally held cache and if found the associated local codebook - is used, if not the client MUST use the configuration headers - specified in the u attribute. - - The md5key requires other attributes which detail bitrates, channels - and metadata associated with the RTP stream. The attributes - following the md5key example above MUST all be present. - - The metadata attribute, meta_vendor, provides the bare minimum - information required for decoding but does not convey any - meaningfull stream metadata information. As outlined in the Vorbis - comment field and header specification documentation, [7], a number - of predefined field names are available which SHOULD be used. An - example would be: - - - - -Kerr Expires December 10, 2003 [Page 12] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - - a=meta_vendor:Xiph.Org libVorbis I 20020717 - a=meta_artist:Honest Bob and the Factory-to-Dealer-Incentives - a=meta_title:I'm Still Around - a=meta_tracknumber:5 - - -6 IANA Considerations - - MIME media type name: audio - - MIME subtype: vorbis - - Required Parameters: none - - Optional Parameters: none - - Encoding considerations: - This type is only defined for transfer via RTP as specified in - a Work in Progress. - - Security Considerations: - See Section 6 of RFC 3047. - - Interoperability considerations: none - - Published specification: - See the Vorbis documentation [2] for details. - - Applications which use this media type: - Audio streaming and conferencing tools - - Additional information: none - - Person & email address to contact for further information: - Phil Kerr - philkerr@elec.gla.ac.uk - - Intended usage: COMMON - - Author/Change controller: - Author: Phil Kerr - Change controller: Phil Kerr - - -7 Congestion Control - - Vorbis clients SHOULD send regular receiver reports detailing - congestion. A mechanism for dynamically downgrading the stream, - known as bitrate peeling, will allow for a graceful backing off - of the stream bitrate. This feature is not available at present - so an alternative would be to redirect the client to a lower - bitrate stream if one is available. - -Kerr Expires December 10, 2003 [Page 13] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - - -8 Security Considerations - - RTP packets using this payload format are subject to the security - considerations discussed in the RTP specification [3]. This implies - that the confidentiality of the media stream is achieved by using - encryption. Because the data compression used with this payload - format is applied end-to-end, encryption may be performed on the - compressed data. Where the size of a data block is set care MUST - be taken to prevent buffer overflows in the client applications. - - -9 Acknowledgments - - This document is a continuation of draft-moffitt-vorbis-rtp-00.txt. - The MIME type section is a continuation of draft-short-avt-rtp- - vorbis-mime-00.txt - - Thanks to the AVT, Ogg Vorbis Communities / Xiph.org including - Steve Casner, Ramon Garcia, Pascal Hennequin, Ralph Jiles, - Tor-Einar Jarnbjo, Colin Law, John Lazzaro, Jack Moffitt, - Colin Perkins, Barry Short, Mike Smith. - - -10 Normative References - - 1. The Ogg Encapsulation Format Version 0 (RFC 3533), S. Pfeiffer. - - 2. Key words for use in RFCs to Indicate Requirement Levels - (RFC 2119), S. Bradner. - - 3. RTP: A Transport Protocol for Real-Time Applications (RFC 1889), - Schulzrinne, et al. - - 4. RTP: A transport protocol for real-time applications. Work - in progress, draft-ietf-avt-rtp-new-11.txt. - - 5. RTP Profile for Audio and Video Conferences with Minimal Control. - Work in progress, draft-ietf-avt-profile-new-12.txt. - - 6. Ogg Vorbis I spec: Codec setup and packet decode. - http://www.xiph.org/ogg/vorbis/doc/vorbis-spec-ref.html - - 7. Ogg Vorbis I spec: Comment field and header specification. - http://www.xiph.org/ogg/vorbis/doc/v-comment.html - - 8. SDP: Session Description Protocol (RFC 2327), Handley, M. and - V. Jacobson. - - -10.1 Informative References - - 9. libvorbis: Available from the Xiph website, http://www.xiph.org - -Kerr Expires December 10, 2003 [Page 14] - -Internet Draft draft-kerr-avt-vorbis-rtp-02.txt June 10, 2003 - -11 Full Copyright Statement - - Copyright (C) The Internet Society (2003). All Rights Reserved. - - This document and translations of it may be copied and furnished to - others, and derivative works that comment on or otherwise explain it - or assist in its implementation may be prepared, copied, published - and distributed, in whole or in part, without restriction of any - kind, provided that the above copyright notice and this paragraph are - included on all such copies and derivative works. However, this - document itself may not be modified in any way, such as by removing - the copyright notice or references to the Internet Society or other - Internet organizations, except as needed for the purpose of - developing Internet standards in which case the procedures for - copyrights defined in the Internet Standards process must be - followed, or as required to translate it into languages other than - English. - - The limited permissions granted above are perpetual and will not be - revoked by the Internet Society or its successors or assigns. - - This document and the information contained herein is provided on an - "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING - TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION - HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - - -12 Authors Address - - Phil Kerr - Centre for Music Technology - University of Glasgow - Glasgow, Scotland - UK, G12 8LT - Phone: +44 141 330 5740 - Email: philkerr@elec.gla.ac.uk - phil@plus24.com - - WWW: http://www.xiph.org/ - - - - - - - - - -Kerr Expires December 10, 2003 [Page 15] - - - -From: Colin Perkins -Date: Tue May 6, 2003 23:29:25 Europe/London -To: philkerr@elec.gla.ac.uk -Cc: avt@ietf.org -Subject: [AVT] Re: Status of draft-kerr-avt-vorbis-rtp-01 - -Hi Phil, - ---> philkerr@elec.gla.ac.uk writes: -I'm checking on the status of draft-kerr-avt-vorbis-rtp-01 and how things can be -moved forward with it. The update was submitted just before the cutoff for the -last AVT meeting and there seems to have been no action on it since. - -I took the liberty of cc'ing the AVT mailing list, to encourage feedback. - -There are a few small changes I may wish to make to the draft, which will be -discussed at a Vorbis meeting tomorrow, but I wanted to check with you first on -if the 01 draft is good enough to move forward. - -I think it's in good shape, although I have a couple of issues: - - - Section 2.1 notes that the P, X and CC fields of the RTP header are set - to 0. I'm not sure it's appropriate for a payload format to specify this: - I can imagine valid scenarios where each of these can be used with Vorbis. * - - - The discussion in section 3 can make use of normative language to be - clear on how frames are packetized. I suggest the following changes: - - Any Vorbis packet that is larger than 256 octets and less than the - path-MTU should be placed in a RTP packet by itself. - ^^^^^^ MUST -* - Any Vorbis packet that is 256 bytes or less should be bundled in the - ^^^^^^ SHOULD - RTP packet with as many Vorbis packets as will fit, up to a maximum - of 32. -* - If a Vorbis packet will not fit into the RTP packet, it must be - within the network MTU ^^^^^^^^^^^^^^^^^^^ ^^^^ SHOULD - fragmented. A fragmented packet has a zero in the last five bits - of the payload header. Each fragment after the first will also set - the Continued (C) bit to one in the payload header. The RTP packet - containing the last fragment of the Vorbis packet will have the - Marker (F) bit set to one. - ^^^^^^ Final Fragment - (to avoid confusion with the RTP Marker bit) -* - - - The IANA considerations section needs to be expanded. Section 4 of RFC - 3047 is a good example, to illustrate the format. * - - - Regarding the configuration headers, is there a need to send updates - during a session? If not, it might be appropriate to define some SDP - parameters to convey the configuration data at session initiation time, - rather than relying on RTCP. If RTCP is to be used, it's necessary to - discuss reliability, and how a receiver reacts if the information is - lost. - -I also have a few editorial comments: - - - The interpretation of key words and reference to RFC 2119 should be - moved into the Introduction rather than being in the Status of this - Memo section. * - - - I suggest moving the last three paragraphs of the Introduction into - section 2.3, where the packing of the payload data is discussed. It - may also be appropriate to include a slightly longer description of - the Vorbis codec and when it might be useful in the Introduction. * - - - In section 3.1, it might be useful to include the RTP packet header - details, to show how the RTP sequence number and timestamp are used - (sequence number increases by one for each packet, timestamp stays - the same for each fragment). * - - - Section 7 might reference the discussion of congestion control in - the RTP spec and/or profile - - - References should be split into Normative and Informative sections. * - - -Cheers, -Colin -_______________________________________________ -Audio/Video Transport Working Group -avt@ietf.org -https://www1.ietf.org/mailman/listinfo/avt - - - - - -Hi All, - -Please find below an updated Vorbis-RTP Internet Draft document for review and discussion at the Xiph IRC meeting on Saturday. - -The changes in this version have been: - -Codebook caching mechanism -Expanded SDP parameters -Expanded MIME section -Expanded introduction -Packet loss section -Minor tweaks and clarity changes to text - -There are probably some minor tweaks to the formatting needed which will be done before the final submission. - -Open issues concern: - -Bitrate peeling for congestion control needs to be firmed up -A clearer definition of the path MTU is probably needed - -Feedback and comments welcomed of course. - -All being well I will submit this to the IETF early next week with a request to move the document to AVT WG status (a step closer to RFC). - -Regards - -Phil - - -Annexe) some comments on draft-kerr-avt-vorbis-rtp-01 : - - Section 3, p5. "path-MTU" is not a clear concept in IP multicast. - (path-mtu discover algorithm not operationnal here) - Open issue : optimal value for a "RTP-MTU" with vorbis ? - (IP fragmentation/reassembling vs RTP framentation/reassembling ?) - (size and frequency of "big" vorbis packet ?) - (optimistic MTU=1500, pessimistic MTU=500, Neutral MTU=1000 ?) *? - - - Section 5, p.9 last paragraph. "the URI value set there" is in SDP * - information or in VORB RTCP overflow field ? - - - Section 5 sentence "The framing bit is not used for RTP ..." appears * - 2 times. - - - Section 6, c=IN IP4 .. ; no reason to restrict to IPv4 * - - - Section 6, needs clarification for "all three of the config header * - blocks". starting of the first block ? - - - Section 2.2, figure, numbering from 0 to 7 is better * - - - Need rules for reassembling process (Section 3.2 ?). - Normal process - misordering ? - process with loss of fragment ? temporisation ?? * - - - More generally what is the consequence of vorbis packet loss, - and vorbis packet misordeing ? - - ... - - - diff --git a/libvorbis-1.0.1/doc/eightphase.png b/libvorbis-1.0.1/doc/eightphase.png deleted file mode 100644 index 0a80732347b5f9be78f9b205fd2caa9385795565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10445 zcmZvCbyyVN+rARg4I-@|APv&7C;}o#N_TfH5(_M$bfa_#s7QA&-K^w-u;kLR^wKQN zZ$F>+x_;OD{a)`MGv}N+&)jF`%seyCxt}{)Q(cLKke=|tg9jwa?-V{@%Bz1id@Rf! zFJaUPQ{dRksmVQfP?Jb>V~P9V!HY0u1vwqx`TZPliVi&WQ0?yM)y$P0$vTVN7M|DS zi|6=K3arJ&67)hUQKU&)RBTcCm*W~#>(AxVr7Q%m=tx-USXiX+36FKQ@D?9l;fjbv z{SirgOy48FR7}pIy`bwY&UYDr|P@P1Y!?;M3VH78gW97zI!Zr z&~_qn6#JMjNeFX<1hkv|1ZD7Y=TM~CH&(zefB^GI)^0*%>xtkDuef=_Y z@ZCw?@c(pAD1XyAyW5+qvn9qw2lN7d#L$~lo4Rtwug&j{Y3W{fx3@ZggzRw8 zH%*Hg-z0?mj&06@JUnXtL4-kgwkPrOJ|JB| zs2i{hY_hw52|c|%2sU>CbpzZzG&m?@sS&M2s3aB+$R-UcUnvol_wIMpH*xpexZIUo zeMl@mDx@`Ph5x@QEBvewA{1*#>;I}?4*W;^KP>(WBvM&D=nUQn(`fc_mcG605H2EN zx=2|s_PH4DdZW)IgsJC}86 zH{A@3o;|`Ts&_3Q+wUZ+=iC*xTzCtQJm1URAN<|=aotJku%K;>5zQl3iTs4j*1YY~ z%61}Il(@|G9(H`~PG2b?%Tn7hk5B@VRo&QaDw#OGj${bU!bxvgS2A1ZTo_5~A$pp$ z-I;kkKM+{2-d^p5Kx#v)Tr1nlx2x)Vlvs2Wt?#zK;;GPcJJ`mj3ZJ7sGP@oXU7LE` zPcG%4o7~nMdo={Nd|%%$WKLG?Ia`Ym@0c%+gn;#FD*3arX*Dxc+1ZNU`X|i&xj5xq z7{O~RvRyy@3;irZ+B4w-tywdphTi^JzV*L>?mB|pTuUXAzVEFUBaL#!DnU;ZDcp2= zPZWmNU5!~1<0IrQFmG`zfj=q4@ql?=-@u$ygMjbL4Eg}6b}Gd*o?neWI!M~@oZ{eU zU69PZ7zvIDJuE1Qr{PIpRPD`}h0CD6R{;Q=w4i_zvJ^{s$Rqxu!XgW~f z3wk}O_yxEhvV}n)g{0RN*{8EUrj%Y@rTn|*437}iO+?I9$FMQvob^o5iYo4*i1-zQ zH_`ZDizR^t*-c3x=lGL^hzhGlp9`q~s}6kCiK9$NsV2S;;tS)DMT)hd2j^ra%Ws&- zEGl1o#<*q-ke@YQkf7bRqehn$}x_W?qY%j!UY-mR3I$AR>BspOr{jprC?jw|VC?CBxj+zk6;(05yb z4Zi8mAuy#TPm6nLmm;N4W!9E&myU~0!S$}>*q?Z;Fs{WMnVm)dHtxdtU>!xHH`@Md zHhrLm+Wg%GG)rRF-dIjfO-sxBzIKQq81i>id}*BW;GxzRa!qLZ+a;(<2|wBnBI4*;OVL6SVHe# zfxI`;1fF|aS}uNkp)4hgJTBx}FF%ZlZ%UF#@?T)flO?HQZJK5Rnu zX`ReivI?G-FA3C*=OSD`Z!XW`&s_!fzF^Cgt8DP!0nyMI-Rtmc#Pew64->H{jm~Sp6}+%k-q*qY4FopLecA#S!4QXW$>_FUfNN>8uSHgp$crA0e}i znF9{rd7s%EHwF35m^RAY1*emF0#a5`bqb@S-Jw&s2ErDfI-Z#13i#~5F-HY$7mU8T z-HtN{_-8H5pyYd`_~7z^fmf#;;>&#zT18EzzkbzfumH{H%4TZim^KrY z>+F%L3m)8w%sZ2sX4_(;ev`;YSppEWYjH-+!5%l&K=pP6L;3lS7Jbe;|JoJi2PpL2 zPVh`$xJ%Do>Mo=7dl82c=9s5{c9JN)-5RhTeG2k3 z%=5gWa>)_t-}j==89d1t7mY;Nn|cE5NqW|kX*6}1@>zACfJ-vL>t@S0GpPNL$bn|k5;EYH(&^*D#rLl(k`f1{$?$*a3`iS%7Vr^Z` zPfFgk&3^kd`VLGm-1l2pNCUBD54=rz2=+;P?_lE!>Fs`RMp36KFcIwB;B zh%&5KpLv#dEL|1Xtc|^r>`mlQTXSgw+yI}P`cIMtJ9viq;&8o>c<{ip%no5F{TO*! zc(^vkD{@(oLiyC*u8<9?xhflct#{fIlhpvYE}z^&9Q9FsrgEoZK&?_3xOeP}0lZ!i zo%teOT88*Xeo3F(#r2}JGtvKok0Ma0Qn3T(@F<)?4*ZdHCSCIff$j%oRXf9lEYKIf zax?(!5U?MiAv{b}ti}7-2216FIV^DmlKc>sN{N{Kc$~l@*LspJ3XZwnJl}%^^m5ZU z+R5hOkligoY*5(REJe2t+cHuP*j|gGGht9q+c`WBvKZfqH1uu}Fc<}GDh9oSl8Nb` zU(7f3&7To7Ntv|*!U8$kgs)eZUrDWo+rORWo$Rfw#EKUz78Ut5B!rLJ#@`jt4dlf} z`6Djhtyf05-*l5vzUA~3;Pv=ZqEDo9#f@-h5&h8KdqeuZ5^HMLxvFJoC)>z0K=Y9U z;CBePG0YpAdo+ig{>6pOK-?-mQ?9cK)EbUs3$6R+KHbrnZtZI5Ske6~&4?8hCFC!nl zZQtGQypnL^I`(b;Gj>A>eaa?1FG_4#1TII8XeCB{9h*@0lF?IZ>S@=ORW<51>~7~- zbvrQ`Y?{b4_DckF;tkZfb3-=Obz+`mJ{kPb_lE(*-`42#R2G`+ObvQ`viTT9JiT`5 z7IEr>k-DUj zcbai3l+C^XN}{CvcieQWwl4M+8kW16<@%5P9sjH-S*uZ0zL7-l*G0Fi!KdU^)}nJK zCUr4j&SjDQfQ;`Era&?~gey(wp$YnKCit>)y)F`5B!xAnOh}11!2=a-4t*;-kdl25 zS=i~daa>ac!o(4&o25fD#XIJANVp9)$XHgjhrTQX{QPe$dMd(3q-Z%A?g9PO9oL;v z18*hbM5!-}fHx*_&@RzSZb?1`)0Hif) zK1vb|;eqMy`u3!d=QSswDbR>?BSA9hW)Y{zi*Yw+W*WrbSjd`ntOaf3%{R>w&w7ZaIfDs3}hR!3givz>r%`- zJ&kj3$AFt)@Ay{Y8K(=k*7aW>2fv%|f9Hb~aco7~B=#fL6O!o{J0#4+b>@y7eJe9p zmbj1^S4QzJ>y?f1P~)>&d*jkthl!sx9*#~Z@|Mj!#9o?ZAl*`b zVZh$n6}mN%4~riDJD7}%Ho>1yDL`Zzh;FY2In31#SoUHGBvDOO=Sg}Z+fK$NA?Sl; zb093oAV1lFmdmfwab=82H+YcU@`WeeR5gYZ$eT1g-s9G2o&M zYfH;&#kf%Va}1%tH3UB0`eD{~u@)NwR*zO1c7oCD?`lDd!dl_t{q`2ZyB0(~c%pm# z{rxe=b9MG*v>C^j5z^hfR>sszz(*ePNo6+dOZf@t1dKh2vWLGw?--U}u(O%_a))X5 z9;f;@%_^Y{p)JfC+|#7cV3E_6c3_(tFm=R72Kd#~*tY{@Ut&XTdAnBOZDkiq?Kx2q z27^Sp+_a*s{~W@8$VZk2Ta9m$p&amm8im|%QlshP)t#h+E`W9b;l9N*GOFBBY}3db zUZEt?oBqJQD2kW^zZ2w<#?LQ$S0^~22z+zri*QMm<6_Oeu_r_*RJ!b z(053Q23>hGx0f(@+&>P_nB8OK!O~VaFSZxp&uwOn4ZoYeTfAEvvndT>V0gRyK#DQi zFpm?Gd|dFSFtd2r$&h{d8%cxqr|eCquEodZWUFb*NK1Q~1ph;;4*lztxC;3%`ETR1 zXw!26;6mC2VsD#AL!R1tg96?AF4lc{sJ0t%$+_REzyUR7W7`Y}@=Z;Oz zj2xXh4ZPb(K)PKcE!`lAGykW(cc+sYJmocJ13r&)-h^(>t9eA0PD7dV3v%L6Y)3jc z<9)^_PA-sMsa?f48`<1tE+-d9<*H2;$wNXYDV)o_I@r8y$c0GHSIfSf0%htM7okcr zV1jf(S$_XK5usjsS|cp0V9BOpH0+a4Qdh(?rF2zOrZO#rfd?79jmv|NX%L`iUX>@- zr+cOvqJ+qsTWmQ677h-EF*Quo+73TnDDp>f6##9Xcq|9(NLXJDb%-TGutx`ktn0bs z-2@wLl%e1E76+4t9(V_c3_tBC%b!18~Povak%&P)X5th9P zI=X()oGuxnCSe(t9Oh8=^_vuiE}*a%JHqheP)3IZqkt&tq{$s17<^~QDbTnd2R|=( zBligclCg|}_vI(=X_!t_u|V|EJGvAa&q$R=zEYC$f}7@r?LijtWSDpf7c}i`pCC9_xqK=a>9k@BDZGSr5w=M z?HsIjW{FO`@&>%DZO?Ga0L{@80)AgT{WxdGNmoWgYi?qyqeJ!T(l+o)CUAxcISjgE zBg+slkH7+xXGkM3--wHS_uy+|Ln_;3Iw_gpyGtW;?uDoOjW6}%PwI2)oZzOv3^nfh zPhhaaW7`+ic%K)EK;92uMiz23spWYh#hns7W;So~0RCPAh+d145x!l0Dsel#^X-%F z@gHM&N5*agBY3?LmUcR3zLt%~x`vrz1m#(^rRJUJND`ttq0ndp8sTO5pa3u5QvuC6SLP$sGHz|Tc*2nU*7qzzI!Mz?mn z042%2k0>isS$ppH^>V$`&N#{j;5O1a{`uW5rK8Wg1{$Ew;v1Sw!{~&>%;N*-H+}fl zmjc$rB}H7<%=Nks$KiX!>VmoVPm|i-bpvoMJA1Cq}(T3;UNJN-yB;Mw$M{*nSMv!U|7-Q9F8!|+iZ(XI$-*DQU_ zYD^5>Yf+VFx=$fpknoL;2*uQdLr1Q13w4hcj5~}jzyuV-{ReC3$5QI;$eNI%8s*!fdgyp z?2%|9%t|C1{=7V%Wxk52!XpHnB-Bj9;S`T`?_J$)EbR2@ zLPTKip!GCK$hex0vRp%6T>2V0Li>x5F}>mBFApWx(>T{)xNyhv4ruM(3l*IT2AdwF z+YC&_T^lm7bh?I|nM8A%K^lhy_onxkHTMhRQ&ZlrDpr>k?XId<$Z+eFjE3n7VU6cC zRPApVSX0KJFRwq|FzqHpHaE?{t_o{(-xqRQxk04ke4oaC!yyd;&w6_tOHN z2oTOnqbSzBbn!j(`;r-v#Ee9!IVLpY*4c~QoD<8o8)ym;dZh3x)(#jxG) zrYTCkw&g-9F0tN!OcK>nZipU$BV;cM-7Wq1Mi>5%0nnfXtCmqWY%n6d!i>}UxH>Jw^Y^bl_HsKJ`Ruw;5#3V)e zYv!C^52aZW<^}*QWVr<{0ksYEpVyfOUCrWmtCNZ7#-^4lEnABKsLZQEfA{L2Kf|04 zdqTm_BmG1xdzq01sv%%2ud#VS!&&F23=pM{srqb_s(#_%qJWH_KV7EE1}QNE{)OYC zE<;=SSO$iT;x$*92ZPMwS8`1U4aedp#YdBR({&MShGYLc_7~jtZ^PN@q)^ih^m9vi z0t*nO+D!d*slAbSm*FvlPwu+ld$i-VS!iJPxflFz*r_eGSboAas8h|C>6m-#id^_gB(Ot!s69tqD&D4d0oKe5bWf_S2gp^e^PhRO@g5v%{}}+3 zVXmqlu%`V_AC-{>AL;ZM^?GG=2si zq0@cg1CK%J!2%H42F)KSO zMnS)2UK@)Opty)c{ijmA{UP}?yN}4G&;3`xM3I=u+TnRK(pyPr@na>rHL~vft^RyF zTfy@Xbs^}_pQhSHk1A*6qriQ9RUGj4%u_qjmt|R8s3q;b@(#yOLP~ro(B{VGG_EJ} zA%7^tuRG)E4gYA$@i>=%s}cWg>Okx#`YS3Pd_-0!(79J(Des;w*8h!l0QW;Sd|VC) zqeh1jbe#nUd5mTV-M|UDBA0?Y-NwHkUKENUmSfk0?n&-n-mRaBa4hkJEJ1h-%}5Bk z)DrKE+MBN;7)A)X;$F??48Y1`X@aN_lh8#+1%4C5j+XK`9xc#OzfqO*wES9j1R|rx zNR;5jY2JSH!?1!A9W-U--*S+`4k=1;5r$N)%+5nY(KupB~>qbZctoK?`$?YVC>eNw2FJR5i?^>i9raQ z=z7RR5qfui16i8x32hU5p+^y^xFJ&ys) zb-M@OX?Fu=j+d?;Re(?1w$Hh=Nz>Ea!55Z{dZ)H06-^y;kO*IyttX@nms1{l6Z(iD z5wicuddX0aSBEG_2Rrk(RoDJvBX2&e9j2DwQLm;G7CtYSr81TW8`~3-f2)NRAE?8FAy1)Iq#bU#ZSi%#E zcB7*YRQ39_0xK%n$!SrHlbhk^Oh|VfEl;sy<^sXdg)2_{Vazu z^g7*b_wv5F6;1<6yi{bgU(LC<(`HpkH1H4**p|i+%-w*Z5298IYA&auC?>T|eqMy2 z|7qT?)2E1L%9Dw$lW!~#2Ga1w4=kRAG$>IIL?*k1*~r{|LA$hNJ$w`^v%aDk@&kd0 zBvF@`GR8ZHtliD;=~qZQa=5_T!2%`?AAqnDHeGF#a^S%fA(6An`?3f!^Pu~{*kwNk zb}!KIqk`Fyc-c;eISbUuVgrxkHj5LiQjuuW(@hVdZ{{=ilbwi)IkJsfG}!U3#W~A4 zc6WF*uyEgPpKhUXbUoAh1%I||#TqiZ)Ozrjzpv;KhN8d)ajW>;ye#MCE$8OW0u6rQ z0>v@h_SFA5zHFSz%5@ukFK$k%c<3c0?nI0Ry}wHEwSKGD$$!G~n?U2{?5}BogPpU;N{sKzcK z^F)GwwOFm8bmco`+#BXBCmVg=G15+uvG6XZNh^tgv3K4=!ou_N$(OHEln`^d=_DnW z&UY=@V&da%h_K2R|0bkhyWCW^20Qju156B$-al%B$2x6ILwI<;JQ{UC&zv8;mEZah znzAqj0h@F6))EL1g+ty{dhYQ~e76n4B(>K`j~6P`E#FwqpHY#)S{y95?1GC76pX%f8HiYBPQpWGinu1v0N&i)|FXXY6#=`Ic-H{ltE`K&U?1l zPWV}v)zG_!o76$#6bFPA8s*oUU3>!^@M;xCnJV@~NsGug@;{HY%s;n6s<}NVlRMCY z*pD1B(#RlpN5m;xwGR)EtW-Rb20JFCQT{^%)kj29x&TU7vVpKy<1*Ll9^^RaJ;L{a z!d#EXtRG(Ewf-L8jEOI^+`tG;BK%+TcK?+q@7H1YMVIg>1QY823nQ~8!Q;lzJ7)GR z`lIib-684GQ%Pz(5k?iXpTl)z2-qTNHOpu3UFAJe%UW#iAX!Y|{A@l1AF@wn^~M1@|6 zc{Yf@P{RG7)L%ZYBsw$SF=6!5=8rpzG$%)!;2vG^#rkfBhJ}glvm!>I?Fu60$ zW}-f8T$2uO@D1`?(pk-b^R0%Px~W*4QoI<3*jd9QZE)rxF5DT(#Gu8<_dVLV!BQ2} zy8(oY_(>dyX#|?T3a@S3Z32B>?CJ!tW~(_S##Iyx086n^sO$s_MJfsMoq3 zJccX@pR~jQVhefYu)KNDG5Ly_T9kAm?vg;<#^!itBtexU@8TOGpn=&*VQskt=I_3f zK$0l@r3vCmQZJ?w(Tc+Ue$h=(6_cy+nI_ezN738AtcBtGiD}~%)%3^Ud=|fVt7EZY z8+TKNC8~s^WidVU>Smb$0_T@IvQCdekuoW${I!P&7_s7;NCT3TtOw1kjj7Mk52~6o z{f@TNgE#e^5pdOHf4h%t1Sm@(JIM3bT?IcApMAb(_qb_$@!8wg}reumNuQeQ~Jpzh1Vm1G&Bck<6THkSj z&$tqK-I#M3Zk7-CdS>{5WT{^LjvTg{mPJ2Sav&#M14*?=Q51sVCb@`RDoAmhMi3Vx z;u3vm$V}>L9+1%Z)}F^cr*jBpZ|^Df;_9r3ujYBNrfmR5zy&T0xy>i`nrardqv57N z;DT7fxa_I@TwlbRU^H7`ahh&ZAT2@>2ZWK${qG6}|Nrjz*A%0#!$4uQb^lfQFOdHa z`+wQ~dp2fdv`ku2uD{Ca7!e&wHvqPgs&A$RIeGI|9tiW4^x7I<6j}|Bi@=D@SRt`d p_$XG4@+=CYO8c)CWzgllCb!E~#EG;UMxXdVSy5e~@{L8v{{!;GGA954 diff --git a/libvorbis-1.0.1/doc/evenlsp.png b/libvorbis-1.0.1/doc/evenlsp.png deleted file mode 100644 index 057529b3bc31b3d3e202c8dc7c594b70313c7c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2779 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 diff --git a/libvorbis-1.0.1/doc/floor1-1.png b/libvorbis-1.0.1/doc/floor1-1.png deleted file mode 100644 index 86bc6e65df58ca0d27ae672df030551f2be46de8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 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 QLZ1x4+}PTv!q6@5zolIWLI3~& diff --git a/libvorbis-1.0.1/doc/floor1-2.png b/libvorbis-1.0.1/doc/floor1-2.png deleted file mode 100644 index e54b4ccb6db239178c83474a772dc02150102a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3977 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 SThI7A0+<>h4XgBBiT?*2ww2KU diff --git a/libvorbis-1.0.1/doc/floor1-4.png b/libvorbis-1.0.1/doc/floor1-4.png deleted file mode 100644 index d7a3416450eacec77b804e402e571ed5ead3d25b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4440 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 diff --git a/libvorbis-1.0.1/doc/framing.html b/libvorbis-1.0.1/doc/framing.html deleted file mode 100644 index 26293dc..0000000 --- a/libvorbis-1.0.1/doc/framing.html +++ /dev/null @@ -1,395 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - -

      -Ogg logical bitstream framing -

      - -Last update to this document: July 14, 2002
      - -

      Ogg bitstreams

      - -The Ogg transport bitstream is designed to provide framing, error -protection and seeking structure for higher-level codec streams that -consist of raw, unencapsulated data packets, such as the Vorbis audio -codec or Tarkin video codec. - -

      Application example: Vorbis

      -Vorbis encodes short-time blocks of PCM data into raw packets of -bit-packed data. These raw packets may be used directly by transport -mechanisms that provide their own framing and packet-separation -mechanisms (such as UDP datagrams). For stream based storage (such as -files) and transport (such as TCP streams or pipes), Vorbis uses the -Ogg bitstream format to provide framing/sync, sync recapture -after error, landmarks during seeking, and enough information to -properly separate data back into packets at the original packet -boundaries without relying on decoding to find packet boundaries.

      - -

      Design constraints for Ogg bitstreams

      - -
      1. True streaming; we must not need to seek to build a 100% - complete bitstream. - -
      2. Use no more than approximately 1-2% of bitstream bandwidth for - packet boundary marking, high-level framing, sync and seeking. - -
      3. Specification of absolute position within the original sample - stream. - -
      4. Simple mechanism to ease limited editing, such as a simplified - concatenation mechanism. - -
      5. Detection of corruption, recapture after error and direct, random - access to data at arbitrary positions in the bitstream. -
      - -

      Logical and Physical Bitstreams

      - -A logical Ogg bitstream is a contiguous stream of -sequential pages belonging only to the logical bitstream. A -physical Ogg bitstream is constructed from one or more -than one logical Ogg bitstream (the simplest physical bitstream -is simply a single logical bitstream). We describe below the exact -formatting of an Ogg logical bitstream. Combining logical -bitstreams into more complex physical bitstreams is described in the -Ogg bitstream overview. The exact -mapping of raw Vorbis packets into a valid Ogg Vorbis physical -bitstream is described in Vorbis -bitstream mapping. - -

      Bitstream structure

      - -An Ogg stream is structured by dividing incoming packets into -segments of up to 255 bytes and then wrapping a group of contiguous -packet segments into a variable length page preceded by a page -header. Both the header size and page size are variable; the page -header contains sizing information and checksum data to determine -header/page size and data integrity.

      - -The bitstream is captured (or recaptured) by looking for the beginning -of a page, specifically the capture pattern. Once the capture pattern -is found, the decoder verifies page sync and integrity by computing -and comparing the checksum. At that point, the decoder can extract the -packets themselves.

      - -

      Packet segmentation

      - -Packets are logically divided into multiple segments before encoding -into a page. Note that the segmentation and fragmentation process is a -logical one; it's used to compute page header values and the original -page data need not be disturbed, even when a packet spans page -boundaries.

      - -The raw packet is logically divided into [n] 255 byte segments and a -last fractional segment of < 255 bytes. A packet size may well -consist only of the trailing fractional segment, and a fractional -segment may be zero length. These values, called "lacing values" are -then saved and placed into the header segment table.

      - -An example should make the basic concept clear:

      - -

      -
      -raw packet:
      -  ___________________________________________
      - |______________packet data__________________| 753 bytes
      -
      -lacing values for page header segment table: 255,255,243
      -
      -
      - -We simply add the lacing values for the total size; the last lacing -value for a packet is always the value that is less than 255. Note -that this encoding both avoids imposing a maximum packet size as well -as imposing minimum overhead on small packets (as opposed to, eg, -simply using two bytes at the head of every packet and having a max -packet size of 32k. Small packets (<255, the typical case) are -penalized with twice the segmentation overhead). Using the lacing -values as suggested, small packets see the minimum possible -byte-aligned overheade (1 byte) and large packets, over 512 bytes or -so, see a fairly constant ~.5% overhead on encoding space.

      - -Note that a lacing value of 255 implies that a second lacing value -follows in the packet, and a value of < 255 marks the end of the -packet after that many additional bytes. A packet of 255 bytes (or a -multiple of 255 bytes) is terminated by a lacing value of 0:

      - -

      
      -raw packet:
      -  _______________________________
      - |________packet data____________|          255 bytes
      -
      -lacing values: 255, 0
      -
      - -Note also that a 'nil' (zero length) packet is not an error; it -consists of nothing more than a lacing value of zero in the header.

      - -

      Packets spanning pages

      - -Packets are not restricted to beginning and ending within a page, -although individual segments are, by definition, required to do so. -Packets are not restricted to a maximum size, although excessively -large packets in the data stream are discouraged; the Ogg -bitstream specification strongly recommends nominal page size of -approximately 4-8kB (large packets are foreseen as being useful for -initialization data at the beginning of a logical bitstream).

      - -After segmenting a packet, the encoder may decide not to place all the -resulting segments into the current page; to do so, the encoder places -the lacing values of the segments it wishes to belong to the current -page into the current segment table, then finishes the page. The next -page is begun with the first value in the segment table belonging to -the next packet segment, thus continuing the packet (data in the -packet body must also correspond properly to the lacing values in the -spanned pages. The segment data in the first packet corresponding to -the lacing values of the first page belong in that page; packet -segments listed in the segment table of the following page must begin -the page body of the subsequent page).

      - -The last mechanic to spanning a page boundary is to set the header -flag in the new page to indicate that the first lacing value in the -segment table continues rather than begins a packet; a header flag of -0x01 is set to indicate a continued packet. Although mandatory, it -is not actually algorithmically necessary; one could inspect the -preceding segment table to determine if the packet is new or -continued. Adding the information to the packet_header flag allows a -simpler design (with no overhead) that needs only inspect the current -page header after frame capture. This also allows faster error -recovery in the event that the packet originates in a corrupt -preceding page, implying that the previous page's segment table -cannot be trusted.

      - -Note that a packet can span an arbitrary number of pages; the above -spanning process is repeated for each spanned page boundary. Also a -'zero termination' on a packet size that is an even multiple of 255 -must appear even if the lacing value appears in the next page as a -zero-length continuation of the current packet. The header flag -should be set to 0x01 to indicate that the packet spanned, even though -the span is a nil case as far as data is concerned.

      - -The encoding looks odd, but is properly optimized for speed and the -expected case of the majority of packets being between 50 and 200 -bytes (note that it is designed such that packets of wildly different -sizes can be handled within the model; placing packet size -restrictions on the encoder would have only slightly simplified design -in page generation and increased overall encoder complexity).

      - -The main point behind tracking individual packets (and packet -segments) is to allow more flexible encoding tricks that requiring -explicit knowledge of packet size. An example is simple bandwidth -limiting, implemented by simply truncating packets in the nominal case -if the packet is arranged so that the least sensitive portion of the -data comes last.

      - -

      Page header

      - -The headering mechanism is designed to avoid copying and re-assembly -of the packet data (ie, making the packet segmentation process a -logical one); the header can be generated directly from incoming -packet data. The encoder buffers packet data until it finishes a -complete page at which point it writes the header followed by the -buffered packet segments.

      - -

      capture_pattern

      - - A header begins with a capture pattern that simplifies identifying - pages; once the decoder has found the capture pattern it can do a more - intensive job of verifying that it has in fact found a page boundary - (as opposed to an inadvertent coincidence in the byte stream).

      - -

      
      - byte value
      -
      -  0  0x4f 'O'
      -  1  0x67 'g'
      -  2  0x67 'g'
      -  3  0x53 'S'  
      -
      - -

      stream_structure_version

      - - The capture pattern is followed by the stream structure revision: - -
      
      - byte value
      -
      -  4  0x00
      -
      - -

      header_type_flag

      - - The header type flag identifies this page's context in the bitstream: - -
      
      - byte value
      -
      -  5  bitflags: 0x01: unset = fresh packet
      -	               set = continued packet
      -	       0x02: unset = not first page of logical bitstream
      -                       set = first page of logical bitstream (bos)
      -	       0x04: unset = not last page of logical bitstream
      -                       set = last page of logical bitstream (eos)
      -
      - -

      absolute granule position

      - - (This is packed in the same way the rest of Ogg data is packed; LSb - of LSB first. Note that the 'position' data specifies a 'sample' - number (eg, in a CD quality sample is four octets, 16 bits for left - and 16 bits for right; in video it would likely be the frame number. - It is up to the specific codec in use to define the semantic meaning - of the granule position value). The position specified is the total - samples encoded after including all packets finished on this page - (packets begun on this page but continuing on to the next page do not - count). The rationale here is that the position specified in the - frame header of the last page tells how long the data coded by the - bitstream is. A truncated stream will still return the proper number - of samples that can be decoded fully. -

      - A special value of '-1' (in two's complement) indicates that no packets - finish on this page. - -

      
      - byte value
      -
      -  6  0xXX LSB
      -  7  0xXX
      -  8  0xXX
      -  9  0xXX
      - 10  0xXX
      - 11  0xXX
      - 12  0xXX
      - 13  0xXX MSB
      -
      - -

      stream serial number

      - - Ogg allows for separate logical bitstreams to be mixed at page - granularity in a physical bitstream. The most common case would be - sequential arrangement, but it is possible to interleave pages for - two separate bitstreams to be decoded concurrently. The serial - number is the means by which pages physical pages are associated with - a particular logical stream. Each logical stream must have a unique - serial number within a physical stream: - -
      
      - byte value
      -
      - 14  0xXX LSB
      - 15  0xXX
      - 16  0xXX
      - 17  0xXX MSB
      -
      - -

      page sequence no

      - - Page counter; lets us know if a page is lost (useful where packets - span page boundaries). - -
      
      - byte value
      -
      - 18  0xXX LSB
      - 19  0xXX
      - 20  0xXX
      - 21  0xXX MSB
      -
      - -

      page checksum

      - - 32 bit CRC value (direct algorithm, initial val and final XOR = 0, - generator polynomial=0x04c11db7). The value is computed over the - entire header (with the CRC field in the header set to zero) and then - continued over the page. The CRC field is then filled with the - computed value.

      - - (A thorough discussion of CRC algorithms can be found in "A - Painless Guide to CRC Error Detection Algorithms" by Ross - Williams ross@guest.adelaide.edu.au.) - -

      
      - byte value
      -
      - 22  0xXX LSB
      - 23  0xXX
      - 24  0xXX
      - 25  0xXX MSB
      -
      - -

      page_segments

      - - The number of segment entries to appear in the segment table. The - maximum number of 255 segments (255 bytes each) sets the maximum - possible physical page size at 65307 bytes or just under 64kB (thus - we know that a header corrupted so as destroy sizing/alignment - information will not cause a runaway bitstream. We'll read in the - page according to the corrupted size information that's guaranteed to - be a reasonable size regardless, notice the checksum mismatch, drop - sync and then look for recapture).

      - -

      
      - byte value
      -
      - 26 0x00-0xff (0-255)
      -
      - -

      segment_table (containing packet lacing values)

      - - The lacing values for each packet segment physically appearing in - this page are listed in contiguous order. - -
      
      - byte value
      -
      - 27 0x00-0xff (0-255)
      - [...]
      - n  0x00-0xff (0-255, n=page_segments+26)
      -
      - -Total page size is calculated directly from the known header size and -lacing values in the segment table. Packet data segments follow -immediately after the header.

      - -Page headers typically impose a flat .25-.5% space overhead assuming -nominal ~8k page sizes. The segmentation table needed for exact -packet recovery in the streaming layer adds approximately .5-1% -nominal assuming expected encoder behavior in the 44.1kHz, 128kbps -stereo encodings.

      - -


      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - - diff --git a/libvorbis-1.0.1/doc/helper.html b/libvorbis-1.0.1/doc/helper.html deleted file mode 100644 index acfc0f4..0000000 --- a/libvorbis-1.0.1/doc/helper.html +++ /dev/null @@ -1,196 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - -

      -Ogg Vorbis I format specification: helper equations -

      - -Last update to this document: October 15, 2002

      - -

      Overview

      - -The equations below are used in multiple places by the Vorbis codec -specification. Rather than cluttering up the main specification -documents, they are defined here and linked in the main documents -where appropriate.

      - -

      ilog

      - - -The "ilog(x)" function returns the position number (1 through n) of the highest set bit in the two's complement integer value -[x]. Values of [x] less than zero are defined to return zero. - -
      -  1) [return_value] = 0;
      -  2) if ( [x] is greater than zero ){
      -      
      -       3) increment [return_value];
      -       4) logical shift [x] one bit to the right, padding the MSb with zero
      -       5) repeat at step 2)
      -
      -     }
      -
      -   6) done
      -
      - -Examples: - -
      • ilog(0) = 0; -
      • ilog(1) = 1; -
      • ilog(2) = 2; -
      • ilog(3) = 2; -
      • ilog(4) = 3; -
      • ilog(7) = 3; -
      • ilog(negative number) = 0; -
      - -

      float32_unpack

      - -"float32_unpack(x)" is intended to translate the packed binary -representation of a Vorbis codebook float value into the -representation used by the decoder for floating point numbers. For -purposes of this example, we will unpack a Vorbis float32 into a -host-native floating point number.

      - -

      -  1) [mantissa] = [x] bitwise AND 0x1fffff (unsigned result)
      -  2) [sign] = [x] bitwise AND 0x80000000 (unsigned result)
      -  3) [exponent] = ( [x] bitwise AND 0x7fe00000) shifted right 21 bits (unsigned result)
      -  4) if ( [sign] is nonzero ) then negate [mantissa]
      -  5) return [mantissa] * ( 2 ^ ( [exponent] - 788 ) )
      -
      - -

      lookup1_values

      - -"lookup1_values(codebook_entries,codebook_dimensions)" is used to -compute the correct length of the value index for a codebook VQ lookup -table of lookup type 1. The values on this list are permuted to -construct the VQ vector lookup table of size -[codebook_entries].

      - -The return value for this function is defined to be 'the greatest -integer value for which [return_value] to the power of -[codebook_dimensions] is less than or equal to -[codebook_entries]'. - -

      low_neighbor

      - -"low_neighbor(v,x)" finds the position n in vector [v] of -the greatest value scalar element for which n is less than -[x] and vector [v] element n is less -than vector [v] element [x]. - -

      high_neighbor

      - -"high_neighbor(v,x)" finds the position n in vector [v] of -the lowest value scalar element for which n is less than -[x] and vector [v] element n is greater -than vector [v] element [x]. - -

      render_point

      - -"render_point(x0,y0,x1,y1,X)" is used to find the Y value at point X -along the line specified by x0, x1, y0 and y1. This function uses an -integer algorithm to solve for the point directly without calculating -intervening values along the line.

      - -

      -  1)  [dy] = [y1] - [y0]
      -  2) [adx] = [x1] - [x0]
      -  3) [ady] = absolute value of [dy]
      -  4) [err] = [ady] * ([X] - [x0])
      -  5) [off] = [err] / [adx] using integer division
      -  6) if ( [dy] is less than zero ) {
      -
      -       7) [Y] = [y0] - [off]
      -
      -     } else {
      -
      -       8) [Y] = [y0] + [off]
      -  
      -     }
      -
      -  9) done
      -
      - -

      render_line

      - -Floor decode type one uses the integer line drawing algorithm of -"render_line(x0, y0, x1, y1, v)" to construct an integer floor -curve for contiguous piecewise line segments. Note that it has not -been relevant elsewhere, but here we must define integer division as -rounding division of both positive and negative numbers toward zero. - -
      -  1)   [dy] = [y1] - [y0]
      -  2)  [adx] = [x1] - [x0]
      -  3)  [ady] = absolute value of [dy]
      -  4) [base] = [dy] / [adx] using integer division
      -  5)    [x] = [x0]
      -  6)    [y] = [y0]
      -  7)  [err] = 0
      -
      -  8) if ( [dy] is less than 0 ) {
      -
      -        9) [sy] = [base] - 1
      -
      -     } else {
      -
      -       10) [sy] = [base] + 1
      -
      -     }
      -
      - 11) [ady] = [ady] - (absolute value of [base]) * [adx]
      - 12) vector [v] element [x] = [y]
      -
      - 13) iterate [x] over the range [x0]+1 ... [x1]-1 {
      -
      -       14) [err] = [err] + [ady];
      -       15) if ( [err] >= [adx] ) {
      -
      -             15) [err] = [err] - [adx]
      -             16)   [y] = [y] + [sy]
      -
      -           } else {
      -
      -             17) [y] = [y] + [base]
      -   
      -           }
      -
      -       18) vector [v] element [x] = [y]
      -
      -     }
      -
      - -
      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - diff --git a/libvorbis-1.0.1/doc/hufftree-under.png b/libvorbis-1.0.1/doc/hufftree-under.png deleted file mode 100644 index 54d218327a5371edf823521b277c69867022b4a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1412 zcmY+E4>Z$z6u`Inw@3c=$YhU3rR+FTXo{7_%qk@H!;9G(d6P2azs$?x`S(5sp=2T+2gy`JdMF=XUH0&ghCs9oJ_&S0 zlDeTZYQzvuxM_@N=&54V3sy`42t;+5fIE6R{*_!JBHyvqQ}fo|6-#!W0h1d z-Ho%Ml9u_q_J&oi@X)fo8RqbGb2xocPhT%h4NZb-0Rk9|_Zg2sj6Ne=024Qc+sH?; zBtHFO#~l%s$l?CfPmRveoPkI4X`VYRj*pmMuD8R;Y)E_`QM($Iz5ojA_xQDU$PKNq5L#K*)KL(qXlyRO!v{cR=BsVy^TiMrIV$}oiOp7An0WZ z&qUT}APZ@VL;SlHQ|B`Cce(i5`t!R9P4l=@--wm8SX@%vxtz&qqU zfyCBd4qAzse)R_HoS9$5F=mTtg*z@k7qSLral=$46w8}Gldcd9?R(n zm=<72D%oK~GXiy{8L`Rei#ht=Q~L-LPR1yd9huikLKA0NE$Z!fhZ8R582w*orFwH4qXe{BY)&LG%adbTX*Z%X{Tsw z08$^QY^7$h4H;VGY$blQPB|bLcTpdDj6iX3UE$PLcdMn2Z2na6%AXOE6j#m%Mse*O*agI6&SM(rQJ-^Z zy(4*Lx&!nGIpAC{WTi8jJKOy&<30a?5BCw$vVnrQI~2kQqi8p%pqJ6;s>eu6!QGQl zhdj~>N6UQ_;;Fb$f6~saOSB?if#(|^!n?E{{|3_*-)(>=VsSDbL4wLAfv~<7;L}{D z1FKSx`?Gm96ifD|gci-bSI&;AQ6Y4E+|F2&(C|ykK$&7}lT{J?;(>Z4dJgI7)rNIA zGl!I-MxMl_!V1{I0q)N2?u7@L&oqS7wFea@BG;Fsj|nQJ`yRq#7bXF5u}f|&I2~Tm zOU|{Zx;b$ai6qY6DlxKoB3wNFO=m%!rU-A-IOJRZ^HX2jUR4z4QYJR5G9}q?G%{hx znVXBjYR~lntJG-s_r@&6L=t{RzQ#X3lg(1-?oZNR03I?!i{9#>QxM{7vze{?i22uD znwz+WqIQ5??v-1W6C$6KD(tMQ$vOWlqE9vd@AP%PH_PnW6M^7Yq$~Fwgy41(SLaGf F{~Jk$l%4

      3K2A*J5is6_Ylaa9^s(%gpAgV&Fl!eHBGJn<(3(uH#(QACZYCW8D@=(9U}dltkJ71cJn z6`GyF_1P`EE$V7j^*34V$TgJn?M!;;}Dq;3VIW)9*TDsaEy2^f;w>a#SGy{X7C zFPAl}uKcb&yR`n46xL`JHb=DtUN5^}3I!Gf6?F-%&)41_?GCALHrX7zA!^+JS2xMMmff4aB~Oe#|4+wQa66~(O*{acrA1p)7l)q$S*fE*`9!Bf?a zb8uOHl6iy7#W3Yc@&Y{)@V1im9tJNy8j@QUOxf4p*4u`_k)QvSR=85ytoIIRwFUxITfyl6t;&x{mw+ZuH zJ9DCIp4~!Hl-hH*a_C#r->kLdWk?;nMkS|grprgKw4~fy9ecnff~Pm`nCCo*WGD#S zNbQNf@=wn_#@Cjyy-nsPJ2BC`=95AltE{9GK`c%YRS{A8oc1R+Fia!RFOs;6Wuiko zdbf~bkqHgduB5(GK+!TVOQ3`#Fo5Dsxav|I7UHO&Y8Yr zMo7C}bx=Ps(jf>$OE2ZS-$ImA6UeOR3ELtG9`Zn~7t#;hA8sV;;Ma)ZcgTwSOm0v6#UhBw& zv`RmULhkxIawa!YnHXubtbRoQ5Q8;(Ziq@rG1{hgqjTdAjPGp6a=9dTIi8by(8#Ox z(}(ezfiks3NSsq!s{I(3Phm{0QGs<0KOJl2f&!vr8s#G;Mfv=2V6ZKSJDI587nuK| zu&9v|oGB8WqYt{GostTcdz&jmUnG!X=O)I*M~H9^Q&A`6 z=rJ%#bSvnl1NZZ5?tb7z@8E!wF^!fKX31eTJ1)r%@~D(&(aT4Ed>m2ybwd4LJi=Es Ynky`;%3^Gg@<9mmboIqIxsY@J0cW xiph.org: Ogg Vorbis documentation - -xiph.org: Ogg Vorbis documentation - -

      - -

      -Ogg Vorbis Documentation -

      - -Last documentation revision: October 15, 2002

      - -

      Vorbis technical discussion documents

      - - -

      Ogg Vorbis I specification

      - - - - -

      Ogg Vorbis programming documents

      - - -

      Ogg bitstream documentation

      - - -
      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - diff --git a/libvorbis-1.0.1/doc/lspmap.png b/libvorbis-1.0.1/doc/lspmap.png deleted file mode 100644 index 85c130861af9158317c21111e7966ca391fedbeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4330 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 W&yxbR)5m`i0F;Tvr7~le$NvK2Ch)`n diff --git a/libvorbis-1.0.1/doc/oddlsp.png b/libvorbis-1.0.1/doc/oddlsp.png deleted file mode 100644 index 808a51f7e91218788af785113346a0cd514021b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2141 zcmV-j2%`6iP)1{WyGFzUc7`EjX4inA=I&I4Fv-p+L4lp|+)0X^?8;@5 zUE@%h%x{^^{b_e0$@oJUC}glydN1n;-!|IY-7>K!g4;57-Y0SJaYhv&*c;8tB^C#p6qRYeJvP(z4lbq-q)Y4 zJXf&Ja(kB~aq*Nzv^N|3g&AUMR=u$pAm9LS9z1xb1Y=B>#R+;p9#r4&a4ZMNb(e)FhmcexdUZ(ht)XGL zLsW9;h+3f(aj{P>2JTYC+=moL?-z?9 zNC*a8;MREqVMgr%z~| z)U`pRC_2y|Olz3@Po93S2js$0&|TNv0UY!onH~xE!D`!4!*!5Eb>egALt=2?0H?4u zfg{7Sm;{r_`jqWRL%;>CPjM;?@!8&h51-cQp*4uqUF{222@Ubh1C!BNjz%)NT}&6r zwgE##H{`EovM-LBiu48!9MF37%;;}9lVCDg|CT&UwC(^fL=%XRuo0#qP1|Z9m?I2f z$lD{u4X=yjx>rbKL&ivP)KsM1Ab59$geAWZ$r(iQyGZ7Ho`Q7gdIQ1kgj7M&@G88g z;b}Ff1JIgBeE_KNB2@xD0f4x(3^Lr9vy3-yK`l7_*T zNF7Wj>)MH)AZcg1GQ>gn9X@<|*r~B_uzN_xg1%r=a@KPc433=}k^bvl4L=f~ZZdO! za18Q%51*Dryf2DM8qib<(j_d3r|$(8m$}y7L>sKTPBxlk{|j}+_Z_m^B>OEh2=!lQ ze&sJZJFfvBIB%j20CQm+9q126);B+`0k1(CH#fZDv;*l0L=@Fjan?ATw)TCU4Ggs- z^GBqddzKg5DRChu$Meg1VRI7B zBJw?C6s$TCFF`!?I@pS$9tT??)NtJ`!3u>W0a`R9*WD~w!;{799wZ9)0y-?*cyDr) zdMu4_>*uvOUGLVIk>DDjx=qla%c|a=N`gu_4*3W@Tw|=Py?-(A@tv|Ns=rP>-=KHa>^v7`PzoCtB zhJOsVK1aQ1NU*{OM9QE5fsfcqqJU#~bwF0SXPbQiLh863Ly!odjtOu$;HOIVLNU%1qg}7n|emLh~M~{E|!27 zXql&ge|t0RX#E@O-I@ykz!~WI$q-UD1qeyuz!axq4Tg6F<$@f;w~nrAIqp3U)Zlil z??7a%Cd1uBHU$WV07=RQd@y;i3K!Iek9XN2F*)#1YXERCgp^GIf+1if^(sD?q#wk% zka`+ktJ~(sP=HX02hxfMwGQTato{;~4~b*oIrL2Cqs+tphG%jpU_TY<{sjn&NmDq} zmBVLoNE;R4KjaU30vv*QnLJDH=GS|ByKQ%Se)C_eDM(oqASA|BvfBh*YvJc-+!XlH zo!b`BL(FEBE;M_dC6~JHj`h*z>1peI3lLIsQhD_df5~cibw{VI2iX-Mr2hN7x$gC% zV%$h6ZvA@}Af#s5q%RZCCI|XG{g<+J>!bC6rfHgP#?RQTZ}GzUz%QT*h7=Vb6iyR? zl&M>PG71nfb?a9r<-Jbn)}MIE(ygD5yHvXMCthLUhWpa3U#e88Ql(0jDy;qw^g1+8 TU4}yi00000NkvXXu0mjfc*F3y diff --git a/libvorbis-1.0.1/doc/oggstream.html b/libvorbis-1.0.1/doc/oggstream.html deleted file mode 100644 index 4df3346..0000000 --- a/libvorbis-1.0.1/doc/oggstream.html +++ /dev/null @@ -1,196 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - - -

      -Ogg logical and physical bitstream overview -

      - -Last update to this document: July 14, 2002
      - -

      Ogg bitstreams

      - -Ogg codecs use octet vectors of raw, compressed data -(packets). These compressed packets do not have any -high-level structure or boundary information; strung together, they -appear to be streams of random bytes with no landmarks.

      - -Raw packets may be used directly by transport mechanisms that provide -their own framing and packet-separation mechanisms (such as UDP -datagrams). For stream based storage (such as files) and transport -(such as TCP streams or pipes), Vorbis and other future Ogg codecs use -the Ogg bitstream format to provide framing/sync, sync recapture -after error, landmarks during seeking, and enough information to -properly separate data back into packets at the original packet -boundaries without relying on decoding to find packet boundaries.

      - -

      Logical and physical bitstreams

      - -Raw packets are grouped and encoded into contiguous pages of -structured bitstream data called logical bitstreams. A -logical bitstream consists of pages, in order, belonging to a single -codec instance. Each page is a self contained entity (although it is -possible that a packet may be split and encoded across one or more -pages); that is, the page decode mechanism is designed to recognize, -verify and handle single pages at a time from the overall bitstream.

      - -Multiple logical bitstreams can be combined (with restrictions) into a -single physical bitstream. A physical bitstream consists of -multiple logical bitstreams multiplexed at the page level and may -include a 'meta-header' at the beginning of the multiplexed logical -stream that serves as identification magic. Whole pages are taken in -order from multiple logical bitstreams and combined into a single -physical stream of pages. The decoder reconstructs the original -logical bitstreams from the physical bitstream by taking the pages in -order from the physical bitstream and redirecting them into the -appropriate logical decoding entity. The simplest physical bitstream -is a single, unmultiplexed logical bitstream with no meta-header; this -is referred to as a 'degenerate stream'.

      - -Ogg Logical Bitstream Framing discusses -the page format of an Ogg bitstream, the packet coding process -and logical bitstreams in detail. The remainder of this document -specifies requirements for constructing finished, physical Ogg -bitstreams.

      - -

      Mapping Restrictions

      - -Logical bitstreams may not be mapped/multiplexed into physical -bitstreams without restriction. Here we discuss design restrictions -on Ogg physical bitstreams in general, mostly to introduce -design rationale. Each 'media' format defines its own (generally more -restrictive) mapping. An 'Ogg Vorbis -Audio Bitstream', for example, has a specific physical bitstream structure. -An 'Ogg A/V' bitstream (not currently specified) will also mandate a -specific, restricted physical bitstream format.

      - -

      additional end-to-end structure

      - -The framing specification defines -'beginning of stream' and 'end of stream' page markers via a header -flag (it is possible for a stream to consist of a single page). A -stream always consists of an integer number of pages, an easy -requirement given the variable size nature of pages.

      - -In addition to the header flag marking the first and last pages of a -logical bitstream, the first page of an Ogg bitstream obeys -additional restrictions. Each individual media mapping specifies its -own implementation details regarding these restrictions.

      - -The first page of a logical Ogg bitstream consists of a single, -small 'initial header' packet that includes sufficient information to -identify the exact CODEC type and media requirements of the logical -bitstream. The intent of this restriction is to simplify identifying -the bitstream type and content; for a given media type (or across all -Ogg media types) we can know that we only need a small, fixed -amount of data to uniquely identify the bitstream type.

      - -As an example, Ogg Vorbis places the name and revision of the Vorbis -CODEC, the audio rate and the audio quality into this initial header, -thus simplifying vastly the certain identification of an Ogg Vorbis -audio bitstream.

      - -

      sequential multiplexing (chaining)

      - -The simplest form of logical bitstream multiplexing is concatenation -(chaining). Complete logical bitstreams are strung -one-after-another in order. The bitstreams do not overlap; the final -page of a given logical bitstream is immediately followed by the -initial page of the next. Chaining is the only logical->physical -mapping allowed by Ogg Vorbis.

      - -Each chained logical bitstream must have a unique serial number within -the scope of the physical bitstream.

      - -

      concurrent multiplexing (grouping)

      - -Logical bitstreams may also be multiplexed 'in parallel' -(grouped). An example of grouping would be to allow -streaming of separate audio and video streams, using different codecs -and different logical bitstreams, in the same physical bitstream. -Whole pages from multiple logical bitstreams are mixed together.

      - -The initial pages of each logical bitstream must appear first; the -media mapping specifies the order of the initial pages. For example, -Ogg A/V will eventually specify an Ogg video bitstream with -audio. The mapping may specify that the physical bitstream must begin -with the initial page of a logical video bitstream, followed by the -initial page of an audio stream. Unlike initial pages, terminal pages -for the logical bitstreams need not all occur contiguously (although a -specific media mapping may require this; it is not mandated by the -generic Ogg stream spec). Terminal pages may be 'nil' pages, -that is, pages containing no content but simply a page header with -position information and the 'last page of bitstream' flag set in the -page header.

      - -Each grouped bitstream must have a unique serial number within the -scope of the physical bitstream.

      - -

      sequential and concurrent multiplexing

      - -Groups of concurrently multiplexed bitstreams may be chained -consecutively. Such a physical bitstream obeys all the rules of both -grouped and chained multiplexed streams; the groups, when unchained , -must stand on their own as a valid concurrently multiplexed -bitstream.

      - -

      multiplexing example

      - -Below, we present an example of a grouped and chained bitstream:

      - -

      - -In this example, we see pages from five total logical bitstreams -multiplexed into a physical bitstream. Note the following -characteristics: - -

      1. Grouped bitstreams begin together; all of the initial pages -must appear before any data pages. When concurrently multiplexed -groups are chained, the new group does not begin until all the -bitstreams in the previous group have terminated.

        - -

      2. The pages of concurrently multiplexed bitstreams need not conform -to a regular order; the only requirement is that page n of a -logical bitstream follow page n-1 in the physical bitstream. -There are no restrictions on intervening pages belonging to other -logical bitstreams. (Tying page appearance to bitrate demands is one -logical strategy, ie, the page appears at the chronological point -where decode requires more information). - -
      - -
      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - - diff --git a/libvorbis-1.0.1/doc/programming.html b/libvorbis-1.0.1/doc/programming.html deleted file mode 100644 index ce7fb4b..0000000 --- a/libvorbis-1.0.1/doc/programming.html +++ /dev/null @@ -1,502 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - - -

      -Programming with Xiph.org libvorbis -

      - -Last update to this document: July 22, 1999
      - -

      Description

      - -Libvorbis is the Xiph.org Foundation's portable Ogg Vorbis CODEC -implemented as a programmatic library. Libvorbis provides primitives -to handle framing and manipulation of Ogg bitstreams (used by the -Vorbis for streaming), a full analysis (encoding) interface as well as -packet decoding and synthesis for playback.

      - -The libvorbis library does not provide any system interface; a -full-featured demonstration player included with the library -distribtion provides example code for a variety of system interfaces -as well as a working example of using libvorbis in production code. - -

      Encoding Overview

      - - - -

      Decoding Overview

      - -Decoding a bitstream with libvorbis follows roughly the following -steps: - -
        -
      1. Frame the incoming bitstream into pages -
      2. Sort the pages by logical bitstream and buffer then into logical streams -
      3. Decompose the logical streams into raw packets -
      4. Reconstruct segments of the original data from each packet -
      5. Glue the reconstructed segments back into a decoded stream -
      - -

      Framing

      - -An Ogg bitstream is logically arranged into pages, but to decode -the pages, we have to find them first. The raw bitstream is first fed -into an ogg_sync_state buffer using ogg_sync_buffer() -and ogg_sync_wrote(). After each block we submit to the sync -buffer, we should check to see if we can frame and extract a complete -page or pages using ogg_sync_pageout(). Extra pages are -buffered; allowing them to build up in the ogg_sync_state -buffer will eventually exhaust memory.

      - -The Ogg pages returned from ogg_sync_pageout need not be -decoded further to be used as landmarks in seeking; seeking can be -either a rough process of simply jumping to approximately intuited -portions of the bitstream, or it can be a precise bisection process -that captures pages and inspects data position. When seeking, -however, sequential multiplexing (chaining) must be accounted for; -beginning play in a new logical bitstream requires initializing a -synthesis engine with the headers from that bitstream. Vorbis -bitstreams do not make use of concurent multiplexing (grouping).

      - -

      Sorting

      - -The pages produced by ogg_sync_pageout are then sorted by -serial number to seperate logical bitstreams. Initialize logical -bitstream buffers (og_stream_state) using -ogg_stream_init(). Pages are submitted to the matching -logical bitstream buffer using ogg_stream_pagein; the serial -number of the page and the stream buffer must match, or the page will -be rejected. A page submitted out of sequence will simply be noted, -and in the course of outputting packets, the hole will be flagged -(ogg_sync_pageout and ogg_stream_packetout will -return a negative value at positions where they had to recapture the -stream). - -

      Extracting packets

      - -After submitting page[s] to a logical stream, read available packets -using ogg_stream_packetout. - -

      Decoding packets

      - -

      Reassembling data segments

      - - -

      Ogg Bitstream Manipulation Structures

      - -Two of the Ogg bitstream data structures are intended to be -transparent to the developer; the fields should be used directly.

      - -

      ogg_packet

      - -
      -typedef struct {
      -  unsigned char *packet;
      -  long  bytes;
      -  long  b_o_s;
      -  long  e_o_s;
      -
      -  size64 granulepos;
      -
      -} ogg_packet;
      -
      - -
      -
      packet:
      a pointer to the byte data of the raw packet -
      bytes:
      the size of the packet' raw data -
      b_o_s:
      beginning of stream; nonzero if this is the first packet of - the logical bitstream -
      e_o_s:
      end of stream; nonzero if this is the last packet of the - logical bitstream -
      granulepos:
      the absolute position of this packet in the original - uncompressed data stream. -
      - -

      encoding notes

      The encoder is responsible for setting all of -the fields of the packet to appropriate values before submission to -ogg_stream_packetin(); however, it is noted that the value in -b_o_s is ignored; the first page produced from a given -ogg_stream_state structure will be stamped as the initial -page. e_o_s, however, must be set; this is the means by -which the stream encoding primitives handle end of stream and cleanup. - -

      decoding notes

      ogg_stream_packetout() sets the fields -to appropriate values. Note that granulepos will be >= 0 only in the -case that the given packet actually represents that position (ie, only -the last packet completed on any page will have a meaningful -granulepos). Intervening frames will see granulepos set -to -1. - -

      ogg_page

      - -
      -typedef struct {
      -  unsigned char *header;
      -  long header_len;
      -  unsigned char *body;
      -  long body_len;
      -} ogg_page;
      -
      - -
      -
      header:
      pointer to the page header data -
      header_len:
      length of the page header in bytes -
      body:
      pointer to the page body -
      body_len:
      length of the page body -
      - -Note that although the header and body pointers do -not necessarily point into a single contiguous page vector, the page -body must immediately follow the header in the bitstream.

      - -

      Ogg Bitstream Manipulation Functions

      - -

      -int ogg_page_bos(ogg_page *og); -

      - -Returns the 'beginning of stream' flag for the given Ogg page. The -beginning of stream flag is set on the initial page of a logical -bitstream.

      - -Zero indicates the flag is cleared (this is not the initial page of a -logical bitstream). Nonzero indicates the flag is set (this is the -initial page of a logical bitstream).

      - -

      -int ogg_page_continued(ogg_page *og); -

      - -Returns the 'packet continued' flag for the given Ogg page. The packet -continued flag indicates whether or not the body data of this page -begins with packet continued from a preceeding page.

      -Zero (unset) indicates that the body data begins with a new packet. -Nonzero (set) indicates that the first packet data on the page is a -continuation from the preceeding page. - -

      -int ogg_page_eos(ogg_page *og); -

      - -Returns the 'end of stream' flag for a give Ogg page. The end of page -flag is set on the last (terminal) page of a logical bitstream.

      - -Zero (unset) indicates that this is not the last page of a logical -bitstream. Nonzero (set) indicates that this is the last page of a -logical bitstream and that no addiitonal pages belonging to this -bitstream may follow.

      - -

      -size64 ogg_page_granulepos(ogg_page *og); -

      - -Returns the position of this page as an absolute position within the -original uncompressed data. The position, as returned, is 'frames -encoded to date up to and including the last whole packet on this -page'. Partial packets begun on this page but continued to the -following page are not included. If no packet ends on this page, the -frame position value will be equal to the frame position value of the -preceeding page. If none of the original uncompressed data is yet -represented in the logical bitstream (for example, the first page of a -bitstream consists only of a header packet; this packet encodes only -metadata), the value shall be zero.

      - -The units of the framenumber are determined by media mapping. A -vorbis audio bitstream, for example, defines one frame to be the -channel values from a single sampling period (eg, a 16 bit stereo -bitstream consists of two samples of two bytes for a total of four -bytes, thus a frame would be four bytes). A video stream defines one -frame to be a single frame of video.

      - -

      -int ogg_page_pageno(ogg_page *og); -

      - -Returns the sequential page number of the given Ogg page. The first -page in a logical bitstream is numbered zero; following pages are -numbered in increasing monotonic order.

      - -

      -int ogg_page_serialno(ogg_page *og); -

      - -Returns the serial number of the given Ogg page. The serial number is -used as a handle to distinguish various logical bitstreams in a -physical Ogg bitstresm. Every logical bitstream within a -physical bitstream must use a unique (within the scope of the physical -bitstream) serial number, which is stamped on all bitstream pages.

      - -

      -int ogg_page_version(ogg_page *og); -

      - -Returns the revision of the Ogg bitstream structure of the given page. -Currently, the only permitted number is zero. Later revisions of the -bitstream spec will increment this version should any changes be -incompatable.

      - -

      -int ogg_stream_clear(ogg_stream_state *os); -

      - -Clears and deallocates the internal storage of the given Ogg stream. -After clearing, the stream structure is not initialized for use; -ogg_stream_init must be called to reinitialize for use. -Use ogg_stream_reset to reset the stream state -to a fresh, intiialized state.

      - -ogg_stream_clear does not call free() on the pointer -os, allowing use of this call on stream structures in static -or automatic storage. ogg_stream_destroyis a complimentary -function that frees the pointer as well.

      - -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -int ogg_stream_destroy(ogg_stream_state *os); -

      - -Clears and deallocates the internal storage of the given Ogg stream, -then frees the storage associated with the pointer os.

      - -ogg_stream_clear does not call free() on the pointer -os, allowing use of that call on stream structures in static -or automatic storage.

      - -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -int ogg_stream_init(ogg_stream_state *os,int serialno); -

      - -Initialize the storage associated with os for use as an Ogg -stream. This call is used to initialize a stream for both encode and -decode. The given serial number is the serial number that will be -stamped on pages of the produced bitstream (during encode), or used as -a check that pages match (during decode).

      - -Returns zero on success, nonzero on failure.

      - -

      -int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -

      - -Used during encoding to add the given raw packet to the given Ogg -bitstream. The contents of op are copied; -ogg_stream_packetin does not retain any pointers into -op's storage. The encoding proccess buffers incoming packets -until enough packets have been assembled to form an entire page; -ogg_stream_pageout is used to read complete pages.

      - -Returns zero on success, nonzero on failure.

      - -

      -int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -

      - -Used during decoding to read raw packets from the given logical -bitstream. ogg_stream_packetout will only return complete -packets for which checksumming indicates no corruption. The size and -contents of the packet exactly match those given in the encoding -process.

      - -Returns zero if the next packet is not ready to be read (not buffered -or incomplete), positive if it returned a complete packet in -op and negative if there is a gap, extra bytes or corruption -at this position in the bitstream (essentially that the bitstream had -to be recaptured). A negative value is not necessarily an error. It -would be a common occurence when seeking, for example, which requires -recapture of the bitstream at the position decoding continued.

      - -Iff the return value is positive, ogg_stream_packetout placed -a packet in op. The data in op points to static -storage that is valid until the next call to -ogg_stream_pagein, ogg_stream_clear, -ogg_stream_reset, or ogg_stream_destroy. The -pointers are not invalidated by more calls to -ogg_stream_packetout.

      - -

      -int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -

      - -Used during decoding to buffer the given complete, pre-verified page -for decoding into raw Ogg packets. The given page must be framed, -normally produced by ogg_sync_pageout, and from the logical -bitstream associated with os (the serial numbers must match). -The contents of the given page are copied; ogg_stream_pagein -retains no pointers into og storage.

      - -Returns zero on success and non-zero on failure.

      - -

      -int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -

      - -Used during encode to read complete pages from the stream buffer. The -returned page is ready for sending out to the real world.

      - -Returns zero if there is no complete page ready for reading. Returns -nonzero when it has placed data for a complete page into -og. Note that the storage returned in og points into internal -storage; the pointers in og are valid until the next call to -ogg_stream_pageout, ogg_stream_packetin, -ogg_stream_reset, ogg_stream_clear or -ogg_stream_destroy. - -

      -int ogg_stream_reset(ogg_stream_state *os); -

      - -Resets the given stream's state to that of a blank, unused stream; -this may be used during encode or decode.

      - -Note that if used during encode, it does not alter the stream's serial -number. In addition, the next page produced during encoding will be -marked as the 'initial' page of the logical bitstream.

      - -When used during decode, this simply clears the data buffer of any -pending pages. Beginning and end of stream cues are read from the -bitstream and are unaffected by reset.

      - -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -char *ogg_sync_buffer(ogg_sync_state *oy, long size); -

      - -This call is used to buffer a raw bitstream for framing and -verification. ogg_sync_buffer handles stream capture and -recapture, checksumming, and division into Ogg pages (as required by -ogg_stream_pagein).

      - -ogg_sync_buffer exposes a buffer area into which the decoder -copies the next (up to) size bytes. We expose the buffer -(rather than taking a buffer) in order to avoid an extra copy many -uses; this way, for example, read() can transfer data -directly into the stream buffer without first needing to place it in -temporary storage.

      - -Returns a pointer into oy's internal bitstream sync buffer; -the remaining space in the sync buffer is at least size -bytes. The decoder need not write all of size bytes; -ogg_sync_wrote is used to inform the engine how many bytes -were actually written. Use of ogg_sync_wrote after writing -into the exposed buffer is mandantory.

      - -

      -int ogg_sync_clear(ogg_sync_state *oy); -

      - -ogg_sync_clear - -Clears and deallocates the internal storage of the given Ogg sync -buffer. After clearing, the sync structure is not initialized for -use; ogg_sync_init must be called to reinitialize for use. -Use ogg_sync_reset to reset the sync state and buffer to a -fresh, intiialized state.

      - -ogg_sync_clear does not call free() on the pointer -oy, allowing use of this call on sync structures in static -or automatic storage. ogg_sync_destroyis a complimentary -function that frees the pointer as well.

      - -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -int ogg_sync_destroy(ogg_sync_state *oy); -

      - -Clears and deallocates the internal storage of the given Ogg sync -buffer, then frees the storage associated with the pointer -oy.

      - -ogg_sync_clear does not call free() on the pointer -oy, allowing use of that call on stream structures in static -or automatic storage.

      - -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -int ogg_sync_init(ogg_sync_state *oy); -

      - -Initializes the sync buffer oy for use.

      -Returns zero on success and non-zero on failure. This function always -succeeds.

      - -

      -int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -

      - -Reads complete, framed, verified Ogg pages from the sync buffer, -placing the page data in og.

      - -Returns zero when there's no complete pages buffered for -retrieval. Returns negative when a loss of sync or recapture occurred -(this is not necessarily an error; recapture would be required after -seeking, for example). Returns positive when a page is returned in -og. Note that the data in og points into the sync -buffer storage; the pointers are valid until the next call to -ogg_sync_buffer, ogg_sync_clear, -ogg_sync_destroy or ogg_sync_reset. - - -

      -int ogg_sync_reset(ogg_sync_state *oy); -

      - -ogg_sync_reset resets the sync state in oy to a -clean, empty state. This is useful, for example, when seeking to a -new location in a bitstream.

      - -Returns zero on success, nonzero on failure.

      - -

      -int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -

      - -Used to inform the sync state as to how many bytes were actually -written into the exposed sync buffer. It must be equal to or less -than the size of the buffer requested.

      - -Returns zero on success and non-zero on failure; failure occurs only -when the number of bytes written were larger than the buffer.

      - -


      - - - - - -Ogg is a effort to -protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About - for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - diff --git a/libvorbis-1.0.1/doc/residue-pack.png b/libvorbis-1.0.1/doc/residue-pack.png deleted file mode 100644 index 4e1a0a62d83ce130e46c9e2f53ca160a4ff60aa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35241 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 diff --git a/libvorbis-1.0.1/doc/residue2.png b/libvorbis-1.0.1/doc/residue2.png deleted file mode 100644 index 511345ff51ffee3280d279c64a27dfc46d16c1df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21388 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 diff --git a/libvorbis-1.0.1/doc/v-comment.html b/libvorbis-1.0.1/doc/v-comment.html deleted file mode 100644 index 46a4f06..0000000 --- a/libvorbis-1.0.1/doc/v-comment.html +++ /dev/null @@ -1,231 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - - -

      -Ogg Vorbis I format specification: comment field and header specification -

      - -Last update to this document: July 16, 2002

      - -

      Overview

      - -

      The Vorbis text comment header is the second (of three) header -packets that begin a Vorbis bitstream. It is meant for short, text -comments, not arbitrary metadata; arbitrary metadata belongs in a -separate logical bitstream (usually an XML stream type) that provides -greater structure and machine parseability. - -

      The comment field is meant to be used much like someone jotting a -quick note on the bottom of a CDR. It should be a little information to -remember the disc by and explain it to others; a short, to-the-point -text note that need not only be a couple words, but isn't going to be -more than a short paragraph. The essentials, in other words, whatever -they turn out to be, eg: - -

      -"Honest Bob and the Factory-to-Dealer-Incentives, _I'm Still Around_, -opening for Moxy Fruvous, 1997" -
      - -

      Comment encoding

      - - -

      Structure

      - -The comment header logically is a list of eight-bit-clean vectors; the -number of vectors is bounded to 2^32-1 and the length of each vector -is limited to 2^32-1 bytes. The vector length is encoded; the vector -contents themselves are not null terminated. In addition to the vector -list, there is a single vector for vendor name (also 8 bit clean, -length encoded in 32 bits). Libvorbis currently sets the vendor string -to "Xiph.Org libVorbis I 20020717".

      - -The comment header is decoded as follows:

      - -

      -  1) [vendor_length] = read an unsigned integer of 32 bits
      -  2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets
      -  3) [user_comment_list_length] = read an unsigned integer of 32 bits
      -  4) iterate [user_comment_list_length] times {
      -
      -       5) [length] = read an unsigned integer of 32 bits
      -       6) this iteration's user comment = read a UTF-8 vector as [length] octets
      -
      -     }
      -
      -  7) [framing_bit] = read a single bit as boolean
      -  8) if ( [framing_bit]  unset or end of packet ) then ERROR
      -  9) done.
      -
      - - -

      Content vector format

      - -The comment vectors are structured similarly to a UNIX environment variable. -That is, comment fields consist of a field name and a field value and -look like: - -
      -comment[0]="ARTIST=me"; 
      -comment[1]="TITLE=the sound of Vorbis"; 
      -
      - -
        -
      • A case-insensitive field name that may consist of ASCII 0x20 through -0x7D, 0x3D ('=') excluded. ASCII 0x41 through 0x5A inclusive (A-Z) is -to be considered equivalent to ASCII 0x61 through 0x7A inclusive -(a-z). - -
      • The field name is immediately followed by ASCII 0x3D ('='); this -equals sign is used to terminate the field name. - -
      • 0x3D is followed by 8 bit clean UTF-8 encoded field contents -to the end of the field. -
      - -

      Field names

      - -Below is a proposed, minimal list of standard filed names with a -description of intended use. No single or group of field names is -mandatory; a comment header may contain one, all or none of the names -in this list.

      - -

      -
      TITLE
      Track/Work name - -
      VERSION
      The version field may be used to differentiate multiple -versions of the same track title in a single collection. (e.g. remix info) - -
      ALBUM
      The collection name to which this track belongs - -
      TRACKNUMBER
      The track number of this piece if part of a specific larger collection or album - -
      ARTIST
      The artist generally considered responsible for the work. In popular music this is usually the performing band or singer. For classical music it would be the composer. For an audio book it would be the author of the original text. - -
      PERFORMER
      The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists. In an audio book it would be the actor who did the reading. In popular music this is typically the same as the ARTIST and is omitted. - -
      COPYRIGHT
      Copyright attribution, e.g., '2001 Nobody's Band' or '1999 Jack Moffitt' - -
      LICENSE
      License information, eg, 'All Rights Reserved', 'Any -Use Permitted', a URL to a license such as a Creative Commons license -("www.creativecommons.org/blahblah/license.html") or the EFF Open -Audio License ('distributed under the terms of the Open Audio -License. see http://www.eff.org/IP/Open_licenses/eff_oal.html for -details'), etc. - -
      ORGANIZATION
      Name of the organization producing the track (i.e. -the 'record label') - -
      DESCRIPTION
      A short text description of the contents - -
      GENRE
      A short text indication of music genre - -
      DATE
      Date the track was recorded - -
      LOCATION
      Location where track was recorded - -
      CONTACT
      Contact information for the creators or distributors of the track. This could be a URL, an email address, the physical address of the producing label. - -
      ISRC
      ISRC number for the track; see the ISRC intro page for more information on ISRC numbers. - -
      - -

      Implications

      -
        -
      • -Field names should not be 'internationalized'; this is a -concession to simplicity not an attempt to exclude the majority of -the world that doesn't speak English. Field *contents*, however, -are represented in UTF-8 to allow easy representation of any language. -
      • -We have the length of the entirety of the field and restrictions on -the field name so that the field name is bounded in a known way. Thus -we also have the length of the field contents. -
      • -Individual 'vendors' may use non-standard field names within -reason. The proper use of comment fields should be clear through -context at this point. Abuse will be discouraged. -
      • -There is no vendor-specific prefix to 'nonstandard' field names. -Vendors should make some effort to avoid arbitrarily polluting the -common namespace. We will generally collect the more useful tags -here to help with standardization. -
      • -Field names are not required to be unique (occur once) within a -comment header. As an example, assume a track was recorded by three -well know artists; the following is permissible, and encouraged: -
        -              ARTIST=Dizzy Gillespie 
        -              ARTIST=Sonny Rollins 
        -              ARTIST=Sonny Stitt 
        -
        - -
      - -

      Encoding

      - -The comment header comprises the entirety of the second bitstream -header packet. Unlike the first bitstream header packet, it is not -generally the only packet on the second page and may not be restricted -to within the second bitstream page. The length of the comment header -packet is [practically] unbounded. The comment header packet is not -optional; it must be present in the bitstream even if it is -effectively empty.

      - -The comment header is encoded as follows (as per Ogg's standard -bitstream mapping which renders least-significant-bit of the word to be -coded into the least significant available bit of the current -bitstream octet first): - -

        -
      1. -Vendor string length (32 bit unsigned quantity specifying number of octets) - -
      2. -Vendor string ([vendor string length] octets coded from beginning of string to end of string, not null terminated) - -
      3. Number of comment fields (32 bit unsigned quantity specifying number of fields) - -
      4. Comment field 0 length (if [Number of comment fields]>0; 32 bit unsigned quantity specifying number of octets) - -
      5. -Comment field 0 ([Comment field 0 length] octets coded from beginning of string to end of string, not null terminated) - -
      6. Comment field 1 length (if [Number of comment fields]>1...)... -
      - -This is actually somewhat easier to describe in code; implementation of the above can be found in vorbis/lib/info.c:_vorbis_pack_comment(),_vorbis_unpack_comment() - -
      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - diff --git a/libvorbis-1.0.1/doc/vorbis-fidelity.html b/libvorbis-1.0.1/doc/vorbis-fidelity.html deleted file mode 100644 index ad3cac0..0000000 --- a/libvorbis-1.0.1/doc/vorbis-fidelity.html +++ /dev/null @@ -1,142 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - - -

      -Ogg Vorbis: Fidelity measurement and terminology discussion -

      - -Last update to this document: July 16, 2002

      - -Terminology discussed in this document is based on common terminology -associated with contemporary codecs such as MPEG I audio layer 3 -(mp3). However, some differences in terminology are useful in the -context of Vorbis as Vorbis functions somewhat differently than most -current formats. For clarity, then, we describe a common terminology -for discussion of Vorbis's and other formats' audio quality.

      - -

      Subjective and Objective

      - -Objective fidelity is a measure, based on a computable, -mechanical metric, of how carefully an output matches an input. For -example, a stereo amplifier may claim to introduce less that .01% -total harmonic distortion when amplifying an input signal; this claim -is easy to verify given proper equipment, and any number of testers are -likely to arrive at the same, exact results. One need not listen to -the equipment to make this measurement.

      - -However, given two amplifiers with identical, verifiable objective -specifications, listeners may strongly prefer the sound quality of one -over the other. This is actually the case in the decades old debate -[some would say jihad] among audiophiles involving vacuum tube versus -solid state amplifiers. There are people who can tell the difference, -and strongly prefer one over the other despite seemingly identical, -measurable quality. This preference is subjective and -difficult to measure but nonetheless real. - -Individual elements of subjective differences often can be qualified, -but overall subjective quality generally is not measurable. Different -observers are likely to disagree on the exact results of a subjective -test as each observer's perspective differs. When measuring -subjective qualities, the best one can hope for is average, empirical -results that show statistical significance across a group.

      - -Perceptual codecs are most concerned with subjective, not objective, -quality. This is why evaluating a perceptual codec via distortion -measures and sonograms alone is useless; these objective measures may -provide insight into the quality or functioning of a codec, but cannot -answer the much squishier subjective question, "Does it sound -good?". The tube amplifier example is perhaps not the best as very few -people can hear, or care to hear, the minute differences between tubes -and transistors, whereas the subjective differences in perceptual -codecs tend to be quite large even when objective differences are -not.

      - -

      Fidelity, Artifacts and Differences

      Audio artifacts -and loss of fidelity or more simply put, audio differences -are not the same thing.

      - -A loss of fidelity implies differences between the perceived input and -output signal; it does not necessarily imply that the differences in -output are displeasing or that the output sounds poor (although this -is often the case). Tube amplifiers are not higher fidelity -than modern solid state and digital systems. They simply produce a -form of distortion and coloring that is either unnoticeable or actually -pleasing to many ears.

      - -As compared to an original signal using hard metrics, all perceptual -codecs [ASPEC, ATRAC, MP3, WMA, AAC, TwinVQ, AC3 and Vorbis included] -lose objective fidelity in order to reduce bitrate. This is fact. The -idea is to lose fidelity in ways that cannot be perceived. However, -most current streaming applications demand bitrates lower than what -can be achieved by sacrificing only objective fidelity; this is also -fact, despite whatever various company press releases might claim. -Subjective fidelity eventually must suffer in one way or another.

      - -The goal is to choose the best possible tradeoff such that the -fidelity loss is graceful and not obviously noticeable. Most listeners -of FM radio do not realize how much lower fidelity that medium is as -compared to compact discs or DAT. However, when compared directly to -source material, the difference is obvious. A cassette tape is lower -fidelity still, and yet the degradation, relatively speaking, is -graceful and generally easy not to notice. Compare this graceful loss -of quality to an average 44.1kHz stereo mp3 encoded at 80 or 96kbps. -The mp3 might actually be higher objective fidelity but subjectively -sounds much worse.

      - -Thus, when a CODEC must sacrifice subjective quality in order -to satisfy a user's requirements, the result should be a -difference that is generally either difficult to notice -without comparison, or easy to ignore. An artifact, on the -other hand, is an element introduced into the output that is -immediately noticeable, obviously foreign, and undesired. The famous -'underwater' or 'twinkling' effect synonymous with low bitrate (or -poorly encoded) mp3 is an example of an artifact. This -working definition differs slightly from common usage, but the coined -distinction between differences and artifacts is useful for our -discussion.

      - -The goal, when it is absolutely necessary to sacrifice subjective -fidelity, is obviously to strive for differences and not artifacts. -The vast majority of codecs today fail at this task miserably, -predictably, and regularly in one way or another. Avoiding such -failures when it is necessary to sacrifice subjective quality is a -fundamental design objective of Vorbis and that objective is reflected -in Vorbis's design and tuning.

      - -


      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - - - - - diff --git a/libvorbis-1.0.1/doc/vorbis.html b/libvorbis-1.0.1/doc/vorbis.html deleted file mode 100644 index 05c140b..0000000 --- a/libvorbis-1.0.1/doc/vorbis.html +++ /dev/null @@ -1,197 +0,0 @@ -xiph.org: Ogg Vorbis documentation - -

      - - -

      -Ogg Vorbis encoding format documentation -

      - -Last update to this document: July 2, 2002
      -Last update to Vorbis documentation: July 2, 2002

      - -
      - - -As of writing, not all the below document -links are live. They will be populated as we complete the -documents. -
      - -

      -

      Documents

      - - -

      Description

      -Ogg Vorbis is a general purpose compressed audio format -for high quality (44.1-48.0kHz, 16+ bit, polyphonic) audio and music -at moderate fixed and variable bitrates (40-80 kb/s/channel). This -places Vorbis in the same class as audio representations including -MPEG-1 audio layer 3, MPEG-4 audio (AAC and TwinVQ), and PAC.

      - -Vorbis is the first of a planned family of Ogg multimedia coding -formats being developed as part of the Xiph.org Foundation's Ogg multimedia -project. See http://www.xiph.org/ -for more information. - -

      Vorbis technical documents

      - -A Vorbis encoder takes in overlapping (but contiguous) short-time -segments of audio data. The encoder analyzes the content of the audio -to determine an optimal compact representation; this phase of encoding -is known as analysis. For each short-time block of sound, -the encoder then packs an efficient representation of the signal, as -determined by analysis, into a raw packet much smaller than the size -required by the original signal; this phase is coding. -Lastly, in a streaming environment, the raw packets are then -structured into a continuous stream of octets; this last phase is -streaming. Note that the stream of octets is referred to both -as a 'byte-' and 'bit-'stream; the latter usage is acceptible as the -stream of octets is a physical representation of a true logical -bit-by-bit stream.

      - -A Vorbis decoder performs a mirror image process of extracting the -original sequence of raw packets from an Ogg stream (stream -decomposition), reconstructing the signal representation from the -raw data in the packet (decoding) and them reconstituting an -audio signal from the decoded representation (synthesis).

      - -The Programming with libvorbis -documents discuss use of the reference Vorbis codec library -(libvorbis) produced by the Xiph.org Foundation.

      - -The data representations and algorithms necessary at each step to -encode and decode Ogg Vorbis bitstreams are described by the below -documents in sufficient detail to construct a complete Vorbis codec. -Note that at the time of writing, Vorbis is still in a 'Request For -Comments' stage of development; despite being in advanced stages of -development, input from the multimedia community is welcome.

      - -

      Vorbis analysis and synthesis

      - -Analysis begins by seperating an input audio stream into individual, -overlapping short-time segments of audio data. These segments are -then transformed into an alternate representation, seeking to -represent the original signal in a more efficient form that codes into -a smaller number of bytes. The analysis and transformation stage is -the most complex element of producing a Vorbis bitstream.

      - -The corresponding synthesis step in the decoder is simpler; there is -no analysis to perform, merely a mechanical, deterministic -reconstruction of the original audio data from the transform-domain -representation.

      - -

        -
      • Vorbis packet structure: Describes the basic analysis components necessary to produce Vorbis packets and the structure of the packet itself. -
      • Temporal envelope shaping and blocksize: Use of temporal envelope shaping and variable blocksize to minimize time-domain energy leakage during wide dynamic range and spectral energy swings. Also discusses time-related principles of psychoacoustics. -
      • Time domain segmentation and MDCT transform: Division of time domain data into individual overlapped, windowed short-time vectors and transformation using the MDCT -
      • The resolution floor: Use of frequency doamin psychoacoustics, and the MDCT-domain noise, masking and resolution floors -
      • MDCT-domain fine structure: Production, quantization and massaging of MDCT-spectrum fine structure -
      - -

      Vorbis coding and decoding

      - -Coding and decoding converts the transform-domain representation of -the original audio produced by analysis to and from a bitwise packed -raw data packet. Coding and decoding consist of two logically -orthogonal concepts, back-end coding and bitpacking.

      - -Back-end coding uses a probability model to represent the raw numbers -of the audio representation in as few physical bits as possible; -familiar examples of back-end coding include Huffman coding and Vector -Quantization.

      - -Bitpacking arranges the variable sized words of the back-end -coding into a vector of octets without wasting space. The octets -produced by coding a single short-time audio segment is one raw Vorbis -packet.

      - -

      - -

      Vorbis streaming and stream decomposition

      - -Vorbis packets contain the raw, bitwise-compressed representation of a -snippet of audio. These packets contain no structure and cannot be -strung together directly into a stream; for streamed transmission and -storage, Vorbis packets are encoded into an Ogg bitstream.

      - -

        - -
      • Ogg bitstream overview: High-level -description of Ogg logical bitstreams, how logical bitstreams -(of mixed media types) can be combined into physical bitstreams, and -restrictions on logical-to-physical mapping. Note that this document is -not specific only to Ogg Vorbis. - -
      • Ogg logical bitstream and framing -spec: Low level, complete specification of Ogg logical -bitstream pages. Note that this document is not specific only to Ogg -Vorbis. - -
      • Vorbis bitstream mapping: -Specifically describes mapping Vorbis data into an -Ogg physical bitstream. - -
      - - -
      - - - - - -Ogg is a Xiph.org Foundation effort -to protect essential tenets of Internet multimedia from corporate -hostage-taking; Open Source is the net's greatest tool to keep -everyone honest. See About -the Xiph.org Foundation for details. -

      - -Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and -distribute the Ogg and Vorbis specification, whether in a private, -public or corporate capacity. However, the Xiph.org Foundation and -the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis -specification and certify specification compliance.

      - -Xiph.org's Vorbis software CODEC implementation is distributed under a -BSD-like license. This does not restrict third parties from -distributing independent implementations of Vorbis software under -other licenses.

      - -Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm) -of the Xiph.org Foundation. These -pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights -reserved.

      - - - - - - - - diff --git a/libvorbis-1.0.1/doc/vorbisenc/Makefile.am b/libvorbis-1.0.1/doc/vorbisenc/Makefile.am deleted file mode 100644 index a9f7809..0000000 --- a/libvorbis-1.0.1/doc/vorbisenc/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc - -doc_DATA = index.html overview.html reference.html style.css\ - vorbis_encode_ctl.html vorbis_encode_init.html vorbis_info.html\ - vorbis_encode_init_vbr.html - -EXTRA_DIST = $(doc_DATA) diff --git a/libvorbis-1.0.1/doc/vorbisenc/Makefile.in b/libvorbis-1.0.1/doc/vorbisenc/Makefile.in deleted file mode 100644 index e679f7f..0000000 --- a/libvorbis-1.0.1/doc/vorbisenc/Makefile.in +++ /dev/null @@ -1,238 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc - -doc_DATA = index.html overview.html reference.html style.css vorbis_encode_ctl.html vorbis_encode_init.html vorbis_info.html vorbis_encode_init_vbr.html - - -EXTRA_DIST = $(doc_DATA) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DATA = $(doc_DATA) - -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps doc/vorbisenc/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -install-docDATA: $(doc_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(docdir) - @list='$(doc_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p; \ - fi; fi; \ - done - -uninstall-docDATA: - @$(NORMAL_UNINSTALL) - list='$(doc_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(docdir)/$$p; \ - done -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = doc/vorbisenc - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: install-docDATA -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-docDATA -uninstall: uninstall-am -all-am: Makefile $(DATA) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(docdir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: uninstall-docDATA install-docDATA tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/doc/vorbisenc/overview.html b/libvorbis-1.0.1/doc/vorbisenc/overview.html deleted file mode 100644 index 3244c9c..0000000 --- a/libvorbis-1.0.1/doc/vorbisenc/overview.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -libvorbisenc - API Overview - - - - - - - - - -

      libvorbisenc documentation

      libvorbisenc version 1.1.2.2 - 20001104

      - -

      Libvorbisenc API Overview

      - -

      The current version of libvorbisenc is very simple. It contains an initialization function to set up the encoding engine properly. -It also contains a control function to be used in the future to tweak encoder settings. -

      -All the libvorbisenc routines are declared in "vorbis/vorbisenc.h". - -

      - - - - - - - - - - - - - - - - - -
      functionpurpose
      vorbis_encode_initThis function takes a vorbis_info struct and encoding parameters and sets up a proper encoding environment..
      vorbis_encode_init_vbrThis function takes a vorbis_info struct -and encoding parameters for VBR encoding.
      vorbis_encode_ctlFunction in progress, to be used in future versions of this API.
      - -

      -


      - - - - - - - - -

      copyright © 2000 vorbis team

      Ogg Vorbis
      team@vorbis.org

      vorbisfile documentation

      vorbisfile version 1.25 - 20000615

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisenc/reference.html b/libvorbis-1.0.1/doc/vorbisenc/reference.html deleted file mode 100644 index af0020f..0000000 --- a/libvorbis-1.0.1/doc/vorbisenc/reference.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Vorbisfile API Reference - - - - - - - - - -

      vorbisenc documentation

      vorbisfile version 1.0

      - -

      Vorbisenc API Reference

      - -

      -Data Structures
      -vorbis_info
      -
      -Encoder Setup
      -vorbis_encode_init()
      -vorbis_encode_init_vbr()
      -vorbis_encode_ctl()
      -
      -
      -


      - - - - - - - - -

      copyright © 2003 vorbis team

      Ogg Vorbis
      team@vorbis.org

      vorbisenc documentation

      vorbisenc version 1.0

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_ctl.html b/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_ctl.html deleted file mode 100644 index baa5ccd..0000000 --- a/libvorbis-1.0.1/doc/vorbisenc/vorbis_encode_ctl.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -libvorbisenc - function - vorbis_encode_ctl - - - - - - - - - -

      libvorbisenc documentation

      libvorbisenc version 1.1.2.2 - 20001104

      - -

      vorbis_encode_ctl

      - -

      declared in "vorbis/libvorbisenc.h";

      - -

      This function is part of the libvorbisenc API, but has not yet been implemented. -

      However, the API call is set and will not change. -

      -

      - - - - -
      -
      
      -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
      -
      -
      -
      - -

      Parameters

      -
      -
      vi
      -
      File pointer to an initialized vorbis_info struct.
      -
      number
      -
      Not yet implemented.
      -
      arg
      -
      Not yet implemented.
      - - -

      Return Values

      -
      -
    • -
    • OV_EIMPL is always returned, as this function has not yet been implemented.
    • -
      -

      - -

      -


      - - - - - - - - -

      copyright © 2000 xiph.org

      Ogg Vorbis
      team@vorbis.org

      libvorbisenc documentation

      libvorbisenc version 1.1.2.2 - 20001106

      - - - - - diff --git a/libvorbis-1.0.1/doc/vorbisfile/Makefile.in b/libvorbis-1.0.1/doc/vorbisfile/Makefile.in deleted file mode 100644 index d2b2d2c..0000000 --- a/libvorbis-1.0.1/doc/vorbisfile/Makefile.in +++ /dev/null @@ -1,238 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisfile - -doc_DATA = OggVorbis_File.html callbacks.html chaining_example_c.html chainingexample.html crosslap.html datastructures.html decoding.html example.html exampleindex.html fileinfo.html index.html initialization.html ov_bitrate.html ov_bitrate_instant.html ov_callbacks.html ov_clear.html ov_comment.html ov_crosslap.html ov_info.html ov_open.html ov_open_callbacks.html ov_pcm_seek.html ov_pcm_seek_lap.html ov_pcm_seek_page.html ov_pcm_seek_page_lap.html ov_pcm_tell.html ov_pcm_total.html ov_raw_seek.html ov_raw_seek_lap.html ov_raw_tell.html ov_raw_total.html ov_read.html ov_read_float.html ov_seekable.html ov_serialnumber.html ov_streams.html ov_test.html ov_test_callbacks.html ov_test_open.html ov_time_seek.html ov_time_seek_lap.html ov_time_seek_page.html ov_time_seek_page_lap.html ov_time_tell.html ov_time_total.html overview.html reference.html return.html seekexample.html seeking.html seeking_example_c.html seeking_test_c.html seekingexample.html style.css threads.html vorbis_comment.html vorbis_info.html vorbisfile_example_c.html - - -EXTRA_DIST = $(doc_DATA) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DATA = $(doc_DATA) - -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps doc/vorbisfile/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -install-docDATA: $(doc_DATA) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(docdir) - @list='$(doc_DATA)'; for p in $$list; do \ - if test -f $(srcdir)/$$p; then \ - echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p; \ - else if test -f $$p; then \ - echo " $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p"; \ - $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p; \ - fi; fi; \ - done - -uninstall-docDATA: - @$(NORMAL_UNINSTALL) - list='$(doc_DATA)'; for p in $$list; do \ - rm -f $(DESTDIR)$(docdir)/$$p; \ - done -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = doc/vorbisfile - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: install-docDATA -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-docDATA -uninstall: uninstall-am -all-am: Makefile $(DATA) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(docdir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: uninstall-docDATA install-docDATA tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/doc/vorbisfile/chaining_example_c.html b/libvorbis-1.0.1/doc/vorbisfile/chaining_example_c.html deleted file mode 100644 index a1be652..0000000 --- a/libvorbis-1.0.1/doc/vorbisfile/chaining_example_c.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -vorbisfile - chaining_example.c - - - - - - - - - -

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - -

      chaining_example.c

      - -

      -The example program source: - -

      - - - - -
      -
      
      -
      -#include 
      -#include 
      -
      -int main(){
      -  OggVorbis_File ov;
      -  int i;
      -
      -  /* open the file/pipe on stdin */
      -  if(ov_open(stdin,&ov,NULL,-1)<0){
      -    printf("Could not open input as an OggVorbis file.\n\n");
      -    exit(1);
      -  }
      -  
      -  /* print details about each logical bitstream in the input */
      -  if(ov_seekable(&ov)){
      -    printf("Input bitstream contained %ld logical bitstream section(s).\n",
      -	   ov_streams(&ov));
      -    printf("Total bitstream playing time: %ld seconds\n\n",
      -	   (long)ov_time_total(&ov,-1));
      -
      -  }else{
      -    printf("Standard input was not seekable.\n"
      -	   "First logical bitstream information:\n\n");
      -  }
      -
      -  for(i=0;irate,vi->channels,ov_bitrate(&ov,i)/1000,
      -	   ov_serialnumber(&ov,i));
      -    printf("\t\tcompressed length: %ld bytes ",(long)(ov_raw_total(&ov,i)));
      -    printf(" play time: %lds\n",(long)ov_time_total(&ov,i));
      -  }
      -
      -  ov_clear(&ov);
      -  return 0;
      -}
      -
      -
      -
      - - -

      -


      - - - - - - - - -

      copyright © 2003 Xiph.org

      Ogg Vorbis
      team@vorbis.org

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_callbacks.html b/libvorbis-1.0.1/doc/vorbisfile/ov_callbacks.html deleted file mode 100644 index 8a01daf..0000000 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_callbacks.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Vorbisfile - datatype - ov_callbacks - - - - - - - - - -

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - -

      ov_callbacks

      - -

      declared in "vorbis/codec.h"

      - -

      -The ov_callbacks structure contains file manipulation function prototypes necessary for opening, closing, seeking, and location. - -

      -The ov_callbacks structure does not need to be user-defined if you are -working with stdio-based file manipulation; the ov_open() call provides default callbacks for -stdio. ov_callbacks are defined and passed to ov_open_callbacks() when -implementing non-stdio based stream manipulation (such as playback -from a memory buffer). -

      - - - - - -
      -
      typedef struct {
      -  size_t (*read_func)  (void *ptr, size_t size, size_t nmemb, void *datasource);
      -  int    (*seek_func)  (void *datasource, ogg_int64_t offset, int whence);
      -  int    (*close_func) (void *datasource);
      -  long   (*tell_func)  (void *datasource);
      -} ov_callbacks;
      -
      - -

      Relevant Struct Members

      -
      -
      read_func
      -
      Pointer to custom data reading function.
      -
      seek_func
      -
      Pointer to custom data seeking function. If the data source is not seekable (or the application wants the data source to be treated as unseekable at all times), the provided seek callback should always return -1 (failure).
      -
      close_func
      -
      Pointer to custom data source closure function.
      -
      tell_func
      -
      Pointer to custom data location function.
      -
      - -

      - -See the callbacks and non-stdio I/O document for more -detailed information on required behavior of the various callback -functions.

      - -

      -


      - - - - - - - - -

      copyright © 2003 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_open.html b/libvorbis-1.0.1/doc/vorbisfile/ov_open.html deleted file mode 100644 index ba53031..0000000 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_open.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Vorbisfile - function - ov_open - - - - - - - - - -

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - -

      ov_open

      - -

      declared in "vorbis/vorbisfile.h";

      - -

      This is the main function used to open and initialize an OggVorbis_File -structure. It sets up all the related decoding structure. -

      The first argument must be a file pointer to an already opened file -or pipe (it need not be seekable--though this obviously restricts what -can be done with the bitstream). vf should be a pointer to the -OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile -functions. Once this has been called, the same OggVorbis_File -struct should be passed to all the libvorbisfile functions. -

      Also, you should be aware that ov_open(), once successful, takes complete possession of the file resource. After you have opened a file using ov_open(), you MUST close it using ov_clear(), not fclose() or any other function. -

      -It is often useful to call ov_open() -simply to determine whether a given file is a vorbis bitstream. If the -ov_open() -call fails, then the file is not recognizable as such. -When you use ov_open() -for -this, you should fclose() the file pointer if, and only if, the -ov_open() -call fails. If it succeeds, you must call ov_clear() to clear -the decoder's buffers and close the file for you.

      - -(Note that ov_test() provides a less expensive way to test a file for Vorbisness.)

      - -

      - - - - -
      -
      
      -int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
      -
      -
      - -

      Parameters

      -
      -
      f
      -
      File pointer to an already opened file -or pipe (it need not be seekable--though this obviously restricts what -can be done with the bitstream).
      -
      vf
      -
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile -functions. Once this has been called, the same OggVorbis_File -struct should be passed to all the libvorbisfile functions.
      -
      initial
      -
      Typically set to NULL. This parameter is useful if some data has already been -read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial -should be a pointer to a buffer containing the data read.
      -
      ibytes
      -
      Typically set to 0. This parameter is useful if some data has already been -read from the file and the stream is not seekable. In this case, ibytes -should contain the length (in bytes) of the buffer. Used together with initial
      -
      - - -

      Return Values

      -
      -
    • 0 indicates success
    • - -
    • less than zero for failure:
    • -
        -
      • OV_EREAD - A read from media returned an error.
      • -
      • OV_ENOTVORBIS - Bitstream is not Vorbis data.
      • -
      • OV_EVERSION - Vorbis version mismatch.
      • -
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • -
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • -
      -
      -

      - -

      Notes

      -

      If your decoder is threaded, it is recommended that you NOT call -ov_open() -in the main control thread--instead, call ov_open() IN your decode/playback -thread. This is important because ov_open() may be a fairly time-consuming -call, given that the full structure of the file is determined at this point, -which may require reading large parts of the file under certain circumstances -(determining all the logical bitstreams in one physical bitstream, for -example). See Thread Safety for other information on using libvorbisfile with threads. - - -

      -


      - - - - - - - - -

      copyright © 2003 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisfile/ov_open_callbacks.html b/libvorbis-1.0.1/doc/vorbisfile/ov_open_callbacks.html deleted file mode 100644 index a823f2e..0000000 --- a/libvorbis-1.0.1/doc/vorbisfile/ov_open_callbacks.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Vorbisfile - function - ov_open_callbacks - - - - - - - - - -

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - -

      ov_open_callbacks

      - -

      declared in "vorbis/vorbisfile.h";

      - -

      This is an alternative function used to open and initialize an OggVorbis_File -structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structure. -

      Once this has been called, the same OggVorbis_File -struct should be passed to all the libvorbisfile functions. -

      -It is often useful to call ov_open_callbacks() -simply to determine whether a given file is a vorbis bitstream. If the -ov_open_callbacks() -call fails, then the file is not recognizable as such. When you use ov_open_callbacks() -for -this, you should fclose() the file pointer if, and only if, the -ov_open_callbacks() -call fails. If it succeeds, you must call ov_clear() to clear -the decoder's buffers and close the file for you.

      - -See also Callbacks and Non-stdio I/O for information on designing and specifying the required callback functions.

      - -

      - - - - -
      -
      
      -int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks callbacks);
      -
      -
      - -

      Parameters

      -
      -
      f
      -
      File pointer to an already opened file -or pipe (it need not be seekable--though this obviously restricts what -can be done with the bitstream).
      -
      vf
      -
      A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisfile -functions. Once this has been called, the same OggVorbis_File -struct should be passed to all the libvorbisfile functions.
      -
      initial
      -
      Typically set to NULL. This parameter is useful if some data has already been -read from the file and the stream is not seekable. It is used in conjunction with ibytes. In this case, initial -should be a pointer to a buffer containing the data read.
      -
      ibytes
      -
      Typically set to 0. This parameter is useful if some data has already been -read from the file and the stream is not seekable. In this case, ibytes -should contain the length (in bytes) of the buffer. Used together with initial.
      -
      callbacks
      -
      Pointer to a completed ov_callbacks struct which indicates desired custom file manipulation routines.
      -
      - - -

      Return Values

      -
      -
    • 0 for success
    • -
    • less than zero for failure:
    • -
        -
      • OV_EREAD - A read from media returned an error.
      • -
      • OV_ENOTVORBIS - Bitstream is not Vorbis data.
      • -
      • OV_EVERSION - Vorbis version mismatch.
      • -
      • OV_EBADHEADER - Invalid Vorbis bitstream header.
      • -
      • OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.
      • -
      -
      -

      - -

      Notes

      -

      If your decoder is threaded, it is recommended that you NOT call -ov_open_callbacks() -in the main control thread--instead, call ov_open_callbacks() IN your decode/playback -thread. This is important because ov_open_callbacks() may be a fairly time-consuming -call, given that the full structure of the file is determined at this point, -which may require reading large parts of the file under certain circumstances -(determining all the logical bitstreams in one physical bitstream, for -example). -See Thread Safety for other information on using libvorbisfile with threads. - -

      -


      - - - - - - - - -

      copyright © 2003 Xiph.org

      Ogg Vorbis

      Vorbisfile documentation

      vorbisfile version 1.68 - 20030307

      - - - - diff --git a/libvorbis-1.0.1/doc/vorbisword2.png b/libvorbis-1.0.1/doc/vorbisword2.png deleted file mode 100644 index 121689c5fb5062251ffc46c57d208659e437683c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1394 zcmV-&1&#WNP)T`tIy`!Mc^)1dVrFFS z{_Nu7kE00202MObuGZ)S9NVRB^vSXLlbWpZSuRRjpsom(@dadVzFI9?`n0GjS%) z#F;n~XW~qpi8FB~&cvBG6KCT56&!l{?;AkzD>!cBCZ368m!qi@NQHC>M=}dC(Bm(O z4cdG4<%0zFY#1F6uUBxqY0zIlx_G3)di=fxNGl3}$9%vHJgUxcz%RxH9H!BHDZazw zy~ef^vSSabU$BnxK9<(3g;NoC3FXUc(n;DfTAx zIAE<}%CI0N5;KkEbr7R2xukNS1O_A=zCafYqaiq3fOX;HLu4FNrBRiHz+@M!oY9Aw z1rfBEjmNL>_DVzYyVhuD7{?K3IJj$84tcwZ);lMC&jPp5bi4)6lfyKskiiK6Q2w+1o^#L#+?RdW{IG%18Y*H8_x2;VO

      |kqM ztK^%zI3*X?T#GUf;fOBL#MtR^;0#B0g%0tj=?&7D>Ml+hUvw}iIGS-B*9vvO6H%pI z3YfslB?G@4`q<&c^(M6I{$n^h*tprCQJfIzrp-H$;zUNi=s+nc>9&+eQ(Jw^iyy=} zemx{oOQTgmyJ^dG6ugiXc|%!$i{UHOH`^3*C^B8Z!5f@C77aLx;~E?)wut*}Z-!ne zn!2c&j&0^@_nW-*fU*fw{Me4-P!k4_W-5Kkck*b}c%N>BIr`|lJhrA z#7*8&RT5rCaRLEU+c)g@bjcBU@9pkxvi%}1x8l&wRh_zEkaBFR0<=}_H@>+R?dE#h zbL61l1~Pha-RbD;WTy7T+A_soY!^Hq}ovzdBo6{%))=t}!zw)ycWHEJAV*0}P<~|{l>h($07*qoM6N<$g6}$v AUH||9 diff --git a/libvorbis-1.0.1/doc/wait.png b/libvorbis-1.0.1/doc/wait.png deleted file mode 100644 index a8b544c98072a90d0f0c9d14a2f79f066795c0fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U_3?xrvihTr9Ea{HEjtmSN`?>!lvI6;X0X`wF zK)RuY;m03_4O&nam-{(fU+gmllrfs~d^7*-E zymZa%aK~5w57Z0Kx)3@-Qk-Qp^x+Ti`0eZ(vYHr*#KW4J5N~x~b6Td56 zM|j-agRZzt-W2IB(zhvh%K1G8{O8`>Z9RGOZg@scc;e-wm-pS)o8>pRICl9%6D48p z=)Ps*kttV=UYqw3W!8b7_RiQkyBtya7(>I_lRdy;+1%s!npUXO@geCwi524Ed diff --git a/libvorbis-1.0.1/doc/white-ogg.png b/libvorbis-1.0.1/doc/white-ogg.png deleted file mode 100644 index 4f4ed39ceab596e138f56aac897980f526f76488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1422 zcmV;91#$X`P)O^6vqc7vGf~QSO^bM&@W&Uw0e+24QccX2q_d>tpY-- zgj8BsMX)f95YR6W3qf9r*xB1Wl)U=+oBa3v_w2cMX7|q9*|)_mhh=tlX6|p!`QLNS zo!#zyFJIjO>wtB@I$#~Jt`O_&ztg{;Kiw}ZnErbD+r#^Jqg_1~e!>zKpnIV$$bR|t z2itaII$c}1M?gRQ*xR0Bv1c!W2$slT`sdN-&mMlpM|{Rdc3!2nj3sZe=gHkqzQ6Oq zx1YX`UB-WxN~bZ7+JnzT#yd8d?6O&&fg=_ljYVV?++AZ;oq-EQhOxa_QlP2C+FBHSU28#17lQ7d?gv-llFIng^b{^sM!!%3Md~5A6Oi-3oIZoF$oLL z4LOVhAe#`%W-Pmk2(rPu6b5UleH=C|lwE5I6_#l56Wi8)RrqpPYv`QwKr*1B<1}w%i0V4@Z>E1aaqIepr9MvB*e0}uU2Ar*hmx>}pwum_=&cE>kFHhk@`vl4L&>(7 zA{OuN5Vwz|b&jQ@vDLbWzzNg&OjxawYQQ1{%2IBEO{UsnvlopuS1PO&0T6q&sR&^xDZzH)XAyY=8` zUMxe{gd!}H!66_UduGIvq+$d$%Y-W|dPDnZVJFvKfAZQ8mJYuC@9l|LoatfSe)d+x ziVnN^{6=Du;jr;*-aq|r3Kplu!9*6lh0$YGnJ~OkUNarG5ta)DgOLdzzxX)~`SIhU zgjI$w+TeX&96(-NgQdPj4J0)V#gtfBOz3DXDLrAOQOm=s9<5-h@l~r?#bUp)#$AOa zU6+R;jP*gJIZ+j3Y}~e#XSf_f7S@QWs?NZ3@koG1tZBkzH(J{0`l#U zyy6_>-2U`hpwS=Jm3Kqz%A50$#;UrCIg!XbYCKqD>i`YMOPT?9#amG*oU^#OmmJB6 zU>5rY1h|kzERUM7`r8iri%d(bEZ&f;-H!GP=m$rPn#F#yBD=m2)l?r3UhE0_(^o6n z$}=vUPnvKq8kc@@n2cMLepR6pmK?AgB4And`pT|aU=1-bKrAw8MH*WP-km#o*%hi^ zB+>x7V6BC_$6Bc{fk_FyY?tHuJ@yxbTRV9#RUfY$OW{xg>!KUugtDZ{t|m6h{)$u7 z5Asz~{ZfcUqJkJ8ETxGqIh-3sPl?H`aOz0aC>zUb{3Ne*+Z**;&L1v$XLr7_%u8>T zjk2*EL`wcr&XMe7Mb~TkEgZ2kLv{nVvP+^{qRi>_pRehf3JYG!!8)0cZ$f!Nm@x7r4#vI`#tFVR^&@Ra%E%I0g z(YxxU*m>7RT-3+OD7}+BV-V;1^;J(6tKo}SF^I_A!JP|>>yE^(nogB?*}wI_YINgk z=;XGDMG%|j{B$goJL0V*FIAWg)8l1V)n(w~vk=!DH!$b(yt?scA*pLfdOx4-)r~*< zt0D?(yHjudVn5Ys3oCkVyMOfA^cjS6Rmxrp<*fhQTJvZ`e{e`oM5jH?-v09~;4JnX cILWX70p}Sv(8EskzW@LL07*qoM6N<$g8DVFV*mgE diff --git a/libvorbis-1.0.1/doc/white-xifish.png b/libvorbis-1.0.1/doc/white-xifish.png deleted file mode 100644 index eb331dbfc336f34e04412c27fd44be567591c0ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 965 zcmV;$13LVPP)E#n{#gze7qGDeOKzJ3 zad48c$9|9$Gfs2(`2_>~`F^5o1hB33_VrEvuf){gLYiD}aU(u%G^n`7i<6dbi<)A- zWKUK%|NsAe>EeF?00202MObuGZ)S9NVRB^vSXLlbWpZcX@O}K zhV4d{x&N!&q@0z`Xdd+k_>$zyp}_as2B{l;^DfdiRr4OwH%*mdAVn~eU?4>Za?U`C zh{!1eDPls-7)TK_a>780SdeE1QbbcZ=S~?oCx#IX02t+-88{?@u;qcF>xjDEXz#raXf{s=23F!`nyv@vI<#I)7n=yoAP%g|4(TO{J4aP@oe?C+ z7ZyL6k{T&x#uX7CSfHfRHOA|Uzj&*C5o0U4I&)$zEJ!m9iZj5m7vjQ+cFq}+#t#ACNKY5;C!SMY9y!o)Dp@yC z!A#Gd#$Oq(ghS~~{^0#__L-4&hv=N*aM)BVUbN1|2p z2>rB^=?tNtH$Oci^xOGDj|lyKiqR3FSI$b>BlOydOdCS4p8K>Q^!nSy+&lEnJB;*b zf=Iq8@eZMP-^VCLeE$ba2Hee-3I(75000McNliru&;}3&AQoh9`SAb%02XvbSad^g nZEa<4bO23ZWMv?CX>@2HM@dakeq|k%00000NkvXXu0mjf0hpin diff --git a/libvorbis-1.0.1/doc/window1.png b/libvorbis-1.0.1/doc/window1.png deleted file mode 100644 index e209631ef9a7dab698fd3235df416de4f4fdc0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1953 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 diff --git a/libvorbis-1.0.1/examples/Makefile.am b/libvorbis-1.0.1/examples/Makefile.am deleted file mode 100644 index c58d4d7..0000000 --- a/libvorbis-1.0.1/examples/Makefile.am +++ /dev/null @@ -1,27 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ - -noinst_PROGRAMS = decoder_example encoder_example chaining_example\ - vorbisfile_example seeking_example - -LDFLAGS = -all-static -LDADD = ../lib/libvorbis.la - -decoder_example_SOURCES = decoder_example.c -encoder_example_SOURCES = encoder_example.c -encoder_example_LDADD = ../lib/libvorbisenc.la ../lib/libvorbis.la -chaining_example_SOURCES = chaining_example.c -chaining_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la -vorbisfile_example_SOURCES = vorbisfile_example.c -vorbisfile_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la -seeking_example_SOURCES = seeking_example.c -seeking_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" diff --git a/libvorbis-1.0.1/examples/Makefile.in b/libvorbis-1.0.1/examples/Makefile.in deleted file mode 100644 index 70e64d8..0000000 --- a/libvorbis-1.0.1/examples/Makefile.in +++ /dev/null @@ -1,392 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ - -noinst_PROGRAMS = decoder_example encoder_example chaining_example vorbisfile_example seeking_example - - -LDFLAGS = -all-static -LDADD = ../lib/libvorbis.la - -decoder_example_SOURCES = decoder_example.c -encoder_example_SOURCES = encoder_example.c -encoder_example_LDADD = ../lib/libvorbisenc.la ../lib/libvorbis.la -chaining_example_SOURCES = chaining_example.c -chaining_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la -vorbisfile_example_SOURCES = vorbisfile_example.c -vorbisfile_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la -seeking_example_SOURCES = seeking_example.c -seeking_example_LDADD = ../lib/libvorbisfile.la ../lib/libvorbis.la -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -noinst_PROGRAMS = decoder_example$(EXEEXT) encoder_example$(EXEEXT) \ -chaining_example$(EXEEXT) vorbisfile_example$(EXEEXT) \ -seeking_example$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) - - -DEFS = @DEFS@ -I. -I$(srcdir) -CPPFLAGS = @CPPFLAGS@ -decoder_example_OBJECTS = decoder_example.$(OBJEXT) -decoder_example_LDADD = $(LDADD) -decoder_example_DEPENDENCIES = ../lib/libvorbis.la -decoder_example_LDFLAGS = -encoder_example_OBJECTS = encoder_example.$(OBJEXT) -encoder_example_DEPENDENCIES = ../lib/libvorbisenc.la \ -../lib/libvorbis.la -encoder_example_LDFLAGS = -chaining_example_OBJECTS = chaining_example.$(OBJEXT) -chaining_example_DEPENDENCIES = ../lib/libvorbisfile.la \ -../lib/libvorbis.la -chaining_example_LDFLAGS = -vorbisfile_example_OBJECTS = vorbisfile_example.$(OBJEXT) -vorbisfile_example_DEPENDENCIES = ../lib/libvorbisfile.la \ -../lib/libvorbis.la -vorbisfile_example_LDFLAGS = -seeking_example_OBJECTS = seeking_example.$(OBJEXT) -seeking_example_DEPENDENCIES = ../lib/libvorbisfile.la \ -../lib/libvorbis.la -seeking_example_LDFLAGS = -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(decoder_example_SOURCES) $(encoder_example_SOURCES) $(chaining_example_SOURCES) $(vorbisfile_example_SOURCES) $(seeking_example_SOURCES) -OBJECTS = $(decoder_example_OBJECTS) $(encoder_example_OBJECTS) $(chaining_example_OBJECTS) $(vorbisfile_example_OBJECTS) $(seeking_example_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps examples/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-noinstPROGRAMS: - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -distclean-noinstPROGRAMS: - -maintainer-clean-noinstPROGRAMS: - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -decoder_example$(EXEEXT): $(decoder_example_OBJECTS) $(decoder_example_DEPENDENCIES) - @rm -f decoder_example$(EXEEXT) - $(LINK) $(decoder_example_LDFLAGS) $(decoder_example_OBJECTS) $(decoder_example_LDADD) $(LIBS) - -encoder_example$(EXEEXT): $(encoder_example_OBJECTS) $(encoder_example_DEPENDENCIES) - @rm -f encoder_example$(EXEEXT) - $(LINK) $(encoder_example_LDFLAGS) $(encoder_example_OBJECTS) $(encoder_example_LDADD) $(LIBS) - -chaining_example$(EXEEXT): $(chaining_example_OBJECTS) $(chaining_example_DEPENDENCIES) - @rm -f chaining_example$(EXEEXT) - $(LINK) $(chaining_example_LDFLAGS) $(chaining_example_OBJECTS) $(chaining_example_LDADD) $(LIBS) - -vorbisfile_example$(EXEEXT): $(vorbisfile_example_OBJECTS) $(vorbisfile_example_DEPENDENCIES) - @rm -f vorbisfile_example$(EXEEXT) - $(LINK) $(vorbisfile_example_LDFLAGS) $(vorbisfile_example_OBJECTS) $(vorbisfile_example_LDADD) $(LIBS) - -seeking_example$(EXEEXT): $(seeking_example_OBJECTS) $(seeking_example_DEPENDENCIES) - @rm -f seeking_example$(EXEEXT) - $(LINK) $(seeking_example_LDFLAGS) $(seeking_example_OBJECTS) $(seeking_example_LDADD) $(LIBS) - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = examples - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -chaining_example.o: chaining_example.c ../include/vorbis/codec.h \ - ../include/vorbis/vorbisfile.h -decoder_example.o: decoder_example.c ../include/vorbis/codec.h -encoder_example.o: encoder_example.c ../include/vorbis/vorbisenc.h \ - ../include/vorbis/codec.h -seeking_example.o: seeking_example.c ../include/vorbis/codec.h \ - ../include/vorbis/vorbisfile.h -vorbisfile_example.o: vorbisfile_example.c ../include/vorbis/codec.h \ - ../include/vorbis/vorbisfile.h - -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile $(PROGRAMS) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \ - clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-noinstPROGRAMS distclean-compile \ - distclean-libtool distclean-tags distclean-generic \ - clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-noinstPROGRAMS \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ -clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile mostlyclean-libtool distclean-libtool \ -clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/examples/decoder_example.c b/libvorbis-1.0.1/examples/decoder_example.c deleted file mode 100644 index 209e77f..0000000 --- a/libvorbis-1.0.1/examples/decoder_example.c +++ /dev/null @@ -1,307 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: simple example decoder - last mod: $Id: decoder_example.c,v 1.27 2002/07/12 15:07:52 giles Exp $ - - ********************************************************************/ - -/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to - stdout. Decodes simple and chained OggVorbis files from beginning - to end. Vorbisfile.a is somewhat more complex than the code below. */ - -/* Note that this is POSIX, not ANSI code */ - -#include -#include -#include -#include - -#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ -#include -#include -#endif - -#if defined(__MACOS__) && defined(__MWERKS__) -#include /* CodeWarrior's Mac "command-line" support */ -#endif - -ogg_int16_t convbuffer[4096]; /* take 8k out of the data segment, not the stack */ -int convsize=4096; - -extern void _VDBG_dump(void); - -int main(){ - ogg_sync_state oy; /* sync and verify incoming physical bitstream */ - ogg_stream_state os; /* take physical pages, weld into a logical - stream of packets */ - ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */ - ogg_packet op; /* one raw packet of data for decode */ - - vorbis_info vi; /* struct that stores all the static vorbis bitstream - settings */ - vorbis_comment vc; /* struct that stores all the bitstream user comments */ - vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ - vorbis_block vb; /* local working space for packet->PCM decode */ - - char *buffer; - int bytes; - -#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ - /* Beware the evil ifdef. We avoid these where we can, but this one we - cannot. Don't add any more, you'll probably go to hell if you do. */ - _setmode( _fileno( stdin ), _O_BINARY ); - _setmode( _fileno( stdout ), _O_BINARY ); -#endif - -#if defined(macintosh) && defined(__MWERKS__) - { - int argc; - char **argv; - argc=ccommand(&argv); /* get a "command line" from the Mac user */ - /* this also lets the user set stdin and stdout */ - } -#endif - - /********** Decode setup ************/ - - ogg_sync_init(&oy); /* Now we can read pages */ - - while(1){ /* we repeat if the bitstream is chained */ - int eos=0; - int i; - - /* grab some data at the head of the stream. We want the first page - (which is guaranteed to be small and only contain the Vorbis - stream initial header) We need the first page to get the stream - serialno. */ - - /* submit a 4k block to libvorbis' Ogg layer */ - buffer=ogg_sync_buffer(&oy,4096); - bytes=fread(buffer,1,4096,stdin); - ogg_sync_wrote(&oy,bytes); - - /* Get the first page. */ - if(ogg_sync_pageout(&oy,&og)!=1){ - /* have we simply run out of data? If so, we're done. */ - if(bytes<4096)break; - - /* error case. Must not be Vorbis data */ - fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); - exit(1); - } - - /* Get the serial number and set up the rest of decode. */ - /* serialno first; use it to set up a logical stream */ - ogg_stream_init(&os,ogg_page_serialno(&og)); - - /* extract the initial header from the first page and verify that the - Ogg bitstream is in fact Vorbis data */ - - /* I handle the initial header first instead of just having the code - read all three Vorbis headers at once because reading the initial - header is an easy way to identify a Vorbis bitstream and it's - useful to see that functionality seperated out. */ - - vorbis_info_init(&vi); - vorbis_comment_init(&vc); - if(ogg_stream_pagein(&os,&og)<0){ - /* error; stream version mismatch perhaps */ - fprintf(stderr,"Error reading first page of Ogg bitstream data.\n"); - exit(1); - } - - if(ogg_stream_packetout(&os,&op)!=1){ - /* no page? must not be vorbis */ - fprintf(stderr,"Error reading initial header packet.\n"); - exit(1); - } - - if(vorbis_synthesis_headerin(&vi,&vc,&op)<0){ - /* error case; not a vorbis header */ - fprintf(stderr,"This Ogg bitstream does not contain Vorbis " - "audio data.\n"); - exit(1); - } - - /* At this point, we're sure we're Vorbis. We've set up the logical - (Ogg) bitstream decoder. Get the comment and codebook headers and - set up the Vorbis decoder */ - - /* The next two packets in order are the comment and codebook headers. - They're likely large and may span multiple pages. Thus we reead - and submit data until we get our two pacakets, watching that no - pages are missing. If a page is missing, error out; losing a - header page is the only place where missing data is fatal. */ - - i=0; - while(i<2){ - while(i<2){ - int result=ogg_sync_pageout(&oy,&og); - if(result==0)break; /* Need more data */ - /* Don't complain about missing or corrupt data yet. We'll - catch it at the packet output phase */ - if(result==1){ - ogg_stream_pagein(&os,&og); /* we can ignore any errors here - as they'll also become apparent - at packetout */ - while(i<2){ - result=ogg_stream_packetout(&os,&op); - if(result==0)break; - if(result<0){ - /* Uh oh; data at some point was corrupted or missing! - We can't tolerate that in a header. Die. */ - fprintf(stderr,"Corrupt secondary header. Exiting.\n"); - exit(1); - } - vorbis_synthesis_headerin(&vi,&vc,&op); - i++; - } - } - } - /* no harm in not checking before adding more */ - buffer=ogg_sync_buffer(&oy,4096); - bytes=fread(buffer,1,4096,stdin); - if(bytes==0 && i<2){ - fprintf(stderr,"End of file before finding all Vorbis headers!\n"); - exit(1); - } - ogg_sync_wrote(&oy,bytes); - } - - /* Throw the comments plus a few lines about the bitstream we're - decoding */ - { - char **ptr=vc.user_comments; - while(*ptr){ - fprintf(stderr,"%s\n",*ptr); - ++ptr; - } - fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi.channels,vi.rate); - fprintf(stderr,"Encoded by: %s\n\n",vc.vendor); - } - - convsize=4096/vi.channels; - - /* OK, got and parsed all three headers. Initialize the Vorbis - packet->PCM decoder. */ - vorbis_synthesis_init(&vd,&vi); /* central decode state */ - vorbis_block_init(&vd,&vb); /* local state for most of the decode - so multiple block decodes can - proceed in parallel. We could init - multiple vorbis_block structures - for vd here */ - - /* The rest is just a straight decode loop until end of stream */ - while(!eos){ - while(!eos){ - int result=ogg_sync_pageout(&oy,&og); - if(result==0)break; /* need more data */ - if(result<0){ /* missing or corrupt data at this page position */ - fprintf(stderr,"Corrupt or missing data in bitstream; " - "continuing...\n"); - }else{ - ogg_stream_pagein(&os,&og); /* can safely ignore errors at - this point */ - while(1){ - result=ogg_stream_packetout(&os,&op); - - if(result==0)break; /* need more data */ - if(result<0){ /* missing or corrupt data at this page position */ - /* no reason to complain; already complained above */ - }else{ - /* we have a packet. Decode it */ - float **pcm; - int samples; - - if(vorbis_synthesis(&vb,&op)==0) /* test for success! */ - vorbis_synthesis_blockin(&vd,&vb); - /* - - **pcm is a multichannel float vector. In stereo, for - example, pcm[0] is left, and pcm[1] is right. samples is - the size of each channel. Convert the float values - (-1.<=range<=1.) to whatever PCM format and write it out */ - - while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){ - int j; - int clipflag=0; - int bout=(samples32767){ - val=32767; - clipflag=1; - } - if(val<-32768){ - val=-32768; - clipflag=1; - } - *ptr=val; - ptr+=vi.channels; - } - } - - if(clipflag) - fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence)); - - - fwrite(convbuffer,2*vi.channels,bout,stdout); - - vorbis_synthesis_read(&vd,bout); /* tell libvorbis how - many samples we - actually consumed */ - } - } - } - if(ogg_page_eos(&og))eos=1; - } - } - if(!eos){ - buffer=ogg_sync_buffer(&oy,4096); - bytes=fread(buffer,1,4096,stdin); - ogg_sync_wrote(&oy,bytes); - if(bytes==0)eos=1; - } - } - - /* clean up this logical bitstream; before exit we see if we're - followed by another [chained] */ - - ogg_stream_clear(&os); - - /* ogg_page and ogg_packet structs always point to storage in - libvorbis. They're never freed or manipulated directly */ - - vorbis_block_clear(&vb); - vorbis_dsp_clear(&vd); - vorbis_comment_clear(&vc); - vorbis_info_clear(&vi); /* must be called last */ - } - - /* OK, clean up the framer */ - ogg_sync_clear(&oy); - - fprintf(stderr,"Done.\n"); - return(0); -} diff --git a/libvorbis-1.0.1/examples/seeking_example.c b/libvorbis-1.0.1/examples/seeking_example.c deleted file mode 100644 index 32fc1e9..0000000 --- a/libvorbis-1.0.1/examples/seeking_example.c +++ /dev/null @@ -1,217 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: illustrate seeking, and test it too - last mod: $Id: seeking_example.c,v 1.15 2002/07/11 06:40:47 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include "vorbis/codec.h" -#include "vorbis/vorbisfile.h" - -#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ -# include -# include -#endif - -void _verify(OggVorbis_File *ov,ogg_int64_t pos, - ogg_int64_t val,ogg_int64_t pcmval, - ogg_int64_t pcmlength, - char *bigassbuffer){ - int j; - long bread; - char buffer[4096]; - int dummy; - - /* verify the raw position, the pcm position and position decode */ - if(val!=-1 && ov_raw_tell(ov)pcmval){ - printf("pcm position out of tolerance: requested %ld, got %ld\n", - (long)pcmval,(long)ov_pcm_tell(ov)); - exit(1); - } - pos=ov_pcm_tell(ov); - if(pos<0 || pos>pcmlength){ - printf("pcm position out of bounds: got %ld\n",(long)pos); - exit(1); - } - bread=ov_read(ov,buffer,4096,1,1,1,&dummy); - for(j=0;jchannels!=2){ - printf("Sorry; right now seeking_test can only use Vorbis files\n" - "that are entirely stereo.\n\n"); - exit(1); - } - } - - /* because we want to do sample-level verification that the seek - does what it claimed, decode the entire file into memory */ - fflush(stdout); - pcmlength=ov_pcm_total(&ov,-1); - bigassbuffer=malloc(pcmlength*2); /* w00t */ - i=0; - while(i /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/include/vorbis/Makefile.am b/libvorbis-1.0.1/include/vorbis/Makefile.am deleted file mode 100644 index 794e8cd..0000000 --- a/libvorbis-1.0.1/include/vorbis/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -includedir = $(prefix)/include/vorbis - -include_HEADERS = codec.h vorbisfile.h vorbisenc.h - - diff --git a/libvorbis-1.0.1/include/vorbis/Makefile.in b/libvorbis-1.0.1/include/vorbis/Makefile.in deleted file mode 100644 index 68f9c2b..0000000 --- a/libvorbis-1.0.1/include/vorbis/Makefile.in +++ /dev/null @@ -1,258 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -includedir = $(prefix)/include/vorbis - -include_HEADERS = codec.h vorbisfile.h vorbisenc.h -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -HEADERS = $(include_HEADERS) - -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps include/vorbis/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(includedir) - @list='$(include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ - echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \ - $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - list='$(include_HEADERS)'; for p in $$list; do \ - rm -f $(DESTDIR)$(includedir)/$$p; \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = include/vorbis - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: install-includeHEADERS -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: uninstall-includeHEADERS -uninstall: uninstall-am -all-am: Makefile $(HEADERS) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - $(mkinstalldirs) $(DESTDIR)$(includedir) - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: uninstall-includeHEADERS install-includeHEADERS tags \ -mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ -distdir info-am info dvi-am dvi check check-am installcheck-am \ -installcheck install-exec-am install-exec install-data-am install-data \ -install-am install uninstall-am uninstall all-redirect all-am all \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/include/vorbis/vorbisenc.h b/libvorbis-1.0.1/include/vorbis/vorbisenc.h deleted file mode 100644 index ed2210a..0000000 --- a/libvorbis-1.0.1/include/vorbis/vorbisenc.h +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: vorbis encode-engine setup - last mod: $Id: vorbisenc.h,v 1.10 2002/07/01 11:20:10 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _OV_ENC_H_ -#define _OV_ENC_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "codec.h" - -extern int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -extern int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -extern int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - - float /* quality level from 0. (lo) to 1. (hi) */ - ); - -extern int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality /* quality level from 0. (lo) to 1. (hi) */ - ); - -extern int vorbis_encode_setup_init(vorbis_info *vi); - -extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -#define OV_ECTL_RATEMANAGE_GET 0x10 - -#define OV_ECTL_RATEMANAGE_SET 0x11 -#define OV_ECTL_RATEMANAGE_AVG 0x12 -#define OV_ECTL_RATEMANAGE_HARD 0x13 - -#define OV_ECTL_LOWPASS_GET 0x20 -#define OV_ECTL_LOWPASS_SET 0x21 - -#define OV_ECTL_IBLOCK_GET 0x30 -#define OV_ECTL_IBLOCK_SET 0x31 - -struct ovectl_ratemanage_arg { - int management_active; - - long bitrate_hard_min; - long bitrate_hard_max; - double bitrate_hard_window; - - long bitrate_av_lo; - long bitrate_av_hi; - double bitrate_av_window; - double bitrate_av_window_center; -}; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - - diff --git a/libvorbis-1.0.1/install-sh b/libvorbis-1.0.1/install-sh deleted file mode 100755 index d4744f0..0000000 --- a/libvorbis-1.0.1/install-sh +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# 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. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/libvorbis-1.0.1/lib/Makefile.in b/libvorbis-1.0.1/lib/Makefile.in deleted file mode 100644 index f3ff97c..0000000 --- a/libvorbis-1.0.1/lib/Makefile.in +++ /dev/null @@ -1,554 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -SUBDIRS = modes books - -INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ - -lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la - -libvorbis_la_SOURCES = mdct.c smallft.c block.c envelope.c window.c lsp.c lpc.c analysis.c synthesis.c psy.c info.c floor1.c floor0.c res0.c mapping0.c registry.c codebook.c sharedbook.c lookup.c bitrate.c envelope.h lpc.h lsp.h codebook.h misc.h psy.h masking.h os.h mdct.h smallft.h highlevel.h registry.h scales.h window.h lookup.h lookup_data.h codec_internal.h backends.h bitrate.h - -libvorbis_la_LDFLAGS = -no-undefined -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@ - -libvorbisfile_la_SOURCES = vorbisfile.c -libvorbisfile_la_LDFLAGS = -no-undefined -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@ -libvorbisfile_la_LIBADD = libvorbis.la - -libvorbisenc_la_SOURCES = vorbisenc.c -libvorbisenc_la_LDFLAGS = -no-undefined -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@ -libvorbisenc_la_LIBADD = libvorbis.la - -EXTRA_PROGRAMS = barkmel tone psytune -CLEANFILES = $(EXTRA_PROGRAMS) - -barkmel_SOURCES = barkmel.c -tone_SOURCES = tone.c -psytune_SOURCES = psytune.c -psytune_LDFLAGS = -static -psytune_LDADD = libvorbis.la - -EXTRA_DIST = lookups.pl -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(lib_LTLIBRARIES) - - -DEFS = @DEFS@ -I. -I$(srcdir) -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -libvorbis_la_LIBADD = -libvorbis_la_OBJECTS = mdct.lo smallft.lo block.lo envelope.lo \ -window.lo lsp.lo lpc.lo analysis.lo synthesis.lo psy.lo info.lo \ -floor1.lo floor0.lo res0.lo mapping0.lo registry.lo codebook.lo \ -sharedbook.lo lookup.lo bitrate.lo -libvorbisfile_la_DEPENDENCIES = libvorbis.la -libvorbisfile_la_OBJECTS = vorbisfile.lo -libvorbisenc_la_DEPENDENCIES = libvorbis.la -libvorbisenc_la_OBJECTS = vorbisenc.lo -barkmel_OBJECTS = barkmel.$(OBJEXT) -barkmel_LDADD = $(LDADD) -barkmel_DEPENDENCIES = -barkmel_LDFLAGS = -tone_OBJECTS = tone.$(OBJEXT) -tone_LDADD = $(LDADD) -tone_DEPENDENCIES = -tone_LDFLAGS = -psytune_OBJECTS = psytune.$(OBJEXT) -psytune_DEPENDENCIES = libvorbis.la -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(libvorbis_la_SOURCES) $(libvorbisfile_la_SOURCES) $(libvorbisenc_la_SOURCES) $(barkmel_SOURCES) $(tone_SOURCES) $(psytune_SOURCES) -OBJECTS = $(libvorbis_la_OBJECTS) $(libvorbisfile_la_OBJECTS) $(libvorbisenc_la_OBJECTS) $(barkmel_OBJECTS) $(tone_OBJECTS) $(psytune_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -mostlyclean-libLTLIBRARIES: - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - -distclean-libLTLIBRARIES: - -maintainer-clean-libLTLIBRARIES: - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(libdir) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ - $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ - else :; fi; \ - done - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ - done - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -libvorbis.la: $(libvorbis_la_OBJECTS) $(libvorbis_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libvorbis_la_LDFLAGS) $(libvorbis_la_OBJECTS) $(libvorbis_la_LIBADD) $(LIBS) - -libvorbisfile.la: $(libvorbisfile_la_OBJECTS) $(libvorbisfile_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libvorbisfile_la_LDFLAGS) $(libvorbisfile_la_OBJECTS) $(libvorbisfile_la_LIBADD) $(LIBS) - -libvorbisenc.la: $(libvorbisenc_la_OBJECTS) $(libvorbisenc_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libvorbisenc_la_LDFLAGS) $(libvorbisenc_la_OBJECTS) $(libvorbisenc_la_LIBADD) $(LIBS) - -barkmel$(EXEEXT): $(barkmel_OBJECTS) $(barkmel_DEPENDENCIES) - @rm -f barkmel$(EXEEXT) - $(LINK) $(barkmel_LDFLAGS) $(barkmel_OBJECTS) $(barkmel_LDADD) $(LIBS) - -tone$(EXEEXT): $(tone_OBJECTS) $(tone_DEPENDENCIES) - @rm -f tone$(EXEEXT) - $(LINK) $(tone_LDFLAGS) $(tone_OBJECTS) $(tone_LDADD) $(LIBS) - -psytune$(EXEEXT): $(psytune_OBJECTS) $(psytune_DEPENDENCIES) - @rm -f psytune$(EXEEXT) - $(LINK) $(psytune_LDFLAGS) $(psytune_OBJECTS) $(psytune_LDADD) $(LIBS) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -analysis.lo analysis.o : analysis.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h registry.h \ - scales.h -bitrate.lo bitrate.o : bitrate.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h -block.lo block.o : block.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h window.h lpc.h registry.h -codebook.lo codebook.o : codebook.c ../include/vorbis/codec.h codebook.h \ - scales.h os.h misc.h -envelope.lo envelope.o : envelope.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h scales.h -floor0.lo floor0.o : floor0.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h registry.h lpc.h lsp.h \ - scales.h -floor1.lo floor1.o : floor1.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h registry.h scales.h -info.lo info.o : info.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h registry.h window.h -lookup.lo lookup.o : lookup.c lookup.h lookup_data.h os.h misc.h \ - ../include/vorbis/codec.h -lpc.lo lpc.o : lpc.c os.h misc.h ../include/vorbis/codec.h smallft.h \ - lpc.h scales.h -lsp.lo lsp.o : lsp.c lsp.h os.h misc.h ../include/vorbis/codec.h \ - lookup.h scales.h lookup.c lookup_data.h -mapping0.lo mapping0.o : mapping0.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h window.h \ - registry.h lpc.h lsp.h scales.h -mdct.lo mdct.o : mdct.c ../include/vorbis/codec.h mdct.h os.h misc.h -psy.lo psy.o : psy.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h masking.h lpc.h scales.h -registry.lo registry.o : registry.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h registry.h -res0.lo res0.o : res0.c ../include/vorbis/codec.h codec_internal.h \ - envelope.h mdct.h codebook.h psy.h smallft.h backends.h \ - bitrate.h os.h misc.h highlevel.h registry.h -sharedbook.lo sharedbook.o : sharedbook.c os.h misc.h \ - ../include/vorbis/codec.h codebook.h scales.h -smallft.lo smallft.o : smallft.c smallft.h ../include/vorbis/codec.h \ - misc.h -synthesis.lo synthesis.o : synthesis.c ../include/vorbis/codec.h \ - codec_internal.h envelope.h mdct.h codebook.h psy.h smallft.h \ - backends.h bitrate.h os.h misc.h highlevel.h registry.h -vorbisenc.lo vorbisenc.o : vorbisenc.c ../include/vorbis/codec.h \ - ../include/vorbis/vorbisenc.h codec_internal.h envelope.h \ - mdct.h codebook.h psy.h smallft.h backends.h bitrate.h os.h \ - misc.h highlevel.h modes/setup_44.h modes/floor_all.h \ - books/floor/floor_books.h modes/residue_44.h \ - books/coupled/res_books_stereo.h modes/psych_44.h \ - modes/setup_44u.h modes/residue_44u.h \ - books/uncoupled/res_books_uncoupled.h modes/setup_32.h \ - modes/setup_8.h modes/psych_8.h modes/residue_8.h \ - modes/setup_11.h modes/psych_11.h modes/setup_16.h \ - modes/psych_16.h modes/residue_16.h modes/setup_22.h \ - modes/setup_X.h -vorbisfile.lo vorbisfile.o : vorbisfile.c ../include/vorbis/codec.h \ - ../include/vorbis/vorbisfile.h os.h misc.h -window.lo window.o : window.c os.h misc.h ../include/vorbis/codec.h - -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: install-libLTLIBRARIES -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: uninstall-libLTLIBRARIES -uninstall: uninstall-recursive -all-am: Makefile $(LTLIBRARIES) -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(libdir) - - -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ - mostlyclean-libtool mostlyclean-tags \ - mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \ - clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-libLTLIBRARIES distclean-compile \ - distclean-libtool distclean-tags distclean-generic \ - clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ - maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ -clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ -uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ -distclean-compile clean-compile maintainer-clean-compile \ -mostlyclean-libtool distclean-libtool clean-libtool \ -maintainer-clean-libtool install-data-recursive \ -uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/bitrate.c b/libvorbis-1.0.1/lib/bitrate.c deleted file mode 100644 index 0404b82..0000000 --- a/libvorbis-1.0.1/lib/bitrate.c +++ /dev/null @@ -1,531 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: bitrate tracking and management - last mod: $Id: bitrate.c,v 1.21 2002/10/11 11:14:41 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "os.h" -#include "misc.h" -#include "bitrate.h" - - -static long BINBYTES(bitrate_manager_state *bm,long pos,long bin){ - int bins=bm->queue_bins; - return(bm->queue_binned[pos*bins+bin]); -} - -#define LIMITBYTES(pos,bin) (bm->minmax_binstack[(pos)*bins*2+((bin)+bins)]) - -static long LACING_ADJUST(long bytes){ - int addto=bytes/255+1; - return(bytes+addto); -} - -static int floater_interpolate(bitrate_manager_state *bm,vorbis_info *vi, - double desired_rate){ - int bin=rint(bm->avgfloat); - double lobitrate,hibitrate; - - - lobitrate=(double)(bm->avg_binacc[bin]*8)/bm->avg_sampleacc*vi->rate; - while(lobitrate>desired_rate && bin>0){ - bin--; - lobitrate=(double)(bm->avg_binacc[bin]*8)/bm->avg_sampleacc*vi->rate; - } - - if(bin+1queue_bins){ - hibitrate=(double)(bm->avg_binacc[bin+1]*8)/bm->avg_sampleacc*vi->rate; - if(fabs(hibitrate-desired_rate) < fabs(lobitrate-desired_rate))bin++; - } - return(bin); -} - -/* try out a new limit */ -static long limit_sum(bitrate_manager_state *bm,int limit){ - int i=bm->minmax_stackptr; - long acc=bm->minmax_acctotal; - long bins=bm->queue_bins; - - acc-=LIMITBYTES(i,0); - acc+=LIMITBYTES(i,limit); - - while(i-->0){ - if(bm->minmax_limitstack[i]<=limit)break; - acc-=LIMITBYTES(i,bm->minmax_limitstack[i]); - acc+=LIMITBYTES(i,limit); - } - return(acc); -} - -/* compute bitrate tracking setup, allocate circular packet size queue */ -void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bm){ - int i; - codec_setup_info *ci=vi->codec_setup; - bitrate_manager_info *bi=&ci->bi; - long maxlatency; - - memset(bm,0,sizeof(*bm)); - - if(bi){ - - bm->avg_sampledesired=bi->queue_avg_time*vi->rate; - bm->avg_centerdesired=bi->queue_avg_time*vi->rate*bi->queue_avg_center; - bm->minmax_sampledesired=bi->queue_minmax_time*vi->rate; - - /* first find the max possible needed queue size */ - maxlatency=max(bm->avg_sampledesired-bm->avg_centerdesired, - bm->minmax_sampledesired)+bm->avg_centerdesired; - - if(maxlatency>0 && - (bi->queue_avgmin>0 || bi->queue_avgmax>0 || bi->queue_hardmax>0 || - bi->queue_hardmin>0)){ - long maxpackets=maxlatency/(ci->blocksizes[0]>>1)+3; - long bins=PACKETBLOBS; - - bm->queue_size=maxpackets; - bm->queue_bins=bins; - bm->queue_binned=_ogg_calloc(maxpackets,bins*sizeof(*bm->queue_binned)); - bm->queue_actual=_ogg_calloc(maxpackets,sizeof(*bm->queue_actual)); - - if((bi->queue_avgmin>0 || bi->queue_avgmax>0) && - bi->queue_avg_time>0){ - - bm->avg_binacc=_ogg_calloc(bins,sizeof(*bm->avg_binacc)); - bm->avgfloat=PACKETBLOBS/2; - - }else{ - bm->avg_tail= -1; - } - - if((bi->queue_hardmin>0 || bi->queue_hardmax>0) && - bi->queue_minmax_time>0){ - - bm->minmax_binstack=_ogg_calloc((bins*2+1)*bins*2, - sizeof(*bm->minmax_binstack)); - bm->minmax_posstack=_ogg_calloc((bins*2+1), - sizeof(*bm->minmax_posstack)); - bm->minmax_limitstack=_ogg_calloc((bins*2+1), - sizeof(*bm->minmax_limitstack)); - }else{ - bm->minmax_tail= -1; - } - - /* space for the packet queueing */ - bm->packetbuffers=_ogg_calloc(maxpackets,sizeof(*bm->packetbuffers)); - bm->packets=_ogg_calloc(maxpackets,sizeof(*bm->packets)); - for(i=0;ipacketbuffers+i); - - }else{ - bm->packetbuffers=_ogg_calloc(1,sizeof(*bm->packetbuffers)); - bm->packets=_ogg_calloc(1,sizeof(*bm->packets)); - oggpack_writeinit(bm->packetbuffers); - - } - } -} - -void vorbis_bitrate_clear(bitrate_manager_state *bm){ - int i; - if(bm){ - if(bm->queue_binned)_ogg_free(bm->queue_binned); - if(bm->queue_actual)_ogg_free(bm->queue_actual); - if(bm->avg_binacc)_ogg_free(bm->avg_binacc); - if(bm->minmax_binstack)_ogg_free(bm->minmax_binstack); - if(bm->minmax_posstack)_ogg_free(bm->minmax_posstack); - if(bm->minmax_limitstack)_ogg_free(bm->minmax_limitstack); - - if(bm->packetbuffers){ - if(bm->queue_size==0){ - oggpack_writeclear(bm->packetbuffers); - }else{ - for(i=0;iqueue_size;i++) - oggpack_writeclear(bm->packetbuffers+i); - } - _ogg_free(bm->packetbuffers); - } - if(bm->packets)_ogg_free(bm->packets); - - memset(bm,0,sizeof(*bm)); - } -} - -int vorbis_bitrate_managed(vorbis_block *vb){ - vorbis_dsp_state *vd=vb->vd; - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - - if(bm->queue_binned)return(1); - return(0); -} - -/* finish taking in the block we just processed */ -int vorbis_bitrate_addblock(vorbis_block *vb){ - int i; - vorbis_block_internal *vbi=vb->internal; - vorbis_dsp_state *vd=vb->vd; - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - bitrate_manager_info *bi=&ci->bi; - int eofflag=vb->eofflag; - int head=bm->queue_head; - int next_head=head+1; - int bins=bm->queue_bins; - int minmax_head,new_minmax_head; - - ogg_uint32_t *head_ptr; - oggpack_buffer temp; - - if(!bm->queue_binned){ - oggpack_buffer temp; - /* not a bitrate managed stream, but for API simplicity, we'll - buffer one packet to keep the code path clean */ - - if(bm->queue_head)return(-1); /* one has been submitted without - being claimed */ - bm->queue_head++; - - bm->packets[0].packet=oggpack_get_buffer(&vb->opb); - bm->packets[0].bytes=oggpack_bytes(&vb->opb); - bm->packets[0].b_o_s=0; - bm->packets[0].e_o_s=vb->eofflag; - bm->packets[0].granulepos=vb->granulepos; - bm->packets[0].packetno=vb->sequence; /* for sake of completeness */ - - memcpy(&temp,bm->packetbuffers,sizeof(vb->opb)); - memcpy(bm->packetbuffers,&vb->opb,sizeof(vb->opb)); - memcpy(&vb->opb,&temp,sizeof(vb->opb)); - - return(0); - } - - /* add encoded packet to head */ - if(next_head>=bm->queue_size)next_head=0; - head_ptr=bm->queue_binned+bins*head; - - /* is there room to add a block? In proper use of the API, this will - never come up... but guard it anyway */ - if(next_head==bm->avg_tail || next_head==bm->minmax_tail)return(-1); - - /* add the block to the toplevel queue */ - bm->queue_head=next_head; - bm->queue_actual[head]=(vb->W?0x80000000UL:0); - - /* buffer packet fields */ - bm->packets[head].packet=oggpack_get_buffer(&vb->opb); - bm->packets[head].bytes=oggpack_bytes(&vb->opb); - bm->packets[head].b_o_s=0; - bm->packets[head].e_o_s=vb->eofflag; - bm->packets[head].granulepos=vb->granulepos; - bm->packets[head].packetno=vb->sequence; /* for sake of completeness */ - - /* swap packet buffers */ - memcpy(&temp,bm->packetbuffers+head,sizeof(vb->opb)); - memcpy(bm->packetbuffers+head,&vb->opb,sizeof(vb->opb)); - memcpy(&vb->opb,&temp,sizeof(vb->opb)); - - /* save markers */ - head_ptr[0]=vbi->packetblob_markers[0]; - for(i=1;ipacketblob_markers[i]-vbi->packetblob_markers[i-1]; - } - - if(bm->avg_binacc) - new_minmax_head=minmax_head=bm->avg_center; - else - new_minmax_head=minmax_head=head; - - /* the average tracking queue is updated first; its results (if it's - in use) are taken into account by the min/max limiter (if min/max - is in use) */ - if(bm->avg_binacc){ - unsigned long desired_center=bm->avg_centerdesired; - if(eofflag)desired_center=0; - - /* update the avg head */ - for(i=0;iavg_binacc[i]+=LACING_ADJUST(head_ptr[i]); - bm->avg_sampleacc+=ci->blocksizes[vb->W]>>1; - bm->avg_centeracc+=ci->blocksizes[vb->W]>>1; - - if(bm->avg_sampleacc>bm->avg_sampledesired || eofflag){ - - /* update the avg center */ - if(bm->avg_centeracc>desired_center){ - /* choose the new average floater */ - int samples=ci->blocksizes[vb->W]>>1; - double upper=floater_interpolate(bm,vi,bi->queue_avgmax); - double lower=floater_interpolate(bm,vi,bi->queue_avgmin); - double new=PACKETBLOBS/2.,slew; - int bin; - - if(uppernew)new=lower; - - slew=(new-bm->avgfloat)/samples*vi->rate; - - if(slewavgfloat_downslew_max) - new=bm->avgfloat+bi->avgfloat_downslew_max/vi->rate*samples; - if(slew>bi->avgfloat_upslew_max) - new=bm->avgfloat+bi->avgfloat_upslew_max/vi->rate*samples; - - bm->avgfloat=new; - /* apply the average floater to new blocks */ - bin=rint(bm->avgfloat); - - /*fprintf(stderr,"%d ",bin);*/ - - while(bm->avg_centeracc>desired_center){ - samples=ci->blocksizes[bm->queue_actual[bm->avg_center]& - 0x80000000UL?1:0]>>1; - - bm->queue_actual[bm->avg_center]|=bin; - - bm->avg_centeracc-=samples; - bm->avg_center++; - if(bm->avg_center>=bm->queue_size)bm->avg_center=0; - } - new_minmax_head=bm->avg_center; - - } - - /* update the avg tail if needed */ - while(bm->avg_sampleacc>bm->avg_sampledesired){ - int samples= - ci->blocksizes[bm->queue_actual[bm->avg_tail]&0x80000000UL?1:0]>>1; - for(i=0;iqueue_bins;i++) - bm->avg_binacc[i]-=LACING_ADJUST(bm->queue_binned[bins*bm->avg_tail+i]); - bm->avg_sampleacc-=samples; - bm->avg_tail++; - if(bm->avg_tail>=bm->queue_size)bm->avg_tail=0; - } - - - } - }else{ - /* if we're not using an average tracker, the 'float' is nailed to - the avgfloat_initial value. It needs to be set for the min/max - to deal properly */ - long bin=PACKETBLOBS/2; - bm->queue_actual[head]|=bin; - new_minmax_head=next_head; - } - - /* update the min/max queues and enforce limits */ - if(bm->minmax_binstack){ - unsigned long sampledesired=eofflag?0:bm->minmax_sampledesired; - - /* add to stack recent */ - while(minmax_head!=new_minmax_head){ - unsigned int i; - int samples=ci->blocksizes[bm->queue_actual[minmax_head]& - 0x80000000UL?1:0]>>1; - int actual=bm->queue_actual[minmax_head]&0x7fffffffUL; - - for(i=0;i<(unsigned int)bins;i++){ - bm->minmax_binstack[bm->minmax_stackptr*bins*2+bins+i]+= - LACING_ADJUST(BINBYTES(bm,minmax_head, - actual>i?actual:i)); - - bm->minmax_binstack[bm->minmax_stackptr*bins*2+i]+= - LACING_ADJUST(BINBYTES(bm,minmax_head, - actualminmax_posstack[bm->minmax_stackptr]=minmax_head; /* not one - past - like - typical */ - bm->minmax_limitstack[bm->minmax_stackptr]=0; - bm->minmax_sampleacc+=samples; - bm->minmax_acctotal+= - LACING_ADJUST(BINBYTES(bm,minmax_head,actual)); - - minmax_head++; - if(minmax_head>=bm->queue_size)minmax_head=0; - - - } - - /* check limits, enforce changes */ - if(bm->minmax_sampleacc>sampledesired){ - double bitrate=(double)(bm->minmax_acctotal*8)/ - bm->minmax_sampleacc*vi->rate; - int limit=0; - - if((bi->queue_hardmax>0 && bitrate>bi->queue_hardmax) || - (bi->queue_hardmin>0 && bitratequeue_hardmin)){ - int newstack; - int stackctr; - long bitsum=bm->minmax_acctotal*8; - - bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate; - - /* we're off rate. Iteratively try out new hard floater - limits until we find one that brings us inside. Here's - where we see the whole point of the limit stacks. */ - if(bi->queue_hardmax>0 && bitrate>bi->queue_hardmax){ - for(limit=-1;limit>-bins+1;limit--){ - long bitsum=limit_sum(bm,limit)*8; - bitrate=(double)bitsum/bm->minmax_sampleacc*vi->rate; - if(bitrate<=bi->queue_hardmax)break; - } - }else if(bitratequeue_hardmin){ - for(limit=1;limitminmax_sampleacc*vi->rate; - if(bitrate>=bi->queue_hardmin)break; - } - if(bitrate>bi->queue_hardmax)limit--; - } - - /* trace the limit backward, stop when we see a lower limit */ - newstack=bm->minmax_stackptr-1; - while(newstack>=0){ - if(bm->minmax_limitstack[newstack]minmax_stackptr; - while(stackctr>newstack){ - bm->minmax_acctotal-= - LIMITBYTES(stackctr,bm->minmax_limitstack[stackctr]); - bm->minmax_acctotal+=LIMITBYTES(stackctr,limit); - - if(stackctrminmax_stackptr) - for(i=0;iminmax_binstack[stackctr*bins*2+i]+= - bm->minmax_binstack[(stackctr+1)*bins*2+i]; - - stackctr--; - } - stackctr++; - bm->minmax_posstack[stackctr]=bm->minmax_posstack[bm->minmax_stackptr]; - bm->minmax_limitstack[stackctr]=limit; - - /* set up new blank stack entry */ - stackctr++; - bm->minmax_stackptr=stackctr; - memset(&bm->minmax_binstack[stackctr*bins*2], - 0, - sizeof(*bm->minmax_binstack)*bins*2); - bm->minmax_limitstack[stackctr]=0; - bm->minmax_posstack[stackctr]=-1; - - } - } - - /* remove from tail */ - while(bm->minmax_sampleacc>sampledesired){ - int samples= - ci->blocksizes[bm->queue_actual[bm->minmax_tail]&0x80000000UL?1:0]>>1; - int actual=bm->queue_actual[bm->minmax_tail]&0x7fffffffUL; - - for(i=0;iminmax_binstack[bins+i]-= /* always comes off the stack bottom */ - LACING_ADJUST(BINBYTES(bm,bm->minmax_tail, - actual>i? - actual:i)); - bm->minmax_binstack[i]-= - LACING_ADJUST(BINBYTES(bm,bm->minmax_tail, - actualminmax_limitstack[0]>actual) - actual=bm->minmax_limitstack[0]; - if(bins+bm->minmax_limitstack[0]minmax_limitstack[0]; - - bm->minmax_acctotal-=LACING_ADJUST(BINBYTES(bm,bm->minmax_tail,actual)); - bm->minmax_sampleacc-=samples; - - /* revise queue_actual to reflect the limit */ - bm->queue_actual[bm->minmax_tail]&=0x80000000UL; - bm->queue_actual[bm->minmax_tail]|=actual; - - if(bm->minmax_tail==bm->minmax_posstack[0]){ - /* the stack becomes a FIFO; the first data has fallen off */ - memmove(bm->minmax_binstack,bm->minmax_binstack+bins*2, - sizeof(*bm->minmax_binstack)*bins*2*bm->minmax_stackptr); - memmove(bm->minmax_posstack,bm->minmax_posstack+1, - sizeof(*bm->minmax_posstack)*bm->minmax_stackptr); - memmove(bm->minmax_limitstack,bm->minmax_limitstack+1, - sizeof(*bm->minmax_limitstack)*bm->minmax_stackptr); - bm->minmax_stackptr--; - } - - bm->minmax_tail++; - if(bm->minmax_tail>=bm->queue_size)bm->minmax_tail=0; - - } - - - bm->last_to_flush=bm->minmax_tail; - }else{ - bm->last_to_flush=bm->avg_center; - } - if(eofflag) - bm->last_to_flush=bm->queue_head; - return(0); -} - -int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,ogg_packet *op){ - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - - if(bm->queue_size==0){ - if(bm->queue_head==0)return(0); - - memcpy(op,bm->packets,sizeof(*op)); - bm->queue_head=0; - - }else{ - - if(bm->next_to_flush==bm->last_to_flush)return(0); - - { - long bin=bm->queue_actual[bm->next_to_flush]&0x7fffffff,i; - long bins=bm->queue_bins; - ogg_uint32_t *markers=bm->queue_binned+bins*bm->next_to_flush; - long bytes=markers[bin]; - - memcpy(op,bm->packets+bm->next_to_flush,sizeof(*op)); - - /* we have [PACKETBLOBS] possible packets all squished together in - the buffer, in sequence. count in to number [bin] */ - for(i=0;ipacket+=markers[i]; - op->bytes=bytes; - - } - - bm->next_to_flush++; - if(bm->next_to_flush>=bm->queue_size)bm->next_to_flush=0; - - } - - return(1); -} diff --git a/libvorbis-1.0.1/lib/books/Makefile.in b/libvorbis-1.0.1/lib/books/Makefile.in deleted file mode 100644 index 88e00ce..0000000 --- a/libvorbis-1.0.1/lib/books/Makefile.in +++ /dev/null @@ -1,314 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign -SUBDIRS = coupled uncoupled floor -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/books/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. - -@SET_MAKE@ - -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ - rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ - done; \ - test "$$dot_seen" = "no" && rev=". $$rev"; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib/books - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - chmod 777 $(distdir)/$$subdir; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ - || exit 1; \ - fi; \ - done -info-am: -info: info-recursive -dvi-am: -dvi: dvi-recursive -check-am: all-am -check: check-recursive -installcheck-am: -installcheck: installcheck-recursive -install-exec-am: -install-exec: install-exec-recursive - -install-data-am: -install-data: install-data-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-recursive -uninstall-am: -uninstall: uninstall-recursive -all-am: Makefile -all-redirect: all-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: installdirs-recursive -installdirs-am: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-recursive - -clean-am: clean-tags clean-generic mostlyclean-am - -clean: clean-recursive - -distclean-am: distclean-tags distclean-generic clean-am - -rm -f libtool - -distclean: distclean-recursive - -maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-recursive - -.PHONY: install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ -maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/books/coupled/Makefile.in b/libvorbis-1.0.1/lib/books/coupled/Makefile.in deleted file mode 100644 index 235b730..0000000 --- a/libvorbis-1.0.1/lib/books/coupled/Makefile.in +++ /dev/null @@ -1,211 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = res_books_stereo.h -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/books/coupled/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib/books/coupled - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/books/coupled/res_books_stereo.h b/libvorbis-1.0.1/lib/books/coupled/res_books_stereo.h deleted file mode 100644 index 908f3a6..0000000 --- a/libvorbis-1.0.1/lib/books/coupled/res_books_stereo.h +++ /dev/null @@ -1,19080 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - last modified: $Id: res_books_stereo.h,v 1.2 2002/07/11 10:27:51 xiphmont Exp $ - - ********************************************************************/ - -#include "codebook.h" -static long _vq_quantlist__16c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c0_s_p1_0[] = { - 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, - 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, - 0, 0, 0, 9, 9,12, 0, 0, 0, 0, 0, 0,10,12,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, - 0, 0, 0, 0, 9,12,10, 0, 0, 0, 0, 0, 0,10,11,12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, - 0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,12,11, 0, - 0, 0, 0, 0, 0, 9,10,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,12, - 0, 0, 0, 0, 0, 0, 9,12, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c0_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16c0_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p1_0 = { - _vq_quantthresh__16c0_s_p1_0, - _vq_quantmap__16c0_s_p1_0, - 3, - 3 -}; - -static static_codebook _16c0_s_p1_0 = { - 8, 6561, - _vq_lengthlist__16c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16c0_s_p1_0, - NULL, - &_vq_auxt__16c0_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c0_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c0_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c0_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p2_0 = { - _vq_quantthresh__16c0_s_p2_0, - _vq_quantmap__16c0_s_p2_0, - 5, - 5 -}; - -static static_codebook _16c0_s_p2_0 = { - 4, 625, - _vq_lengthlist__16c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c0_s_p2_0, - NULL, - &_vq_auxt__16c0_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c0_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 7, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c0_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c0_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p3_0 = { - _vq_quantthresh__16c0_s_p3_0, - _vq_quantmap__16c0_s_p3_0, - 5, - 5 -}; - -static static_codebook _16c0_s_p3_0 = { - 4, 625, - _vq_lengthlist__16c0_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c0_s_p3_0, - NULL, - &_vq_auxt__16c0_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16c0_s_p4_0[] = { - 1, 3, 2, 7, 8, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c0_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16c0_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p4_0 = { - _vq_quantthresh__16c0_s_p4_0, - _vq_quantmap__16c0_s_p4_0, - 9, - 9 -}; - -static static_codebook _16c0_s_p4_0 = { - 2, 81, - _vq_lengthlist__16c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16c0_s_p4_0, - NULL, - &_vq_auxt__16c0_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16c0_s_p5_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 8, 0, 0, 0, 7, 7, - 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0, 0, - 8, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__16c0_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16c0_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p5_0 = { - _vq_quantthresh__16c0_s_p5_0, - _vq_quantmap__16c0_s_p5_0, - 9, - 9 -}; - -static static_codebook _16c0_s_p5_0 = { - 2, 81, - _vq_lengthlist__16c0_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16c0_s_p5_0, - NULL, - &_vq_auxt__16c0_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16c0_s_p6_0[] = { - 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, - 11,11, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,12,13, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10,10,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, 0, 0, - 10,10,10,11,11,11,12,12,13,13,13,14, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,13,13,14,15,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,14,14,15, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,13,14, - 14, -}; - -static float _vq_quantthresh__16c0_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__16c0_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p6_0 = { - _vq_quantthresh__16c0_s_p6_0, - _vq_quantmap__16c0_s_p6_0, - 17, - 17 -}; - -static static_codebook _16c0_s_p6_0 = { - 2, 289, - _vq_lengthlist__16c0_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__16c0_s_p6_0, - NULL, - &_vq_auxt__16c0_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c0_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,11,10,10,11, - 11,10, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, - 11,11,11,10, 6, 9, 9,11,12,12,11, 9, 9, 6, 9,10, - 11,12,12,11, 9,10, 7,11,11,11,11,11,12,13,12, 6, - 9,10,11,10,10,12,13,13, 6,10, 9,11,10,10,11,12, - 13, -}; - -static float _vq_quantthresh__16c0_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__16c0_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p7_0 = { - _vq_quantthresh__16c0_s_p7_0, - _vq_quantmap__16c0_s_p7_0, - 3, - 3 -}; - -static static_codebook _16c0_s_p7_0 = { - 4, 81, - _vq_lengthlist__16c0_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__16c0_s_p7_0, - NULL, - &_vq_auxt__16c0_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16c0_s_p7_1[] = { - 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, - 8, 8, 8, 9, 9, 9,10,10,10, 6, 7, 8, 8, 8, 8, 9, - 8,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, 7, - 7, 8, 8, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9, 9, - 9, 9,11,11,11, 8, 8, 9, 9, 9, 9, 9,10,10,11,11, - 9, 9, 9, 9, 9, 9, 9,10,11,11,11,10,11, 9, 9, 9, - 9,10, 9,11,11,11,10,11,10,10, 9, 9,10,10,11,11, - 11,11,11, 9, 9, 9, 9,10,10, -}; - -static float _vq_quantthresh__16c0_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16c0_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p7_1 = { - _vq_quantthresh__16c0_s_p7_1, - _vq_quantmap__16c0_s_p7_1, - 11, - 11 -}; - -static static_codebook _16c0_s_p7_1 = { - 2, 121, - _vq_lengthlist__16c0_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16c0_s_p7_1, - NULL, - &_vq_auxt__16c0_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c0_s_p8_0[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8,10,10, 6, 5, 6, - 8, 8, 8, 8, 8, 8, 8, 9,10,10, 7, 6, 6, 8, 8, 8, - 8, 8, 8, 8, 8,10,10, 0, 8, 8, 8, 8, 9, 8, 9, 9, - 9,10,10,10, 0, 9, 8, 8, 8, 9, 9, 8, 8, 9, 9,10, - 10, 0,12,11, 8, 8, 9, 9, 9, 9,10,10,11,10, 0,12, - 13, 8, 8, 9,10, 9, 9,11,11,11,12, 0, 0, 0, 8, 8, - 8, 8,10, 9,12,13,12,14, 0, 0, 0, 8, 8, 8, 9,10, - 10,12,12,13,14, 0, 0, 0,13,13, 9, 9,11,11, 0, 0, - 14, 0, 0, 0, 0,14,14,10,10,12,11,12,14,14,14, 0, - 0, 0, 0, 0,11,11,13,13,14,13,14,14, 0, 0, 0, 0, - 0,12,13,13,12,13,14,14,14, -}; - -static float _vq_quantthresh__16c0_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__16c0_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p8_0 = { - _vq_quantthresh__16c0_s_p8_0, - _vq_quantmap__16c0_s_p8_0, - 13, - 13 -}; - -static static_codebook _16c0_s_p8_0 = { - 2, 169, - _vq_lengthlist__16c0_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__16c0_s_p8_0, - NULL, - &_vq_auxt__16c0_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c0_s_p8_1[] = { - 1, 4, 3, 5, 5, 7, 7, 7, 6, 6, 7, 7, 7, 5, 5, 7, - 7, 7, 6, 6, 7, 7, 7, 6, 6, -}; - -static float _vq_quantthresh__16c0_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c0_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p8_1 = { - _vq_quantthresh__16c0_s_p8_1, - _vq_quantmap__16c0_s_p8_1, - 5, - 5 -}; - -static static_codebook _16c0_s_p8_1 = { - 2, 25, - _vq_lengthlist__16c0_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c0_s_p8_1, - NULL, - &_vq_auxt__16c0_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p9_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c0_s_p9_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__16c0_s_p9_0[] = { - -157.5, 157.5, -}; - -static long _vq_quantmap__16c0_s_p9_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p9_0 = { - _vq_quantthresh__16c0_s_p9_0, - _vq_quantmap__16c0_s_p9_0, - 3, - 3 -}; - -static static_codebook _16c0_s_p9_0 = { - 4, 81, - _vq_lengthlist__16c0_s_p9_0, - 1, -518803456, 1628680192, 2, 0, - _vq_quantlist__16c0_s_p9_0, - NULL, - &_vq_auxt__16c0_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16c0_s_p9_1[] = { - 1, 5, 5, 5, 5, 9,11,11,10,10,10,10,10,10,10, 7, - 6, 6, 6, 6,10,10,10,10,10,10,10,10,10,10, 7, 6, - 6, 6, 6,10, 9,10,10,10,10,10,10,10,10,10, 7, 7, - 8, 9,10,10,10,10,10,10,10,10,10,10,10, 8, 7,10, - 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__16c0_s_p9_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__16c0_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p9_1 = { - _vq_quantthresh__16c0_s_p9_1, - _vq_quantmap__16c0_s_p9_1, - 15, - 15 -}; - -static static_codebook _16c0_s_p9_1 = { - 2, 225, - _vq_lengthlist__16c0_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__16c0_s_p9_1, - NULL, - &_vq_auxt__16c0_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c0_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__16c0_s_p9_2[] = { - 1, 5, 5, 7, 8, 8, 7, 9, 9, 9,12,12,11,12,12,10, - 10,11,12,12,12,11,12,12, 8, 9, 8, 7, 9,10,10,11, - 11,10,11,12,10,12,10,12,12,12,11,12,11, 9, 8, 8, - 9,10, 9, 8, 9,10,12,12,11,11,12,11,10,11,12,11, - 12,12, 8, 9, 9, 9,10,11,12,11,12,11,11,11,11,12, - 12,11,11,12,12,11,11, 9, 9, 8, 9, 9,11, 9, 9,10, - 9,11,11,11,11,12,11,11,10,12,12,12, 9,12,11,10, - 11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10, - 10, 9,10, 9,10,10, 9, 9, 9,10,10,12,10,11,11, 9, - 11,11,10,11,11,11,10,10,10, 9, 9,10,10, 9, 9,10, - 11,11,10,11,10,11,10,11,11,10,11,11,11,10, 9,10, - 10, 9,10, 9, 9,11, 9, 9,11,10,10,11,11,10,10,11, - 10,11, 8, 9,11,11,10, 9,10,11,11,10,11,11,10,10, - 10,11,10, 9,10,10,11, 9,10,10, 9,11,10,10,10,10, - 11,10,11,11, 9,11,10,11,10,10,11,11,10,10,10, 9, - 10,10,11,11,11, 9,10,10,10,10,10,11,10,10,10, 9, - 10,10,11,10,10,10,10,10, 9,10,11,10,10,10,10,11, - 11,11,10,10,10,10,10,11,10,11,10,11,10,10,10, 9, - 11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11, - 11, 9,10,10,10,11,10,11,10,10,10,11, 9,10,11,10, - 11,10,10, 9,10,10,10,11,10,11,10,10,10,10,10,11, - 11,10,11,11,10,10,11,11,10, 9, 9,10,10,10,10,10, - 9,11, 9,10,10,10,11,11,10,10,10,10,11,11,11,10, - 9, 9,10,10,11,10,10,10,10,10,11,11,11,10,10,10, - 11,11,11, 9,10,10,10,10, 9,10, 9,10,11,10,11,10, - 10,11,11,10,11,11,11,11,11,10,11,10,10,10, 9,11, - 11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10, - 10,11,10,10,11, 9,10,10,10, -}; - -static float _vq_quantthresh__16c0_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__16c0_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__16c0_s_p9_2 = { - _vq_quantthresh__16c0_s_p9_2, - _vq_quantmap__16c0_s_p9_2, - 21, - 21 -}; - -static static_codebook _16c0_s_p9_2 = { - 2, 441, - _vq_lengthlist__16c0_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__16c0_s_p9_2, - NULL, - &_vq_auxt__16c0_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__16c0_s_single[] = { - 3, 4,19, 7, 9, 7, 8,11, 9,12, 4, 1,19, 6, 7, 7, - 8,10,11,13,18,18,18,18,18,18,18,18,18,18, 8, 6, - 18, 8, 9, 9,11,12,14,18, 9, 6,18, 9, 7, 8, 9,11, - 12,18, 7, 6,18, 8, 7, 7, 7, 9,11,17, 8, 8,18, 9, - 7, 6, 6, 8,11,17,10,10,18,12, 9, 8, 7, 9,12,18, - 13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18, - 16,16,18,18, -}; - -static static_codebook _huff_book__16c0_s_single = { - 2, 100, - _huff_lengthlist__16c0_s_single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__16c1_s_long[] = { - 2, 5,20, 7,10, 7, 8,10,11,11, 4, 2,20, 5, 8, 6, - 7, 9,10,10,20,20,20,20,19,19,19,19,19,19, 7, 5, - 19, 6,10, 7, 9,11,13,17,11, 8,19,10, 7, 7, 8,10, - 11,15, 7, 5,19, 7, 7, 5, 6, 9,11,16, 7, 6,19, 8, - 7, 6, 6, 7, 9,13, 9, 9,19,11, 9, 8, 6, 7, 8,13, - 12,14,19,16,13,10, 9, 8, 9,13,14,17,19,18,18,17, - 12,11,11,13, -}; - -static static_codebook _huff_book__16c1_s_long = { - 2, 100, - _huff_lengthlist__16c1_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c1_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c1_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16c1_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p1_0 = { - _vq_quantthresh__16c1_s_p1_0, - _vq_quantmap__16c1_s_p1_0, - 3, - 3 -}; - -static static_codebook _16c1_s_p1_0 = { - 8, 6561, - _vq_lengthlist__16c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16c1_s_p1_0, - NULL, - &_vq_auxt__16c1_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c1_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c1_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c1_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p2_0 = { - _vq_quantthresh__16c1_s_p2_0, - _vq_quantmap__16c1_s_p2_0, - 5, - 5 -}; - -static static_codebook _16c1_s_p2_0 = { - 4, 625, - _vq_lengthlist__16c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c1_s_p2_0, - NULL, - &_vq_auxt__16c1_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c1_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c1_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c1_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p3_0 = { - _vq_quantthresh__16c1_s_p3_0, - _vq_quantmap__16c1_s_p3_0, - 5, - 5 -}; - -static static_codebook _16c1_s_p3_0 = { - 4, 625, - _vq_lengthlist__16c1_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c1_s_p3_0, - NULL, - &_vq_auxt__16c1_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16c1_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c1_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16c1_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p4_0 = { - _vq_quantthresh__16c1_s_p4_0, - _vq_quantmap__16c1_s_p4_0, - 9, - 9 -}; - -static static_codebook _16c1_s_p4_0 = { - 2, 81, - _vq_lengthlist__16c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16c1_s_p4_0, - NULL, - &_vq_auxt__16c1_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16c1_s_p5_0[] = { - 1, 3, 3, 5, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 8, 8, - 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__16c1_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16c1_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p5_0 = { - _vq_quantthresh__16c1_s_p5_0, - _vq_quantmap__16c1_s_p5_0, - 9, - 9 -}; - -static static_codebook _16c1_s_p5_0 = { - 2, 81, - _vq_lengthlist__16c1_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16c1_s_p5_0, - NULL, - &_vq_auxt__16c1_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16c1_s_p6_0[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,12, - 12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 0, 0, 8, 8, 8, 9,10, 9,10,10,10,10, - 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,11, - 11,11,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, - 14, -}; - -static float _vq_quantthresh__16c1_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__16c1_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p6_0 = { - _vq_quantthresh__16c1_s_p6_0, - _vq_quantmap__16c1_s_p6_0, - 17, - 17 -}; - -static static_codebook _16c1_s_p6_0 = { - 2, 289, - _vq_lengthlist__16c1_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__16c1_s_p6_0, - NULL, - &_vq_auxt__16c1_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9,10,10, - 10, 9, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, - 11,11,10,10, 6,10, 9,11,11,11,11,10,10, 6,10,10, - 11,11,11,11,10,10, 7,11,11,11,11,11,12,12,11, 6, - 10,10,11,10,10,11,11,11, 6,10,10,10,11,10,11,11, - 11, -}; - -static float _vq_quantthresh__16c1_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__16c1_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p7_0 = { - _vq_quantthresh__16c1_s_p7_0, - _vq_quantmap__16c1_s_p7_0, - 3, - 3 -}; - -static static_codebook _16c1_s_p7_0 = { - 4, 81, - _vq_lengthlist__16c1_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__16c1_s_p7_0, - NULL, - &_vq_auxt__16c1_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16c1_s_p7_1[] = { - 2, 3, 3, 5, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, - 8, 9, 9,10,10,10,10,10, 9, 9, 8, 8, 9, 9,10,10, - 10,10,10, 8, 8, 8, 8, 9, 9, -}; - -static float _vq_quantthresh__16c1_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16c1_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p7_1 = { - _vq_quantthresh__16c1_s_p7_1, - _vq_quantmap__16c1_s_p7_1, - 11, - 11 -}; - -static static_codebook _16c1_s_p7_1 = { - 2, 121, - _vq_lengthlist__16c1_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16c1_s_p7_1, - NULL, - &_vq_auxt__16c1_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c1_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, - 7, 8, 8, 9, 8, 8, 9, 9,10,11, 6, 5, 5, 8, 8, 9, - 9, 8, 8, 9,10,10,11, 0, 8, 8, 8, 9, 9, 9, 9, 9, - 10,10,11,11, 0, 9, 9, 9, 8, 9, 9, 9, 9,10,10,11, - 11, 0,13,13, 9, 9,10,10,10,10,11,11,12,12, 0,14, - 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, - 9, 9,11,11,12,12,13,12, 0, 0, 0,10,10, 9, 9,10, - 10,12,12,13,13, 0, 0, 0,13,14,11,10,11,11,12,12, - 13,14, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,12,12,13,13,14,15, 0, 0, 0, 0, - 0,12,12,12,12,13,13,14,15, -}; - -static float _vq_quantthresh__16c1_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__16c1_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p8_0 = { - _vq_quantthresh__16c1_s_p8_0, - _vq_quantmap__16c1_s_p8_0, - 13, - 13 -}; - -static static_codebook _16c1_s_p8_0 = { - 2, 169, - _vq_lengthlist__16c1_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__16c1_s_p8_0, - NULL, - &_vq_auxt__16c1_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c1_s_p8_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__16c1_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c1_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p8_1 = { - _vq_quantthresh__16c1_s_p8_1, - _vq_quantmap__16c1_s_p8_1, - 5, - 5 -}; - -static static_codebook _16c1_s_p8_1 = { - 2, 25, - _vq_lengthlist__16c1_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c1_s_p8_1, - NULL, - &_vq_auxt__16c1_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c1_s_p9_0[] = { - 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__16c1_s_p9_0[] = { - -1732.5, -1417.5, -1102.5, -787.5, -472.5, -157.5, 157.5, 472.5, - 787.5, 1102.5, 1417.5, 1732.5, -}; - -static long _vq_quantmap__16c1_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p9_0 = { - _vq_quantthresh__16c1_s_p9_0, - _vq_quantmap__16c1_s_p9_0, - 13, - 13 -}; - -static static_codebook _16c1_s_p9_0 = { - 2, 169, - _vq_lengthlist__16c1_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - _vq_quantlist__16c1_s_p9_0, - NULL, - &_vq_auxt__16c1_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16c1_s_p9_1[] = { - 1, 4, 4, 4, 4, 8, 8,12,13,14,14,14,14,14,14, 6, - 6, 6, 6, 6,10, 9,14,14,14,14,14,14,14,14, 7, 6, - 5, 6, 6,10, 9,12,13,13,13,13,13,13,13,13, 7, 7, - 9, 9,11,11,12,13,13,13,13,13,13,13,13, 7, 7, 8, - 8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10, - 13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13, -}; - -static float _vq_quantthresh__16c1_s_p9_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__16c1_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p9_1 = { - _vq_quantthresh__16c1_s_p9_1, - _vq_quantmap__16c1_s_p9_1, - 15, - 15 -}; - -static static_codebook _16c1_s_p9_1 = { - 2, 225, - _vq_lengthlist__16c1_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__16c1_s_p9_1, - NULL, - &_vq_auxt__16c1_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c1_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__16c1_s_p9_2[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9,10, - 10,10, 9,10,10,11,12,12, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,10,10,10,11,11,10,12,11,11,13,11, 7, 7, 8, - 8, 8, 8, 9, 9, 9,10,10,10,10, 9,10,10,11,11,12, - 11,11, 8, 8, 8, 8, 9, 9,10,10,10,10,11,11,11,11, - 11,11,11,12,11,12,12, 8, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,11,11,11,11,11,11,12,11, 9, 9, 9, 9, - 10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12, - 11, 9, 9, 9, 9,10,10,10,10,11,11,11,11,11,11,11, - 11,11,12,12,12,13, 9,10,10, 9,11,10,10,10,10,11, - 11,11,11,11,10,11,12,11,12,12,11,12,11,10, 9,10, - 10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12, - 12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11, - 11,11,12,13,12,12,11, 9,10,10,11,11,10,11,11,11, - 12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10, - 11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12, - 12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11, - 12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11, - 11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11, - 11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12, - 12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11, - 12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12, - 11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11, - 12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12, - 12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13, - 12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11, - 11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11, - 11,11,11,11,12,11,11,12,11, -}; - -static float _vq_quantthresh__16c1_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__16c1_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__16c1_s_p9_2 = { - _vq_quantthresh__16c1_s_p9_2, - _vq_quantmap__16c1_s_p9_2, - 21, - 21 -}; - -static static_codebook _16c1_s_p9_2 = { - 2, 441, - _vq_lengthlist__16c1_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__16c1_s_p9_2, - NULL, - &_vq_auxt__16c1_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__16c1_s_short[] = { - 5, 6,17, 8,12, 9,10,10,12,13, 5, 2,17, 4, 9, 5, - 7, 8,11,13,16,16,16,16,16,16,16,16,16,16, 6, 4, - 16, 5,10, 5, 7,10,14,16,13, 9,16,11, 8, 7, 8, 9, - 13,16, 7, 4,16, 5, 7, 4, 6, 8,11,13, 8, 6,16, 7, - 8, 5, 5, 7, 9,13, 9, 8,16, 9, 8, 6, 6, 7, 9,13, - 11,11,16,10,10, 7, 7, 7, 9,13,13,13,16,13,13, 9, - 9, 9,10,13, -}; - -static static_codebook _huff_book__16c1_s_short = { - 2, 100, - _huff_lengthlist__16c1_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__16c2_s_long[] = { - 4, 7, 9, 9, 9, 8, 9,10,15,19, 5, 4, 5, 6, 7, 7, - 8, 9,14,16, 6, 5, 4, 5, 6, 7, 8,10,12,19, 7, 6, - 5, 4, 5, 6, 7, 9,11,18, 8, 7, 6, 5, 5, 5, 7, 9, - 10,17, 8, 7, 7, 5, 5, 5, 6, 7,12,18, 8, 8, 8, 7, - 7, 5, 5, 7,12,18, 8, 9,10, 9, 9, 7, 6, 7,12,17, - 14,18,16,16,15,12,11,10,12,18,15,17,18,18,18,15, - 14,14,16,18, -}; - -static static_codebook _huff_book__16c2_s_long = { - 2, 100, - _huff_lengthlist__16c2_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c2_s_p1_0[] = { - 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c2_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16c2_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p1_0 = { - _vq_quantthresh__16c2_s_p1_0, - _vq_quantmap__16c2_s_p1_0, - 3, - 3 -}; - -static static_codebook _16c2_s_p1_0 = { - 4, 81, - _vq_lengthlist__16c2_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16c2_s_p1_0, - NULL, - &_vq_auxt__16c2_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c2_s_p2_0[] = { - 2, 4, 3, 7, 7, 0, 0, 0, 7, 8, 0, 0, 0, 8, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 4, 5, 4, 8, 8, 0, 0, - 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 9, 9, 4, 4, 5, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, - 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 7, 8, 8,10,10, - 0, 0, 0,12,11, 0, 0, 0,11,11, 0, 0, 0,14,13, 0, - 0, 0,14,13, 7, 8, 8, 9,10, 0, 0, 0,11,12, 0, 0, - 0,11,11, 0, 0, 0,14,14, 0, 0, 0,13,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,11,11, 0, 0, 0, - 11,11, 0, 0, 0,12,11, 0, 0, 0,12,12, 0, 0, 0,13, - 13, 8, 8, 8,11,11, 0, 0, 0,11,11, 0, 0, 0,11,12, - 0, 0, 0,12,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 8, 8,12,11, 0, 0, 0,12,11, 0, - 0, 0,11,11, 0, 0, 0,13,13, 0, 0, 0,13,12, 8, 8, - 8,11,12, 0, 0, 0,11,12, 0, 0, 0,11,11, 0, 0, 0, - 13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 9,14,13, 0, 0, 0,13,12, 0, 0, 0,13, - 13, 0, 0, 0,13,12, 0, 0, 0,13,13, 8, 9, 9,13,14, - 0, 0, 0,12,13, 0, 0, 0,13,13, 0, 0, 0,12,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 9, 9,14,13, 0, 0, 0,13,13, 0, 0, 0,13,12, 0, 0, - 0,13,13, 0, 0, 0,13,12, 8, 9, 9,14,14, 0, 0, 0, - 13,13, 0, 0, 0,12,13, 0, 0, 0,13,13, 0, 0, 0,12, - 13, -}; - -static float _vq_quantthresh__16c2_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c2_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p2_0 = { - _vq_quantthresh__16c2_s_p2_0, - _vq_quantmap__16c2_s_p2_0, - 5, - 5 -}; - -static static_codebook _16c2_s_p2_0 = { - 4, 625, - _vq_lengthlist__16c2_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c2_s_p2_0, - NULL, - &_vq_auxt__16c2_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16c2_s_p3_0[] = { - 1, 3, 3, 6, 6, 7, 7, 8, 8, 0, 0, 0, 6, 6, 7, 7, - 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c2_s_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16c2_s_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p3_0 = { - _vq_quantthresh__16c2_s_p3_0, - _vq_quantmap__16c2_s_p3_0, - 9, - 9 -}; - -static static_codebook _16c2_s_p3_0 = { - 2, 81, - _vq_lengthlist__16c2_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16c2_s_p3_0, - NULL, - &_vq_auxt__16c2_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16c2_s_p4_0[] = { - 2, 3, 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10, - 10, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, - 11,11, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, - 10,10,11, 0, 0, 0, 6, 6, 8, 8, 8, 8, 9, 9,10,10, - 10,11,11,11, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__16c2_s_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__16c2_s_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p4_0 = { - _vq_quantthresh__16c2_s_p4_0, - _vq_quantmap__16c2_s_p4_0, - 17, - 17 -}; - -static static_codebook _16c2_s_p4_0 = { - 2, 289, - _vq_lengthlist__16c2_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__16c2_s_p4_0, - NULL, - &_vq_auxt__16c2_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16c2_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,10,10,10, - 10,10, 4, 7, 6,10,10,10,10,10,10, 5, 9, 9, 9,12, - 11,10,11,12, 7,10,10,12,12,12,12,12,12, 7,10,10, - 11,12,12,12,12,13, 6,10,10,10,12,12,10,12,12, 7, - 10,10,11,13,12,12,12,12, 7,10,10,11,12,12,12,12, - 12, -}; - -static float _vq_quantthresh__16c2_s_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__16c2_s_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p5_0 = { - _vq_quantthresh__16c2_s_p5_0, - _vq_quantmap__16c2_s_p5_0, - 3, - 3 -}; - -static static_codebook _16c2_s_p5_0 = { - 4, 81, - _vq_lengthlist__16c2_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__16c2_s_p5_0, - NULL, - &_vq_auxt__16c2_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16c2_s_p5_1[] = { - 2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11, 6, 6, - 7, 7, 8, 8, 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, - 8,11,11,11, 6, 6, 8, 8, 8, 8, 9, 9,11,11,11, 6, - 6, 8, 8, 8, 8, 9, 9,11,11,11, 7, 7, 8, 8, 8, 8, - 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 8, 9,11,11,11, - 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,11,11, 8, 8, 8, - 8, 8, 8,11,11,11,11,11, 8, 8, 8, 8, 8, 8,11,11, - 11,11,11, 7, 7, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__16c2_s_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16c2_s_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p5_1 = { - _vq_quantthresh__16c2_s_p5_1, - _vq_quantmap__16c2_s_p5_1, - 11, - 11 -}; - -static static_codebook _16c2_s_p5_1 = { - 2, 121, - _vq_lengthlist__16c2_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16c2_s_p5_1, - NULL, - &_vq_auxt__16c2_s_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c2_s_p6_0[] = { - 1, 4, 4, 7, 6, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 7, 7, 9, 9, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9,10,10,11,11,12,12, 0, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,12,12, - 12, 0,11,11, 8, 8,10,10,11,11,12,12,13,13, 0,11, - 12, 8, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__16c2_s_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__16c2_s_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p6_0 = { - _vq_quantthresh__16c2_s_p6_0, - _vq_quantmap__16c2_s_p6_0, - 13, - 13 -}; - -static static_codebook _16c2_s_p6_0 = { - 2, 169, - _vq_lengthlist__16c2_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__16c2_s_p6_0, - NULL, - &_vq_auxt__16c2_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16c2_s_p6_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__16c2_s_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16c2_s_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p6_1 = { - _vq_quantthresh__16c2_s_p6_1, - _vq_quantmap__16c2_s_p6_1, - 5, - 5 -}; - -static static_codebook _16c2_s_p6_1 = { - 2, 25, - _vq_lengthlist__16c2_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16c2_s_p6_1, - NULL, - &_vq_auxt__16c2_s_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c2_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 8, 8, 9, 9,10,10,11,11,12,12, 6, 5, 5, 8, 8, 9, - 9,10,10,11,11,12,13,18, 6, 6, 7, 7, 9, 9,10,10, - 12,12,13,13,18, 6, 6, 7, 7, 9, 9,10,10,12,12,13, - 13,18,11,10, 8, 8,10,10,11,11,12,12,13,13,18,11, - 11, 8, 8,10,10,11,11,12,13,13,13,18,18,18,10,11, - 11,11,12,12,13,13,14,14,18,18,18,11,11,11,11,12, - 12,13,13,14,14,18,18,18,14,14,12,12,12,12,14,14, - 15,14,18,18,18,15,15,11,12,12,12,13,13,15,15,18, - 18,18,18,18,13,13,13,13,13,14,17,16,18,18,18,18, - 18,13,14,13,13,14,13,15,14, -}; - -static float _vq_quantthresh__16c2_s_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__16c2_s_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p7_0 = { - _vq_quantthresh__16c2_s_p7_0, - _vq_quantmap__16c2_s_p7_0, - 13, - 13 -}; - -static static_codebook _16c2_s_p7_0 = { - 2, 169, - _vq_lengthlist__16c2_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__16c2_s_p7_0, - NULL, - &_vq_auxt__16c2_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16c2_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 9, 9, 6, 6, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 6, 6, 7, 7, 8, 8, 8, - 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, - 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, - 7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 9, 7, 7, 7, - 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 8, 8, 9, 9, - 9, 9, 9, 7, 7, 7, 7, 8, 8, -}; - -static float _vq_quantthresh__16c2_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16c2_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p7_1 = { - _vq_quantthresh__16c2_s_p7_1, - _vq_quantmap__16c2_s_p7_1, - 11, - 11 -}; - -static static_codebook _16c2_s_p7_1 = { - 2, 121, - _vq_lengthlist__16c2_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16c2_s_p7_1, - NULL, - &_vq_auxt__16c2_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16c2_s_p8_0[] = { - 1, 4, 4, 7, 6, 7, 7, 6, 6, 8, 8, 9, 9,10,10, 6, - 6, 6, 8, 8, 9, 8, 8, 8, 9, 9,11,10,11,11, 7, 6, - 6, 8, 8, 9, 8, 7, 7, 9, 9,10,10,12,11,14, 8, 8, - 8, 9, 9, 9, 9, 9,10, 9,10,10,11,13,14, 8, 8, 8, - 8, 9, 9, 8, 8, 9, 9,10,10,11,12,14,13,11, 9, 9, - 9, 9, 9, 9, 9,10,11,10,13,12,14,11,13, 8, 9, 9, - 9, 9, 9,10,10,11,10,13,12,14,14,14, 8, 9, 9, 9, - 11,11,11,11,11,12,13,13,14,14,14, 9, 8, 9, 9,10, - 10,12,10,11,12,12,14,14,14,14,11,12,10,10,12,12, - 12,12,13,14,12,12,14,14,14,12,12, 9,10,11,11,12, - 14,12,14,14,14,14,14,14,14,14,11,11,12,11,12,14, - 14,14,14,14,14,14,14,14,14,12,11,11,11,11,14,14, - 14,14,14,14,14,14,14,14,14,14,13,12,14,14,14,14, - 14,14,14,14,14,14,14,14,14,12,12,12,13,14,14,13, - 13, -}; - -static float _vq_quantthresh__16c2_s_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__16c2_s_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p8_0 = { - _vq_quantthresh__16c2_s_p8_0, - _vq_quantmap__16c2_s_p8_0, - 15, - 15 -}; - -static static_codebook _16c2_s_p8_0 = { - 2, 225, - _vq_lengthlist__16c2_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__16c2_s_p8_0, - NULL, - &_vq_auxt__16c2_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__16c2_s_p8_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,11,12,11, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9,11,11,10, 7, 7, 8, - 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 11,11, 8, 7, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 9,10, - 10, 9,10,10,11,11,12, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10, 9,10,10,10,10,11,11,11, 8, 8, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 9, 8, 9, 9, 9, 9,10, 9, 9, 9,10,10,10, - 10, 9,10,11,11,11, 9, 9, 9, 9,10, 9, 9, 9,10,10, - 9,10, 9,10,10,10,10,10,11,12,11,11,11, 9, 9, 9, - 9, 9,10,10, 9,10,10,10,10,10,10,10,10,12,11,13, - 13,11, 9, 9, 9, 9,10,10, 9,10,10,10,10,11,10,10, - 10,10,11,12,11,12,11, 9, 9, 9,10,10, 9,10,10,10, - 10,10,10,10,10,10,10,11,11,11,12,11, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,11,12,12,12, - 11,11,11,10, 9,10,10,10,10,10,10,10,10,11,10,10, - 10,11,11,11,11,11,11,11,10,10,10,11,10,10,10,10, - 10,10,10,10,10,10,11,11,11,11,12,12,11,10,10,10, - 10,10,10,10,10,11,10,10,10,11,10,12,11,11,12,11, - 11,11,10,10,10,10,10,11,10,10,10,10,10,11,10,10, - 11,11,11,12,11,12,11,11,12,10,10,10,10,10,10,10, - 11,10,10,11,10,12,11,11,11,12,11,11,11,11,10,10, - 10,10,10,10,10,11,11,11,10,11,12,11,11,11,12,11, - 12,11,12,10,11,10,10,10,10,11,10,10,10,10,10,10, - 12,11,11,11,11,11,12,12,10,10,10,10,10,11,10,10, - 11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,11, - 10,11,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__16c2_s_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__16c2_s_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p8_1 = { - _vq_quantthresh__16c2_s_p8_1, - _vq_quantmap__16c2_s_p8_1, - 21, - 21 -}; - -static static_codebook _16c2_s_p8_1 = { - 2, 441, - _vq_lengthlist__16c2_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__16c2_s_p8_1, - NULL, - &_vq_auxt__16c2_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16c2_s_p9_0[] = { - 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__16c2_s_p9_0[] = { - -5120.5, -4189.5, -3258.5, -2327.5, -1396.5, -465.5, 465.5, 1396.5, - 2327.5, 3258.5, 4189.5, 5120.5, -}; - -static long _vq_quantmap__16c2_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p9_0 = { - _vq_quantthresh__16c2_s_p9_0, - _vq_quantmap__16c2_s_p9_0, - 13, - 13 -}; - -static static_codebook _16c2_s_p9_0 = { - 2, 169, - _vq_lengthlist__16c2_s_p9_0, - 1, -510275072, 1631393792, 4, 0, - _vq_quantlist__16c2_s_p9_0, - NULL, - &_vq_auxt__16c2_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p9_1[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16c2_s_p9_1[] = { - 1, 5, 5, 9, 8, 7, 7, 7, 6,10,11,11,11,11,11,11, - 11, 8, 7, 6, 8, 8,10, 9,10,10,10, 9,11,10,10,10, - 10,10, 8, 6, 6, 8, 8, 9, 8, 9, 8, 9,10,10,10,10, - 10,10,10,10, 8,10, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,10,10, 8, 9, 9, 9,10,10, 9,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 8, 9, 9,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 8, 8, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9,10, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 8, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9,10, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__16c2_s_p9_1[] = { - -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, - 24.5, 73.5, 122.5, 171.5, 220.5, 269.5, 318.5, 367.5, -}; - -static long _vq_quantmap__16c2_s_p9_1[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p9_1 = { - _vq_quantthresh__16c2_s_p9_1, - _vq_quantmap__16c2_s_p9_1, - 17, - 17 -}; - -static static_codebook _16c2_s_p9_1 = { - 2, 289, - _vq_lengthlist__16c2_s_p9_1, - 1, -518488064, 1622704128, 5, 0, - _vq_quantlist__16c2_s_p9_1, - NULL, - &_vq_auxt__16c2_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__16c2_s_p9_2[] = { - 13, - 12, - 14, - 11, - 15, - 10, - 16, - 9, - 17, - 8, - 18, - 7, - 19, - 6, - 20, - 5, - 21, - 4, - 22, - 3, - 23, - 2, - 24, - 1, - 25, - 0, - 26, -}; - -static long _vq_lengthlist__16c2_s_p9_2[] = { - 1, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 8, 7, 8, 7, 7, 4, 4, -}; - -static float _vq_quantthresh__16c2_s_p9_2[] = { - -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, -5.5, - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, - 11.5, 12.5, -}; - -static long _vq_quantmap__16c2_s_p9_2[] = { - 25, 23, 21, 19, 17, 15, 13, 11, - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, -}; - -static encode_aux_threshmatch _vq_auxt__16c2_s_p9_2 = { - _vq_quantthresh__16c2_s_p9_2, - _vq_quantmap__16c2_s_p9_2, - 27, - 27 -}; - -static static_codebook _16c2_s_p9_2 = { - 1, 27, - _vq_lengthlist__16c2_s_p9_2, - 1, -528875520, 1611661312, 5, 0, - _vq_quantlist__16c2_s_p9_2, - NULL, - &_vq_auxt__16c2_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__16c2_s_short[] = { - 7,10,11,11,11,14,15,15,17,14, 8, 6, 7, 7, 8, 9, - 11,11,14,17, 9, 6, 6, 6, 7, 7,10,11,15,16, 9, 6, - 6, 4, 4, 5, 8, 9,12,16,10, 6, 6, 4, 4, 4, 6, 9, - 13,16,10, 7, 6, 5, 4, 3, 5, 7,13,16,11, 9, 8, 7, - 6, 5, 5, 6,12,15,10,10,10, 9, 7, 6, 6, 7,11,15, - 13,13,13,13,11,10,10, 9,12,16,16,16,16,14,16,15, - 15,12,14,14, -}; - -static static_codebook _huff_book__16c2_s_short = { - 2, 100, - _huff_lengthlist__16c2_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c0_s_long[] = { - 3, 4,18, 8, 8, 8, 9,10,11,13, 3, 2,18, 5, 5, 6, - 8,11,12,12,18,18,18,18,18,18,18,18,18,18, 8, 5, - 18, 7, 8, 8,10,14,14,16, 8, 5,18, 7, 5, 6, 7,11, - 12,13, 8, 6,18, 7, 5, 6, 7,10,12,14, 8, 7,18,10, - 7, 6, 6, 8,11,14, 9,10,18,13, 9, 7, 6, 8,10,13, - 11,13,18,16,13,10, 9, 8, 8,11,12,17,18,17,18,14, - 11, 9,10,14, -}; - -static static_codebook _huff_book__44c0_s_long = { - 2, 100, - _huff_lengthlist__44c0_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c0_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c0_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p1_0 = { - _vq_quantthresh__44c0_s_p1_0, - _vq_quantmap__44c0_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c0_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c0_s_p1_0, - NULL, - &_vq_auxt__44c0_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p2_0 = { - _vq_quantthresh__44c0_s_p2_0, - _vq_quantmap__44c0_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c0_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_s_p2_0, - NULL, - &_vq_auxt__44c0_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p3_0 = { - _vq_quantthresh__44c0_s_p3_0, - _vq_quantmap__44c0_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c0_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c0_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_s_p3_0, - NULL, - &_vq_auxt__44c0_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c0_s_p4_0[] = { - 1, 3, 2, 8, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c0_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p4_0 = { - _vq_quantthresh__44c0_s_p4_0, - _vq_quantmap__44c0_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c0_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c0_s_p4_0, - NULL, - &_vq_auxt__44c0_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c0_s_p5_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 6, 7, 7, 7, - 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, - 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0, 0, - 8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10, 9, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static float _vq_quantthresh__44c0_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c0_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p5_0 = { - _vq_quantthresh__44c0_s_p5_0, - _vq_quantmap__44c0_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c0_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c0_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c0_s_p5_0, - NULL, - &_vq_auxt__44c0_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c0_s_p6_0[] = { - 1, 3, 4, 6, 6, 7, 8, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9,10,10,10, - 10,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 9,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10, 9,10,10,11,11,11,12,12,13,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, - 14, -}; - -static float _vq_quantthresh__44c0_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c0_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p6_0 = { - _vq_quantthresh__44c0_s_p6_0, - _vq_quantmap__44c0_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c0_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c0_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c0_s_p6_0, - NULL, - &_vq_auxt__44c0_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c0_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, - 10,11,10,10, 6, 9, 9,11,10,10,11, 9,10, 6, 9, 9, - 11,10,10,11, 9, 9, 7,10,10,11,11,11,12,11,11, 7, - 9, 9,10, 9, 9,11,11,10, 7, 9, 9,10,10,10,12,10, - 11, -}; - -static float _vq_quantthresh__44c0_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c0_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p7_0 = { - _vq_quantthresh__44c0_s_p7_0, - _vq_quantmap__44c0_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c0_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c0_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c0_s_p7_0, - NULL, - &_vq_auxt__44c0_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c0_s_p7_1[] = { - 2, 3, 3, 6, 6, 7, 7, 7, 7, 7, 7,10, 9, 9, 6, 6, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 6, 6, 7, 7, 8, 8, 8, - 8,10, 9,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c0_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c0_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p7_1 = { - _vq_quantthresh__44c0_s_p7_1, - _vq_quantmap__44c0_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c0_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c0_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c0_s_p7_1, - NULL, - &_vq_auxt__44c0_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c0_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 9, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 8, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 8, 9, 9,10,10,10,11,12,11, 0,13, - 13, 9, 8, 9, 9,10,10,10,11,11,11, 0, 0, 0,10,10, - 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 8,10, - 10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 12,12, 0, 0, 0,15,15,10,10,11, 9,12,12,13,13, 0, - 0, 0, 0, 0,12,11,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,11,12,11,14,13, -}; - -static float _vq_quantthresh__44c0_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c0_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p8_0 = { - _vq_quantthresh__44c0_s_p8_0, - _vq_quantmap__44c0_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c0_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c0_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c0_s_p8_0, - NULL, - &_vq_auxt__44c0_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_s_p8_1[] = { - 2, 3, 4, 4, 4, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c0_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p8_1 = { - _vq_quantthresh__44c0_s_p8_1, - _vq_quantmap__44c0_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c0_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c0_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_s_p8_1, - NULL, - &_vq_auxt__44c0_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p9_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_s_p9_0[] = { - 1, 7, 7,11,11,10,11,11,11,11, 9,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 8,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11, 8,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44c0_s_p9_0[] = { - -331.5, -110.5, 110.5, 331.5, -}; - -static long _vq_quantmap__44c0_s_p9_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p9_0 = { - _vq_quantthresh__44c0_s_p9_0, - _vq_quantmap__44c0_s_p9_0, - 5, - 5 -}; - -static static_codebook _44c0_s_p9_0 = { - 4, 625, - _vq_lengthlist__44c0_s_p9_0, - 1, -518283264, 1627103232, 3, 0, - _vq_quantlist__44c0_s_p9_0, - NULL, - &_vq_auxt__44c0_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c0_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,12,12,13,12, 6, 5, 5, - 7, 7, 8, 8,10,10,12,11,14,13, 6, 5, 5, 7, 7, 7, - 8, 9, 9,11,12,13,12,15, 7, 7, 7, 7, 9, 9,11,11, - 14,13,14,13,15, 7, 7, 8, 8, 8, 9,10,10,11,11,12, - 11,15,10,10, 8, 8,10,10,12,11,13,15,14,14,15,11, - 10, 8, 8,11,11,11,11,13,13,12,13,15,15,15,10,10, - 10,10,12,13,13,13,15,14,15,15,15,10,10,10,11,13, - 14,13,14,14,14,15,15,15,15,15,11,12,11,13,14,14, - 15,15,15,15,15,14,15,11,11,13,12,14,13,15,15,15, - 15,15,15,15,13,12,13,12,15,15,15,15,15,15,15,15, - 15,12,13,12,12,15,14,15,15, -}; - -static float _vq_quantthresh__44c0_s_p9_1[] = { - -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, 25.5, - 42.5, 59.5, 76.5, 93.5, -}; - -static long _vq_quantmap__44c0_s_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p9_1 = { - _vq_quantthresh__44c0_s_p9_1, - _vq_quantmap__44c0_s_p9_1, - 13, - 13 -}; - -static static_codebook _44c0_s_p9_1 = { - 2, 169, - _vq_lengthlist__44c0_s_p9_1, - 1, -522616832, 1620115456, 4, 0, - _vq_quantlist__44c0_s_p9_1, - NULL, - &_vq_auxt__44c0_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c0_s_p9_2[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 8, - 9,10,10,10, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,11,10,10, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9,10, 9, 9,10,10,11, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,11,11,10,11,11, 9, 9, - 9, 9, 9, 9,10, 9, 9, 9,10, 9,10,10,10,11,11, 9, - 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,11,10,10,10,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 11,11,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 11,11,10,10, 9,10,10,10, 9,10, 9, 9, 9, 9,10,10, - 11,10,11,11,11, 9,10, 9, 9, 9, 9, 9, 9, 9,10,10, - 11,10,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,11,11,10,11,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c0_s_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c0_s_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_s_p9_2 = { - _vq_quantthresh__44c0_s_p9_2, - _vq_quantmap__44c0_s_p9_2, - 17, - 17 -}; - -static static_codebook _44c0_s_p9_2 = { - 2, 289, - _vq_lengthlist__44c0_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c0_s_p9_2, - NULL, - &_vq_auxt__44c0_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c0_s_short[] = { - 6, 8,17,12,12,12,14,15,17,16, 5, 1,16, 5, 6, 6, - 9,12,14,13,16,16,16,16,16,16,16,16,16,16, 9, 4, - 16, 6, 9, 7,10,14,14,14, 8, 5,16, 8, 6, 7,10,13, - 15,16, 9, 6,16, 7, 7, 7,10,12,15,14,10, 8,16, 9, - 9, 9,10,12,15,14,13, 7,16, 8, 7, 7,10,12,14,13, - 15, 6,16, 7, 5, 5, 7, 9,13,16,14, 7,16, 8, 6, 6, - 8, 9,11,14, -}; - -static static_codebook _huff_book__44c0_s_short = { - 2, 100, - _huff_lengthlist__44c0_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c0_sm_long[] = { - 3, 4,10, 8,11, 9,10,10,11,13, 3, 2,10, 5, 8, 6, - 8,11,12,13,10, 8, 7,10, 7, 8, 9,11,12,13, 8, 5, - 12, 6, 9, 7,10,13,14,16,11, 7, 7, 9, 5, 6, 7,10, - 13,13, 8, 6, 7, 7, 5, 5, 6, 9,12,13, 9, 8, 8, 8, - 7, 6, 6, 8,11,14,10,10,10,11, 9, 8, 7, 8,10,13, - 11,14,12,15,13,11, 9, 8, 9,12,12,18,15,18,17,15, - 12,10,10,14, -}; - -static static_codebook _huff_book__44c0_sm_long = { - 2, 100, - _huff_lengthlist__44c0_sm_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c0_sm_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_sm_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c0_sm_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p1_0 = { - _vq_quantthresh__44c0_sm_p1_0, - _vq_quantmap__44c0_sm_p1_0, - 3, - 3 -}; - -static static_codebook _44c0_sm_p1_0 = { - 8, 6561, - _vq_lengthlist__44c0_sm_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c0_sm_p1_0, - NULL, - &_vq_auxt__44c0_sm_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_sm_p2_0[] = { - 1, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 6, 6, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 8, - 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 8, 8, 0, 0, - 0, 8, 8, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, 0, 0, 6, - 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10, - 10, 0, 0, 0,10, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_sm_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_sm_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p2_0 = { - _vq_quantthresh__44c0_sm_p2_0, - _vq_quantmap__44c0_sm_p2_0, - 5, - 5 -}; - -static static_codebook _44c0_sm_p2_0 = { - 4, 625, - _vq_lengthlist__44c0_sm_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_sm_p2_0, - NULL, - &_vq_auxt__44c0_sm_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_sm_p3_0[] = { - 2, 3, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_sm_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_sm_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p3_0 = { - _vq_quantthresh__44c0_sm_p3_0, - _vq_quantmap__44c0_sm_p3_0, - 5, - 5 -}; - -static static_codebook _44c0_sm_p3_0 = { - 4, 625, - _vq_lengthlist__44c0_sm_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_sm_p3_0, - NULL, - &_vq_auxt__44c0_sm_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c0_sm_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c0_sm_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c0_sm_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p4_0 = { - _vq_quantthresh__44c0_sm_p4_0, - _vq_quantmap__44c0_sm_p4_0, - 9, - 9 -}; - -static static_codebook _44c0_sm_p4_0 = { - 2, 81, - _vq_lengthlist__44c0_sm_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c0_sm_p4_0, - NULL, - &_vq_auxt__44c0_sm_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c0_sm_p5_0[] = { - 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, 8, 8, - 9, 9, 0, 6, 6, 7, 7, 8, 8,10,10, 0, 7, 7, 8, 8, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 8, 8, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static float _vq_quantthresh__44c0_sm_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c0_sm_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p5_0 = { - _vq_quantthresh__44c0_sm_p5_0, - _vq_quantmap__44c0_sm_p5_0, - 9, - 9 -}; - -static static_codebook _44c0_sm_p5_0 = { - 2, 81, - _vq_lengthlist__44c0_sm_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c0_sm_p5_0, - NULL, - &_vq_auxt__44c0_sm_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c0_sm_p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8,10,10,10,10,11, - 11, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 7, 7, 8, 8, 8, 8,10,10,10,10,11,11, - 11,11,12,12, 0, 0, 0, 8, 7, 8, 8,10,10,10,10,11, - 11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,12,13, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, 0, 9, - 9,10, 9,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static float _vq_quantthresh__44c0_sm_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c0_sm_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p6_0 = { - _vq_quantthresh__44c0_sm_p6_0, - _vq_quantmap__44c0_sm_p6_0, - 17, - 17 -}; - -static static_codebook _44c0_sm_p6_0 = { - 2, 289, - _vq_lengthlist__44c0_sm_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c0_sm_p6_0, - NULL, - &_vq_auxt__44c0_sm_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c0_sm_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 5, 7, 6,10, 9, 9,10, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10,10,10,11, 9,10, 6, 9, 9, - 10,10,10,11,10, 9, 7,10,10,11,11,11,11,11,11, 6, - 9, 9,10, 9,10,11,11,10, 6, 9, 9,10,10,10,11,10, - 11, -}; - -static float _vq_quantthresh__44c0_sm_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c0_sm_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p7_0 = { - _vq_quantthresh__44c0_sm_p7_0, - _vq_quantmap__44c0_sm_p7_0, - 3, - 3 -}; - -static static_codebook _44c0_sm_p7_0 = { - 4, 81, - _vq_lengthlist__44c0_sm_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c0_sm_p7_0, - NULL, - &_vq_auxt__44c0_sm_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c0_sm_p7_1[] = { - 2, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 9, 5, 5, 7, 7, - 7, 7, 8, 8, 8, 8, 9, 5, 5, 7, 7, 7, 7, 8, 8, 8, - 8,10, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c0_sm_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c0_sm_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p7_1 = { - _vq_quantthresh__44c0_sm_p7_1, - _vq_quantmap__44c0_sm_p7_1, - 11, - 11 -}; - -static static_codebook _44c0_sm_p7_1 = { - 2, 121, - _vq_lengthlist__44c0_sm_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c0_sm_p7_1, - NULL, - &_vq_auxt__44c0_sm_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c0_sm_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 9,10,10, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10,10,11,11,12,11, 0,12, - 12, 9, 9, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9, 9, - 9,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,10,12,12,13,13, 0, - 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,10,12,11,14,14, -}; - -static float _vq_quantthresh__44c0_sm_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c0_sm_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p8_0 = { - _vq_quantthresh__44c0_sm_p8_0, - _vq_quantmap__44c0_sm_p8_0, - 13, - 13 -}; - -static static_codebook _44c0_sm_p8_0 = { - 2, 169, - _vq_lengthlist__44c0_sm_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c0_sm_p8_0, - NULL, - &_vq_auxt__44c0_sm_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c0_sm_p8_1[] = { - 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c0_sm_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c0_sm_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p8_1 = { - _vq_quantthresh__44c0_sm_p8_1, - _vq_quantmap__44c0_sm_p8_1, - 5, - 5 -}; - -static static_codebook _44c0_sm_p8_1 = { - 2, 25, - _vq_lengthlist__44c0_sm_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c0_sm_p8_1, - NULL, - &_vq_auxt__44c0_sm_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p9_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c0_sm_p9_0[] = { - 1, 3, 4,11,11,11,11,11,11, 4, 6, 6,10,10,10,10, - 10,10, 4, 6, 5,10,10,10,10,10,10,10, 6, 7,10, 9, - 10,10,10,10,10, 7, 9,10, 9,10,10,10,10,10, 9,10, - 7, 9,10,10,10,10,10,10,10, 9,10,10,10,10,10,10, - 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44c0_sm_p9_0[] = { - -773.5, -552.5, -331.5, -110.5, 110.5, 331.5, 552.5, 773.5, -}; - -static long _vq_quantmap__44c0_sm_p9_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p9_0 = { - _vq_quantthresh__44c0_sm_p9_0, - _vq_quantmap__44c0_sm_p9_0, - 9, - 9 -}; - -static static_codebook _44c0_sm_p9_0 = { - 2, 81, - _vq_lengthlist__44c0_sm_p9_0, - 1, -516186112, 1627103232, 4, 0, - _vq_quantlist__44c0_sm_p9_0, - NULL, - &_vq_auxt__44c0_sm_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c0_sm_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,12,12,13,13, 6, 5, 5, - 7, 7, 8, 8,10,10,12,12,14,13, 6, 5, 5, 6, 7, 8, - 8,10, 9,11,12,13,12,18, 7, 7, 7, 7, 9, 9,11,11, - 14,14,14,13,17, 7, 7, 8, 7, 9, 9,10,10,12,11,13, - 12,18,10,10, 8, 8,10,10,12,11,13,14,16,15,17,11, - 11, 8, 8,11,11,11,12,13,13,13,15,18,18,18,10,11, - 10,10,12,13,14,13,17,14,17,17,17,10,10,11,11,14, - 14,14,13,14,14,18,18,18,17,15,11,12,12,13,15,15, - 16,17,18,16,18,14,15,11,11,14,13,14,14,16,17,18, - 17,17,17,18,14,13,13,12,17,15,17,16,18,17,18,18, - 18,12,13,12,13,16,14,18,18, -}; - -static float _vq_quantthresh__44c0_sm_p9_1[] = { - -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, 25.5, - 42.5, 59.5, 76.5, 93.5, -}; - -static long _vq_quantmap__44c0_sm_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p9_1 = { - _vq_quantthresh__44c0_sm_p9_1, - _vq_quantmap__44c0_sm_p9_1, - 13, - 13 -}; - -static static_codebook _44c0_sm_p9_1 = { - 2, 169, - _vq_lengthlist__44c0_sm_p9_1, - 1, -522616832, 1620115456, 4, 0, - _vq_quantlist__44c0_sm_p9_1, - NULL, - &_vq_auxt__44c0_sm_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c0_sm_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c0_sm_p9_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,11,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10, 9,10,11,10, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,11,10,11,11, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, - 11,11,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,11,10, - 11,11,10,10, 9,10,10,10, 9, 9, 9, 9, 9, 9,10,10, - 10,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, - 11,10,11,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,11,11,11,10,11,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c0_sm_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c0_sm_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c0_sm_p9_2 = { - _vq_quantthresh__44c0_sm_p9_2, - _vq_quantmap__44c0_sm_p9_2, - 17, - 17 -}; - -static static_codebook _44c0_sm_p9_2 = { - 2, 289, - _vq_lengthlist__44c0_sm_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c0_sm_p9_2, - NULL, - &_vq_auxt__44c0_sm_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c0_sm_short[] = { - 5, 7,12,12,13,13,13,15,16,18, 4, 2,11, 5, 9, 7, - 9,12,13,14,13, 7, 8, 9, 8, 9,11,13,19,19, 9, 4, - 12, 5,10, 7, 9,12,15,14,11, 6, 7, 7, 5, 6, 8,11, - 15,17,10, 5, 8, 6, 6, 5, 6, 9,14,14,10, 5, 9, 7, - 7, 6, 6, 9,12,14,12, 6,10, 7, 7, 7, 8, 9,13,14, - 14, 7, 9, 7, 5, 5, 6, 9,11,13,14, 9,10, 9, 6, 6, - 7, 8,10,13, -}; - -static static_codebook _huff_book__44c0_sm_short = { - 2, 100, - _huff_lengthlist__44c0_sm_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c1_s_long[] = { - 3, 4,19, 9,10, 9, 9,10,11,12, 4, 2,19, 5, 6, 6, - 8,10,12,11,19,19,19,19,19,19,19,19,18,18, 8, 4, - 18, 6, 8, 7,10,13,14,13,10, 5,18, 7, 4, 6, 7,10, - 12,13, 9, 6,18, 7, 5, 6, 7,10,12,13, 9, 7,18, 9, - 7, 6, 6, 7,10,13, 9, 9,18,12, 9, 8, 6, 6, 9,12, - 10,12,18,15,12,11, 9, 8, 8,11,11,14,18,17,15,13, - 12, 9,10,12, -}; - -static static_codebook _huff_book__44c1_s_long = { - 2, 100, - _huff_lengthlist__44c1_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c1_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c1_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p1_0 = { - _vq_quantthresh__44c1_s_p1_0, - _vq_quantmap__44c1_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c1_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c1_s_p1_0, - NULL, - &_vq_auxt__44c1_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p2_0 = { - _vq_quantthresh__44c1_s_p2_0, - _vq_quantmap__44c1_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c1_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_s_p2_0, - NULL, - &_vq_auxt__44c1_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_s_p3_0[] = { - 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p3_0 = { - _vq_quantthresh__44c1_s_p3_0, - _vq_quantmap__44c1_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c1_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c1_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_s_p3_0, - NULL, - &_vq_auxt__44c1_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c1_s_p4_0[] = { - 1, 3, 2, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c1_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p4_0 = { - _vq_quantthresh__44c1_s_p4_0, - _vq_quantmap__44c1_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c1_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c1_s_p4_0, - NULL, - &_vq_auxt__44c1_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c1_s_p5_0[] = { - 1, 3, 3, 5, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 8, 7, - 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 8, 8, 9, 9,10,10, 0, 0, 0, 8, 8, 9, 9,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static float _vq_quantthresh__44c1_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c1_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p5_0 = { - _vq_quantthresh__44c1_s_p5_0, - _vq_quantmap__44c1_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c1_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c1_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c1_s_p5_0, - NULL, - &_vq_auxt__44c1_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c1_s_p6_0[] = { - 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9,10,10, - 10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,12,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,11,12,12,12,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,12,12,13,13,14, - 14, -}; - -static float _vq_quantthresh__44c1_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c1_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p6_0 = { - _vq_quantthresh__44c1_s_p6_0, - _vq_quantmap__44c1_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c1_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c1_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c1_s_p6_0, - NULL, - &_vq_auxt__44c1_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10,11,10,10, 9, 9, 6, 9, 9, - 10,10,10,10, 9, 9, 7,10,10,11,10,10,11,11,11, 6, - 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10, 9, 9,11,10, - 10, -}; - -static float _vq_quantthresh__44c1_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c1_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p7_0 = { - _vq_quantthresh__44c1_s_p7_0, - _vq_quantmap__44c1_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c1_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c1_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c1_s_p7_0, - NULL, - &_vq_auxt__44c1_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c1_s_p7_1[] = { - 2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c1_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c1_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p7_1 = { - _vq_quantthresh__44c1_s_p7_1, - _vq_quantmap__44c1_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c1_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c1_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c1_s_p7_1, - NULL, - &_vq_auxt__44c1_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 8,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10,10,10,11,12,11, 0,12, - 13, 9, 8, 9, 9,10,10,11,11,11,11, 0, 0, 0, 9, 9, - 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, - 10,11,11,12,12, 0, 0, 0,13,14,10,10,11,11,12,12, - 12,13, 0, 0, 0,14,14,10,10,11,10,12,12,13,13, 0, - 0, 0, 0, 0,12,11,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,10,12,11,14,13, -}; - -static float _vq_quantthresh__44c1_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c1_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p8_0 = { - _vq_quantthresh__44c1_s_p8_0, - _vq_quantmap__44c1_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c1_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c1_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c1_s_p8_0, - NULL, - &_vq_auxt__44c1_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_s_p8_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c1_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p8_1 = { - _vq_quantthresh__44c1_s_p8_1, - _vq_quantmap__44c1_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c1_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c1_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_s_p8_1, - NULL, - &_vq_auxt__44c1_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_s_p9_0[] = { - 1, 6, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 7, 6, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 6, 6, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, -}; - -static float _vq_quantthresh__44c1_s_p9_0[] = { - -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5, 331.5, - 552.5, 773.5, 994.5, 1215.5, -}; - -static long _vq_quantmap__44c1_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p9_0 = { - _vq_quantthresh__44c1_s_p9_0, - _vq_quantmap__44c1_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c1_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c1_s_p9_0, - 1, -514541568, 1627103232, 4, 0, - _vq_quantlist__44c1_s_p9_0, - NULL, - &_vq_auxt__44c1_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,12,12,13,12, 6, 5, 5, - 7, 7, 8, 8,10,10,11,12,13,13, 6, 5, 5, 7, 7, 8, - 8, 9, 9,11,11,12,12,15, 7, 7, 7, 7, 9, 9,11,11, - 13,13,14,13,15, 7, 7, 8, 7, 9, 9,10,10,12,11,14, - 12,15,10,10, 8, 8,10,10,12,11,12,13,14,13,15,10, - 10, 8, 8,11,10,11,11,13,12,13,15,14,15,15,10,10, - 10,10,12,13,13,12,15,14,15,15,13,10,10,11,11,13, - 13,13,12,13,13,15,15,15,14,15,11,11,13,13,13,13, - 14,15,15,15,15,13,13,11,11,12,13,13,14,13,15,15, - 15,14,15,15,13,12,12,11,13,13,15,15,15,15,15,15, - 14,13,12,13,12,15,13,15,15, -}; - -static float _vq_quantthresh__44c1_s_p9_1[] = { - -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, 25.5, - 42.5, 59.5, 76.5, 93.5, -}; - -static long _vq_quantmap__44c1_s_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p9_1 = { - _vq_quantthresh__44c1_s_p9_1, - _vq_quantmap__44c1_s_p9_1, - 13, - 13 -}; - -static static_codebook _44c1_s_p9_1 = { - 2, 169, - _vq_lengthlist__44c1_s_p9_1, - 1, -522616832, 1620115456, 4, 0, - _vq_quantlist__44c1_s_p9_1, - NULL, - &_vq_auxt__44c1_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c1_s_p9_2[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 8, 9, 9, - 9,10,10,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9,10,10,11,10, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,11, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11,11, 9, 9, - 9, 9, 9, 9,10, 9,10, 9, 9, 9,10,10,10,11,10, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, - 11,11,10, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 11,11,11,10, 9,10,10,10, 9, 9, 9, 9,10, 9,10,10, - 10,10,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 11,10,10,10,10,10,10, 9, 9, 9, 9,10, 9, 9, 9, 9, - 10,10,10,11,11,10,10,11,11, 9, 9,10, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c1_s_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c1_s_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_s_p9_2 = { - _vq_quantthresh__44c1_s_p9_2, - _vq_quantmap__44c1_s_p9_2, - 17, - 17 -}; - -static static_codebook _44c1_s_p9_2 = { - 2, 289, - _vq_lengthlist__44c1_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c1_s_p9_2, - NULL, - &_vq_auxt__44c1_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c1_s_short[] = { - 5, 7,17,13,12,12,14,16,15,16, 4, 2,17, 5, 7, 6, - 8,11,14,13,16,16,16,16,16,16,16,16,16,16,10, 4, - 16, 4, 8, 6, 7,11,14,14,10, 5,16, 6, 5, 6, 8,12, - 15,15,10, 5,16, 5, 6, 5, 7,10,14,15,11, 6,16, 7, - 8, 7, 7,10,14,14,13, 8,16, 8, 7, 7, 8,10,12,13, - 12, 8,16, 7, 5, 5, 6, 8,11,13,13, 9,16, 9, 6, 6, - 7, 8,10,13, -}; - -static static_codebook _huff_book__44c1_s_short = { - 2, 100, - _huff_lengthlist__44c1_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c1_sm_long[] = { - 3, 4,10, 9,11, 9,10,11,11,13, 4, 2,11, 5, 7, 7, - 8,10,12,13,10,10, 7,12, 8, 9, 9,10,12,13, 8, 5, - 13, 6, 9, 7,10,12,15,15,10, 6, 7, 8, 5, 5, 7,10, - 12,13, 9, 6, 8, 7, 5, 5, 6, 9,11,12, 9, 8, 9, 9, - 6, 5, 5, 7,10,13,10,10,10,12, 9, 7, 6, 7, 9,13, - 10,13,11,17,11,11, 9, 8, 9,12,12,16,14,17,15,14, - 12,10,10,12, -}; - -static static_codebook _huff_book__44c1_sm_long = { - 2, 100, - _huff_lengthlist__44c1_sm_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c1_sm_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_sm_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c1_sm_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p1_0 = { - _vq_quantthresh__44c1_sm_p1_0, - _vq_quantmap__44c1_sm_p1_0, - 3, - 3 -}; - -static static_codebook _44c1_sm_p1_0 = { - 8, 6561, - _vq_lengthlist__44c1_sm_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c1_sm_p1_0, - NULL, - &_vq_auxt__44c1_sm_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_sm_p2_0[] = { - 1, 5, 5, 0, 0, 0, 5, 6, 0, 0, 0, 5, 6, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 8, - 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 8, 8, 0, 0, - 0, 8, 8, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, 0, 0, 6, - 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10, - 10, 0, 0, 0,10, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_sm_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_sm_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p2_0 = { - _vq_quantthresh__44c1_sm_p2_0, - _vq_quantmap__44c1_sm_p2_0, - 5, - 5 -}; - -static static_codebook _44c1_sm_p2_0 = { - 4, 625, - _vq_lengthlist__44c1_sm_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_sm_p2_0, - NULL, - &_vq_auxt__44c1_sm_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_sm_p3_0[] = { - 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 7, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_sm_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_sm_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p3_0 = { - _vq_quantthresh__44c1_sm_p3_0, - _vq_quantmap__44c1_sm_p3_0, - 5, - 5 -}; - -static static_codebook _44c1_sm_p3_0 = { - 4, 625, - _vq_lengthlist__44c1_sm_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_sm_p3_0, - NULL, - &_vq_auxt__44c1_sm_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c1_sm_p4_0[] = { - 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, - 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c1_sm_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c1_sm_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p4_0 = { - _vq_quantthresh__44c1_sm_p4_0, - _vq_quantmap__44c1_sm_p4_0, - 9, - 9 -}; - -static static_codebook _44c1_sm_p4_0 = { - 2, 81, - _vq_lengthlist__44c1_sm_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c1_sm_p4_0, - NULL, - &_vq_auxt__44c1_sm_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c1_sm_p5_0[] = { - 2, 3, 3, 5, 5, 6, 6, 8, 8, 0, 5, 5, 6, 6, 7, 7, - 9, 9, 0, 5, 5, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 7, 7, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, - 7, 7, 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, - 0, 0, 9, 9, 9, 9,10,10, 0, 0, 0, 0, 0, 8, 8,10, - 10, -}; - -static float _vq_quantthresh__44c1_sm_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c1_sm_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p5_0 = { - _vq_quantthresh__44c1_sm_p5_0, - _vq_quantmap__44c1_sm_p5_0, - 9, - 9 -}; - -static static_codebook _44c1_sm_p5_0 = { - 2, 81, - _vq_lengthlist__44c1_sm_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c1_sm_p5_0, - NULL, - &_vq_auxt__44c1_sm_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c1_sm_p6_0[] = { - 2, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, - 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, - 8, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 9, 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,10,10,11,11,11,11,13,12,13,13, 0, 0, - 0, 0, 0, 0, 0,10,10,11,11,11,11,13,13,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,12,12,13,12,14, - 14, -}; - -static float _vq_quantthresh__44c1_sm_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c1_sm_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p6_0 = { - _vq_quantthresh__44c1_sm_p6_0, - _vq_quantmap__44c1_sm_p6_0, - 17, - 17 -}; - -static static_codebook _44c1_sm_p6_0 = { - 2, 289, - _vq_lengthlist__44c1_sm_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c1_sm_p6_0, - NULL, - &_vq_auxt__44c1_sm_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c1_sm_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,10,10,10, 6, 9, 9,10,10,10,10, 9, 9, 6, 9, 9, - 10,10,10,10,10, 9, 7,10,10,11,10,10,11,11,11, 6, - 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10, 9, 9,11,10, - 10, -}; - -static float _vq_quantthresh__44c1_sm_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c1_sm_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p7_0 = { - _vq_quantthresh__44c1_sm_p7_0, - _vq_quantmap__44c1_sm_p7_0, - 3, - 3 -}; - -static static_codebook _44c1_sm_p7_0 = { - 4, 81, - _vq_lengthlist__44c1_sm_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c1_sm_p7_0, - NULL, - &_vq_auxt__44c1_sm_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c1_sm_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 9, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c1_sm_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c1_sm_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p7_1 = { - _vq_quantthresh__44c1_sm_p7_1, - _vq_quantmap__44c1_sm_p7_1, - 11, - 11 -}; - -static static_codebook _44c1_sm_p7_1 = { - 2, 121, - _vq_lengthlist__44c1_sm_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c1_sm_p7_1, - NULL, - &_vq_auxt__44c1_sm_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_sm_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, - 8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10,10,11,11,12,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, - 9, 9,10,10,11,12,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,12,12,13,13, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,10,12,12,13,13, 0, - 0, 0, 0, 0,12,11,11,11,12,12,14,13, 0, 0, 0, 0, - 0,12,12,11,10,12,12,14,13, -}; - -static float _vq_quantthresh__44c1_sm_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c1_sm_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p8_0 = { - _vq_quantthresh__44c1_sm_p8_0, - _vq_quantmap__44c1_sm_p8_0, - 13, - 13 -}; - -static static_codebook _44c1_sm_p8_0 = { - 2, 169, - _vq_lengthlist__44c1_sm_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c1_sm_p8_0, - NULL, - &_vq_auxt__44c1_sm_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c1_sm_p8_1[] = { - 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c1_sm_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c1_sm_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p8_1 = { - _vq_quantthresh__44c1_sm_p8_1, - _vq_quantmap__44c1_sm_p8_1, - 5, - 5 -}; - -static static_codebook _44c1_sm_p8_1 = { - 2, 25, - _vq_lengthlist__44c1_sm_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c1_sm_p8_1, - NULL, - &_vq_auxt__44c1_sm_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_sm_p9_0[] = { - 1, 5, 5,11,11,11,11,11,11,11,11,11,11, 4, 5, 5, - 11,10,11,11,11,11,11,11,11,11, 4, 5, 4,11,11,11, - 11,11,11,11,11,11,11,11, 6, 7,11, 9,11,11,11,11, - 11,11,11,11,11, 6, 7, 9, 8,11,11,11,11,11,11,11, - 11,11, 9, 9, 7, 8,11,11,11,11,11,11,11,11,11,10, - 10, 9,10,11,11,11,11,11,11,11,11,11,11,11, 8,11, - 10,10,11,11,11,11,11,11,11,11,11, 9,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11, 9,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,10,10,10,10,10, -}; - -static float _vq_quantthresh__44c1_sm_p9_0[] = { - -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5, 331.5, - 552.5, 773.5, 994.5, 1215.5, -}; - -static long _vq_quantmap__44c1_sm_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p9_0 = { - _vq_quantthresh__44c1_sm_p9_0, - _vq_quantmap__44c1_sm_p9_0, - 13, - 13 -}; - -static static_codebook _44c1_sm_p9_0 = { - 2, 169, - _vq_lengthlist__44c1_sm_p9_0, - 1, -514541568, 1627103232, 4, 0, - _vq_quantlist__44c1_sm_p9_0, - NULL, - &_vq_auxt__44c1_sm_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c1_sm_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7,10,10,12,12,13,13, 6, 5, 5, - 7, 7, 8, 8,10,10,12,12,14,13, 6, 5, 5, 7, 7, 8, - 8,10,10,12,12,13,13,16, 7, 7, 7, 7, 9, 9,11,11, - 13,14,13,15,18, 7, 6, 8, 7, 9, 9,11,10,12,12,14, - 12,19,10,10, 8, 8,10,10,12,11,13,15,15,15,17,11, - 11, 8, 7,11,10,12,12,13,13,14,15,16,17,17,10,11, - 10,10,13,13,14,13,16,15,17,17,16,10,10,11,11,14, - 14,16,13,14,14,17,19,17,15,14,11,11,13,13,15,14, - 16,15,17,16,17,14,14,11,11,14,13,14,14,14,15,17, - 16,16,16,17,13,13,13,13,16,14,17,15,16,17,18,18, - 17,13,13,13,13,15,15,16,16, -}; - -static float _vq_quantthresh__44c1_sm_p9_1[] = { - -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, 25.5, - 42.5, 59.5, 76.5, 93.5, -}; - -static long _vq_quantmap__44c1_sm_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p9_1 = { - _vq_quantthresh__44c1_sm_p9_1, - _vq_quantmap__44c1_sm_p9_1, - 13, - 13 -}; - -static static_codebook _44c1_sm_p9_1 = { - 2, 169, - _vq_lengthlist__44c1_sm_p9_1, - 1, -522616832, 1620115456, 4, 0, - _vq_quantlist__44c1_sm_p9_1, - NULL, - &_vq_auxt__44c1_sm_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c1_sm_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c1_sm_p9_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 7, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10, 9,10,10,10, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,10,11,11, 9, 9, - 9, 9, 9, 9, 9,10,10, 9, 9, 9,10,11,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,10,11, - 11,10,11, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 11,11,11,11, 9,10,10,10, 9, 9, 9, 9,10, 9,10,10, - 10,11,11,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, - 11,10,11,10,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,11,11,10,10,10,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c1_sm_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c1_sm_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c1_sm_p9_2 = { - _vq_quantthresh__44c1_sm_p9_2, - _vq_quantmap__44c1_sm_p9_2, - 17, - 17 -}; - -static static_codebook _44c1_sm_p9_2 = { - 2, 289, - _vq_lengthlist__44c1_sm_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c1_sm_p9_2, - NULL, - &_vq_auxt__44c1_sm_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c1_sm_short[] = { - 4, 7,13,13,13,13,14,16,16,19, 4, 2,13, 5, 8, 7, - 9,12,14,13,16, 9,10,10, 9,10,11,13,17,19, 9, 4, - 13, 5,10, 6, 8,11,15,15,11, 6, 9, 7, 6, 6, 8,11, - 14,18,11, 5, 9, 6, 6, 5, 6, 9,13,15,12, 6, 9, 7, - 6, 5, 5, 8,12,15,13, 7,10, 8, 6, 6, 7, 9,12,13, - 13, 9,11, 9, 6, 5, 6, 8,11,13,13,11,13,11, 7, 6, - 7, 8,10,12, -}; - -static static_codebook _huff_book__44c1_sm_short = { - 2, 100, - _huff_lengthlist__44c1_sm_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c2_s_long[] = { - 5, 5,12,10,11,10,10,10,11,13, 5, 1, 9, 5, 8, 7, - 8,10,13,13,12, 9, 8,11, 7, 8, 9,11,13,15, 9, 5, - 12, 6, 9, 8,10,12,15,14,12, 7, 6, 8, 5, 6, 7,10, - 12,13,10, 7, 8, 7, 6, 6, 7, 9,12,12,10, 8, 9, 9, - 7, 6, 6, 7,10,11,10, 9,10,11, 9, 8, 6, 6, 8,11, - 10,12,13,15,11,10, 8, 7, 8,11,11,13,16,16,14,13, - 11, 9, 9,10, -}; - -static static_codebook _huff_book__44c2_s_long = { - 2, 100, - _huff_lengthlist__44c2_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c2_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c2_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c2_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p1_0 = { - _vq_quantthresh__44c2_s_p1_0, - _vq_quantmap__44c2_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c2_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c2_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c2_s_p1_0, - NULL, - &_vq_auxt__44c2_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c2_s_p2_0[] = { - 1, 4, 4, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, - 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 4, 6, 6, 0, 0, 0, 8, 9, 0, 0, 0, 8, 8, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,11,10, 0, 0, - 0,11,11, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 7, - 8, 8, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, 0,11, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0,11,11, 0, 0, 0,11,11, - 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, - 0, 0,11,11, 0, 0, 0,11,11, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 9, 9, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, - 12,11, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0,12, - 11, 0, 0, 0,11,11, 0, 0, 0,11,11, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c2_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c2_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p2_0 = { - _vq_quantthresh__44c2_s_p2_0, - _vq_quantmap__44c2_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c2_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c2_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c2_s_p2_0, - NULL, - &_vq_auxt__44c2_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c2_s_p3_0[] = { - 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c2_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c2_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p3_0 = { - _vq_quantthresh__44c2_s_p3_0, - _vq_quantmap__44c2_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c2_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c2_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c2_s_p3_0, - NULL, - &_vq_auxt__44c2_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c2_s_p4_0[] = { - 1, 3, 3, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, - 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c2_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c2_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p4_0 = { - _vq_quantthresh__44c2_s_p4_0, - _vq_quantmap__44c2_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c2_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c2_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c2_s_p4_0, - NULL, - &_vq_auxt__44c2_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c2_s_p5_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 7, 7, 7, 7, 8, 8, - 9, 9, 0, 7, 7, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 7, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 8, 8, 9, 9,10,10, 0, 0, 0, 8, 8, 9, 9,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static float _vq_quantthresh__44c2_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c2_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p5_0 = { - _vq_quantthresh__44c2_s_p5_0, - _vq_quantmap__44c2_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c2_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c2_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c2_s_p5_0, - NULL, - &_vq_auxt__44c2_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c2_s_p6_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9, 9, - 9,10,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, - 9, 9, 9,10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, - 10,10,10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,11,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,11,11,12,12,13,12,14,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,12,12,12,13,13, - 14, -}; - -static float _vq_quantthresh__44c2_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c2_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p6_0 = { - _vq_quantthresh__44c2_s_p6_0, - _vq_quantmap__44c2_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c2_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c2_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c2_s_p6_0, - NULL, - &_vq_auxt__44c2_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c2_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10, 9,10,10, - 10,11,10,10, 6, 9, 9,10,10,10,11, 9, 9, 6, 9, 9, - 10,10,10,11, 9, 9, 7,10,10,11,10,10,11,11,10, 6, - 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10, 9,10,11,10, - 10, -}; - -static float _vq_quantthresh__44c2_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c2_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p7_0 = { - _vq_quantthresh__44c2_s_p7_0, - _vq_quantmap__44c2_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c2_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c2_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c2_s_p7_0, - NULL, - &_vq_auxt__44c2_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c2_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7,10, 6, 6, 6, 6, - 7, 7, 8, 7, 8, 8, 9, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10, 9, 9, 6, - 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10, 9, 8, 8, 8, - 8, 8, 8,10,10,10, 9,10, 8, 8, 8, 8, 8, 8,10,10, - 10,10, 9, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c2_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c2_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p7_1 = { - _vq_quantthresh__44c2_s_p7_1, - _vq_quantmap__44c2_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c2_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c2_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c2_s_p7_1, - NULL, - &_vq_auxt__44c2_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c2_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, - 8, 8, 9,10, 9,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9,10,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,12,12, 0,13, - 12, 9, 9,10, 9,10,10,11,11,11,12, 0, 0, 0,10,10, - 10,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,12,12,12,13, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,11,12,12,12,14,13, 0, 0, 0, 0, - 0,12,12,12,12,12,12,14,13, -}; - -static float _vq_quantthresh__44c2_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c2_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p8_0 = { - _vq_quantthresh__44c2_s_p8_0, - _vq_quantmap__44c2_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c2_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c2_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c2_s_p8_0, - NULL, - &_vq_auxt__44c2_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c2_s_p8_1[] = { - 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c2_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c2_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p8_1 = { - _vq_quantthresh__44c2_s_p8_1, - _vq_quantmap__44c2_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c2_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c2_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c2_s_p8_1, - NULL, - &_vq_auxt__44c2_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c2_s_p9_0[] = { - 1, 5, 4,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 5, 7, 7, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 9, 6, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44c2_s_p9_0[] = { - -1215.5, -994.5, -773.5, -552.5, -331.5, -110.5, 110.5, 331.5, - 552.5, 773.5, 994.5, 1215.5, -}; - -static long _vq_quantmap__44c2_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p9_0 = { - _vq_quantthresh__44c2_s_p9_0, - _vq_quantmap__44c2_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c2_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c2_s_p9_0, - 1, -514541568, 1627103232, 4, 0, - _vq_quantlist__44c2_s_p9_0, - NULL, - &_vq_auxt__44c2_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c2_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,11,11,12,12, 6, 5, 5, - 7, 7, 8, 8,10,10,12,11,13,13, 6, 5, 5, 7, 7, 8, - 8, 9, 9,11,11,12,13,16, 7, 7, 8, 8, 9, 9,10,10, - 13,13,16,14,16, 7, 7, 8, 8, 9, 9,10,10,13,13,15, - 13,16,10,10, 8, 8,10,10,11,11,12,12,15,14,16,11, - 11, 8, 8,10,10,11,11,12,12,14,13,16,16,16,10,11, - 10,10,12,12,14,13,13,13,16,16,16,10, 9,10, 7,13, - 12,13,13,13,13,16,16,16,14,15,11,11,12,12,13,13, - 15,14,16,16,16,16,14,11, 9,12, 9,15,13,13,14,16, - 16,16,16,16,13,13,12,12,14,15,16,15,16,16,15,16, - 16,13,12,12,11,15,13,14,15, -}; - -static float _vq_quantthresh__44c2_s_p9_1[] = { - -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, 25.5, - 42.5, 59.5, 76.5, 93.5, -}; - -static long _vq_quantmap__44c2_s_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p9_1 = { - _vq_quantthresh__44c2_s_p9_1, - _vq_quantmap__44c2_s_p9_1, - 13, - 13 -}; - -static static_codebook _44c2_s_p9_1 = { - 2, 169, - _vq_lengthlist__44c2_s_p9_1, - 1, -522616832, 1620115456, 4, 0, - _vq_quantlist__44c2_s_p9_1, - NULL, - &_vq_auxt__44c2_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c2_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c2_s_p9_2[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 9,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,11,10, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 7, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,10,11,10, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,10, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,11,10,10,11, - 10,10,11, 9, 9,10,10, 9, 9,10,10, 9, 9,10,10,10, - 11,10,11,10,10, 9, 9,10, 9, 9, 9, 9, 9, 9,10,10, - 10,10,11,10,10, 9,10, 9, 9, 9, 9,10, 9, 9, 9,10, - 10,10,11,11,10,10,10,10, 9, 9,10, 9, 9, 9,10, 9, - 10,10,10,10,11,10,11,11,10, 9, 9, 9, 9, 9, 9, 9, - 10, -}; - -static float _vq_quantthresh__44c2_s_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c2_s_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c2_s_p9_2 = { - _vq_quantthresh__44c2_s_p9_2, - _vq_quantmap__44c2_s_p9_2, - 17, - 17 -}; - -static static_codebook _44c2_s_p9_2 = { - 2, 289, - _vq_lengthlist__44c2_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c2_s_p9_2, - NULL, - &_vq_auxt__44c2_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c2_s_short[] = { - 9, 9,12,11,11,11,12,12,12,13, 6, 2, 9, 4, 7, 6, - 8,11,15,17,12, 7, 8, 9, 7, 9,10,13,15,17,11, 4, - 12, 4, 9, 5, 8,11,16,17,12, 6, 7, 6, 6, 6, 8,11, - 15,17,11, 5, 9, 5, 6, 5, 6,10,15,15,12, 7,11, 7, - 7, 6, 7,10,13,16,13, 8,11, 9, 8, 6, 7,10,12,16, - 13, 9, 9, 8, 5, 5, 6, 9,12,14,16,10, 9, 9, 6, 5, - 6, 8,11,14, -}; - -static static_codebook _huff_book__44c2_s_short = { - 2, 100, - _huff_lengthlist__44c2_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c3_s_long[] = { - 4, 5,11,10,12,10,10,10,11,12, 4, 2,11, 5,11, 6, - 7, 9,13,16,11,11, 7,11, 6, 8, 8, 9,11,12,10, 5, - 11, 6,10, 7, 9,11,16,16,14, 9, 6, 9, 4, 5, 7, 8, - 11,13,10, 6, 7, 7, 5, 5, 6, 8,10,11,10, 7, 8, 8, - 6, 6, 5, 7, 9,10,10, 9, 8,11, 8, 7, 6, 6, 7,10, - 10,12,10,14, 9, 9, 7, 7, 7, 9,10,14,11,16,12,12, - 9, 8, 8, 9, -}; - -static static_codebook _huff_book__44c3_s_long = { - 2, 100, - _huff_lengthlist__44c3_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c3_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c3_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c3_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p1_0 = { - _vq_quantthresh__44c3_s_p1_0, - _vq_quantmap__44c3_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c3_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c3_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c3_s_p1_0, - NULL, - &_vq_auxt__44c3_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c3_s_p2_0[] = { - 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 8, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 8, - 7, 0, 0, 0, 7, 7, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 6, 0, 0, 0, 7, 8, 0, 0, 0, 7, 7, 0, - 0, 0, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, - 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 8, 0, - 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 9,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 9, - 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c3_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c3_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p2_0 = { - _vq_quantthresh__44c3_s_p2_0, - _vq_quantmap__44c3_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c3_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c3_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c3_s_p2_0, - NULL, - &_vq_auxt__44c3_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c3_s_p3_0[] = { - 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c3_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c3_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p3_0 = { - _vq_quantthresh__44c3_s_p3_0, - _vq_quantmap__44c3_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c3_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c3_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c3_s_p3_0, - NULL, - &_vq_auxt__44c3_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c3_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c3_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c3_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p4_0 = { - _vq_quantthresh__44c3_s_p4_0, - _vq_quantmap__44c3_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c3_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c3_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c3_s_p4_0, - NULL, - &_vq_auxt__44c3_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c3_s_p5_0[] = { - 2, 3, 3, 5, 5, 7, 7, 9, 8, 0, 4, 4, 7, 7, 7, 7, - 9, 9, 0, 5, 5, 6, 7, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 7, 7, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, - 8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__44c3_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c3_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p5_0 = { - _vq_quantthresh__44c3_s_p5_0, - _vq_quantmap__44c3_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c3_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c3_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c3_s_p5_0, - NULL, - &_vq_auxt__44c3_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c3_s_p6_0[] = { - 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, 9, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, - 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, - 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, - 8, 9, 9,10,10,11,11,12,12,13,12, 0, 0, 0, 0, 0, - 9, 9,10,10,11,10,11,11,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, - 0, 0, 0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,12,13,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13, - 13, -}; - -static float _vq_quantthresh__44c3_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c3_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p6_0 = { - _vq_quantthresh__44c3_s_p6_0, - _vq_quantmap__44c3_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c3_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c3_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c3_s_p6_0, - NULL, - &_vq_auxt__44c3_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c3_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10,10,10,10, 9, 9, 6, 9, 9, - 10,10,10,10, 9, 9, 7,10,10,10,11,11,11,10,11, 6, - 9, 9,10,10, 9,11,10,10, 6, 9, 9,10, 9, 9,10,10, - 10, -}; - -static float _vq_quantthresh__44c3_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c3_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p7_0 = { - _vq_quantthresh__44c3_s_p7_0, - _vq_quantmap__44c3_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c3_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c3_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c3_s_p7_0, - NULL, - &_vq_auxt__44c3_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c3_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 9, -}; - -static float _vq_quantthresh__44c3_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c3_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p7_1 = { - _vq_quantthresh__44c3_s_p7_1, - _vq_quantmap__44c3_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c3_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c3_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c3_s_p7_1, - NULL, - &_vq_auxt__44c3_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c3_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 8, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 5, 5, 7, 7, 8, - 8, 9, 9, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,11,12, 9, 9, 9,10,10,10,11,11,11,12, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0,10, 9, - 9, 9,10,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,11,11,12,13, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,11,12,12,13,13, -}; - -static float _vq_quantthresh__44c3_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c3_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p8_0 = { - _vq_quantthresh__44c3_s_p8_0, - _vq_quantmap__44c3_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c3_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c3_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c3_s_p8_0, - NULL, - &_vq_auxt__44c3_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c3_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c3_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c3_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p8_1 = { - _vq_quantthresh__44c3_s_p8_1, - _vq_quantmap__44c3_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c3_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c3_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c3_s_p8_1, - NULL, - &_vq_auxt__44c3_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c3_s_p9_0[] = { - 1, 4, 4,10,10,10,10,10,10,10,10,10,10, 5,10, 7, - 10,10,10,10,10,10,10,10,10,10, 5, 8, 6,10,10,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44c3_s_p9_0[] = { - -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, 382.5, - 637.5, 892.5, 1147.5, 1402.5, -}; - -static long _vq_quantmap__44c3_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p9_0 = { - _vq_quantthresh__44c3_s_p9_0, - _vq_quantmap__44c3_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c3_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c3_s_p9_0, - 1, -514332672, 1627381760, 4, 0, - _vq_quantlist__44c3_s_p9_0, - NULL, - &_vq_auxt__44c3_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c3_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,11,11,11,12,12,12, 6, - 5, 5, 7, 7, 8, 8,10, 9,11,11,13,12,13,14, 6, 5, - 5, 7, 7, 8, 8,10,10,11,11,12,12,13,13,17, 7, 7, - 8, 8, 9, 9,10,10,12,12,14,13,14,14,17, 8, 7, 8, - 7, 9, 9,10,10,12,12,13,13,13,14,17,11,11, 8, 8, - 10,10,11,11,12,12,13,13,15,14,17,11,11, 8, 7,10, - 10,11,11,12,12,13,14,14,13,17,17,17,10,11,10,10, - 12,12,13,12,13,13,14,14,17,16,16,10,10,11, 9,13, - 12,13,13,13,13,14,14,16,16,15,13,15,11,12,12,12, - 14,14,14,14,14,15,16,16,16,14,14,11, 9,12,10,13, - 13,14,14,14,14,16,16,16,16,16,12,13,12,12,13,14, - 14,14,15,15,15,16,16,15,16,13,11,13,10,14,12,15, - 14,16,14,15,16,16,16,16,15,15,13,13,13,13,14,14, - 16,16,16,16,16,15,16,16,14,13,12,13,13,14,16,16, - 16, -}; - -static float _vq_quantthresh__44c3_s_p9_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__44c3_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p9_1 = { - _vq_quantthresh__44c3_s_p9_1, - _vq_quantmap__44c3_s_p9_1, - 15, - 15 -}; - -static static_codebook _44c3_s_p9_1 = { - 2, 225, - _vq_lengthlist__44c3_s_p9_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__44c3_s_p9_1, - NULL, - &_vq_auxt__44c3_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c3_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c3_s_p9_2[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 8,10, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 8, 7, 8, 8, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,10, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,10, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 11,10,11,10, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,10,10, - 10,10,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, 9, - 10,10,10,10,11,10,11,10,10, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c3_s_p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c3_s_p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c3_s_p9_2 = { - _vq_quantthresh__44c3_s_p9_2, - _vq_quantmap__44c3_s_p9_2, - 17, - 17 -}; - -static static_codebook _44c3_s_p9_2 = { - 2, 289, - _vq_lengthlist__44c3_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c3_s_p9_2, - NULL, - &_vq_auxt__44c3_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c3_s_short[] = { - 10,10,13,12,13,12,12,12,12,13, 8, 3,11, 5,10, 5, - 7,11,14,16,11, 6, 9, 8, 7, 7, 9,12,15,16,12, 4, - 12, 4,10, 5, 8,12,15,16,12, 6, 8, 7, 5, 5, 7,11, - 14,15,11, 4, 9, 4, 6, 4, 6, 9,13,15,10, 6,10, 7, - 7, 5, 6, 9,13,15,12, 9,11, 9, 8, 6, 7, 9,12,15, - 13,11,10, 9, 6, 5, 5, 8,11,14,16,12,11,10, 6, 5, - 6, 8,10,14, -}; - -static static_codebook _huff_book__44c3_s_short = { - 2, 100, - _huff_lengthlist__44c3_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c4_s_long[] = { - 3, 5,11,11,13,11,11,11,12,12, 5, 2,11, 6,10, 7, - 8,10,13,16,10, 9, 6,10, 6, 7, 8, 9,11,12,11, 5, - 11, 7,10, 8,10,12,15,17,12, 8, 5, 9, 4, 5, 7, 8, - 10,12,10, 6, 7, 8, 5, 5, 6, 8,10,11,10, 8, 8, 9, - 6, 6, 6, 7, 9,10,11,10, 9,11, 8, 7, 6, 6, 7, 9, - 11,13,10,15, 9, 9, 7, 7, 7, 8,10,15,11,17,11,11, - 9, 8, 7, 8, -}; - -static static_codebook _huff_book__44c4_s_long = { - 2, 100, - _huff_lengthlist__44c4_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c4_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, - 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8,10, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, - 0, 0, 0, 0, 0, 8, 8,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c4_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c4_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p1_0 = { - _vq_quantthresh__44c4_s_p1_0, - _vq_quantmap__44c4_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c4_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c4_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c4_s_p1_0, - NULL, - &_vq_auxt__44c4_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c4_s_p2_0[] = { - 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 8, - 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, - 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 8, 0, - 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, 9, - 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c4_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c4_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p2_0 = { - _vq_quantthresh__44c4_s_p2_0, - _vq_quantmap__44c4_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c4_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c4_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c4_s_p2_0, - NULL, - &_vq_auxt__44c4_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c4_s_p3_0[] = { - 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c4_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c4_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p3_0 = { - _vq_quantthresh__44c4_s_p3_0, - _vq_quantmap__44c4_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c4_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c4_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c4_s_p3_0, - NULL, - &_vq_auxt__44c4_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c4_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c4_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c4_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p4_0 = { - _vq_quantthresh__44c4_s_p4_0, - _vq_quantmap__44c4_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c4_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c4_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c4_s_p4_0, - NULL, - &_vq_auxt__44c4_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c4_s_p5_0[] = { - 2, 3, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 7, 7, 7, 7, - 9, 9, 0, 4, 4, 7, 7, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static float _vq_quantthresh__44c4_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c4_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p5_0 = { - _vq_quantthresh__44c4_s_p5_0, - _vq_quantmap__44c4_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c4_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c4_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c4_s_p5_0, - NULL, - &_vq_auxt__44c4_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c4_s_p6_0[] = { - 2, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10, 9,10,10,11, - 11, 0, 4, 4, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, 9, - 10,11,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, - 10,11,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,11,12,12, 0, 0, 0, 0, 0, 8, 8, - 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, - 8, 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, - 9, 9,10,10,11,10,11,11,12,12,12,12, 0, 0, 0, 0, - 0, 0, 0,10,10,10,10,11,11,12,12,13,12, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,11,12,12,12,13,12, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,11,11,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,12,12,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13, - 13, -}; - -static float _vq_quantthresh__44c4_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c4_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p6_0 = { - _vq_quantthresh__44c4_s_p6_0, - _vq_quantmap__44c4_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c4_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c4_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c4_s_p6_0, - NULL, - &_vq_auxt__44c4_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c4_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10,10,10,10,10, 9, 6, 9, 9, - 10, 9,10,11, 9, 9, 7,10,10,11,11,11,11,10,10, 6, - 9, 9,10, 9, 9,10,10, 9, 6, 9, 9,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44c4_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c4_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p7_0 = { - _vq_quantthresh__44c4_s_p7_0, - _vq_quantmap__44c4_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c4_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c4_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c4_s_p7_0, - NULL, - &_vq_auxt__44c4_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c4_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 9,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c4_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c4_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p7_1 = { - _vq_quantthresh__44c4_s_p7_1, - _vq_quantmap__44c4_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c4_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c4_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c4_s_p7_1, - NULL, - &_vq_auxt__44c4_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c4_s_p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9,10,10,11,11, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10,10,10,10,11,11, 0,12, - 12, 9, 8, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9,10, - 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, - 10,11,11,12,12, 0, 0, 0,13,13,10,10,10,11,12,12, - 12,12, 0, 0, 0,14,14,10,10,11,11,11,11,12,12, 0, - 0, 0, 0, 0,11,12,11,11,12,12,12,13, 0, 0, 0, 0, - 0,12,12,11,11,12,12,13,13, -}; - -static float _vq_quantthresh__44c4_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c4_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p8_0 = { - _vq_quantthresh__44c4_s_p8_0, - _vq_quantmap__44c4_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c4_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c4_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c4_s_p8_0, - NULL, - &_vq_auxt__44c4_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c4_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c4_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c4_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p8_1 = { - _vq_quantthresh__44c4_s_p8_1, - _vq_quantmap__44c4_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c4_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c4_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c4_s_p8_1, - NULL, - &_vq_auxt__44c4_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c4_s_p9_0[] = { - 1, 3, 3,10,10,10,10,10,10,10,10,10,10, 5, 7, 7, - 10,10,10,10,10,10,10,10,10,10, 5, 7, 8,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44c4_s_p9_0[] = { - -1732.5, -1417.5, -1102.5, -787.5, -472.5, -157.5, 157.5, 472.5, - 787.5, 1102.5, 1417.5, 1732.5, -}; - -static long _vq_quantmap__44c4_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p9_0 = { - _vq_quantthresh__44c4_s_p9_0, - _vq_quantmap__44c4_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c4_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c4_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - _vq_quantlist__44c4_s_p9_0, - NULL, - &_vq_auxt__44c4_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c4_s_p9_1[] = { - 1, 4, 4, 5, 6, 7, 7, 9, 9,11,11,12,12,12,13, 6, - 5, 5, 6, 7, 8, 8,10,10,11,11,13,13,13,13, 6, 5, - 5, 7, 7, 8, 8,11,10,11,11,12,13,12,13,17, 7, 7, - 8, 8, 9, 9,11,11,12,12,12,13,15,14,17, 7, 7, 8, - 8, 9, 9,11,10,12,12,13,13,14,13,17,11,12, 9, 9, - 10,10,12,12,13,13,14,14,14,14,17,12,11, 9, 8,11, - 10,11,12,13,13,13,14,14,14,17,17,17,11,11,11,11, - 13,13,13,13,14,13,15,14,17,17,17,11,10,11, 9,13, - 12,13,14,15,14,15,14,17,17,17,14,14,11,12,12,13, - 14,14,16,15,15,15,17,17,17,15,15,12,11,13,11,13, - 13,13,15,16,14,17,17,17,17,17,13,13,14,13,14,14, - 15,15,16,15,17,17,17,17,17,14,14,14,12,14,12,16, - 14,15,14,17,17,17,17,17,16,17,13,14,14,15,15,15, - 17,15,17,17,17,17,17,16,17,13,14,14,14,15,17,15, - 15, -}; - -static float _vq_quantthresh__44c4_s_p9_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44c4_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p9_1 = { - _vq_quantthresh__44c4_s_p9_1, - _vq_quantmap__44c4_s_p9_1, - 15, - 15 -}; - -static static_codebook _44c4_s_p9_1 = { - 2, 225, - _vq_lengthlist__44c4_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44c4_s_p9_1, - NULL, - &_vq_auxt__44c4_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c4_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c4_s_p9_2[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9,11, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,11, 5, 5, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10, - 10,10,10,11,11,11, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, - 11,11,11, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, - 10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,11,11,11,11,11,11,11,10,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 12,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12, - 11,12,12,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44c4_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c4_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c4_s_p9_2 = { - _vq_quantthresh__44c4_s_p9_2, - _vq_quantmap__44c4_s_p9_2, - 21, - 21 -}; - -static static_codebook _44c4_s_p9_2 = { - 2, 441, - _vq_lengthlist__44c4_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c4_s_p9_2, - NULL, - &_vq_auxt__44c4_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c4_s_short[] = { - 4, 9,13,12,16,11,12,15,15,16, 4, 2,11, 5,10, 6, - 8,11,14,14,13,11, 8,11, 7, 8,10,13,17,17,10, 4, - 11, 5, 9, 6, 9,13,17,17,13, 9, 6, 9, 5, 5, 7,11, - 15,17,10, 5, 7, 6, 5, 4, 7,10,15,15,10, 7, 9, 8, - 7, 6, 7,10,14,13,13,10,11,10, 8, 7, 8,10,14,14, - 12,11,10, 9, 6, 5, 6, 9,13,17,14,13,11,10, 6, 6, - 6, 8,11,16, -}; - -static static_codebook _huff_book__44c4_s_short = { - 2, 100, - _huff_lengthlist__44c4_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c5_s_long[] = { - 3, 6, 9,14,11,13,12,12,12,12, 6, 3, 5, 8, 6, 8, - 10,11,12,14, 9, 5, 4,10, 5, 7, 8, 9,11,12,13, 8, - 10, 9, 9, 9,12,15,16,17,10, 6, 5, 9, 3, 5, 6, 8, - 10,12,10, 8, 7, 9, 5, 5, 6, 8,10,11,10, 9, 8,11, - 6, 6, 6, 7, 8,10,12,11, 9,13, 8, 7, 6, 6, 7, 9, - 11,13,10,15, 9, 9, 7, 7, 7, 8,10,15,10,17,11,10, - 9, 8, 7, 7, -}; - -static static_codebook _huff_book__44c5_s_long = { - 2, 100, - _huff_lengthlist__44c5_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c5_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 7, 6, 0, 0, 0, 0, - 0, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9, 8, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 9, 8, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c5_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c5_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p1_0 = { - _vq_quantthresh__44c5_s_p1_0, - _vq_quantmap__44c5_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c5_s_p1_0 = { - 8, 6561, - _vq_lengthlist__44c5_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c5_s_p1_0, - NULL, - &_vq_auxt__44c5_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c5_s_p2_0[] = { - 2, 4, 4, 0, 0, 0, 6, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 5, 0, 0, 0, 8, - 7, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 0, 0, 0, 7, 8, 0, 0, 0, 7, 8, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 8, 8, 0, 0, - 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 6, - 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 9, 9, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0,10, - 10, 0, 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c5_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c5_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p2_0 = { - _vq_quantthresh__44c5_s_p2_0, - _vq_quantmap__44c5_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c5_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c5_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c5_s_p2_0, - NULL, - &_vq_auxt__44c5_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c5_s_p3_0[] = { - 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c5_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c5_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p3_0 = { - _vq_quantthresh__44c5_s_p3_0, - _vq_quantmap__44c5_s_p3_0, - 5, - 5 -}; - -static static_codebook _44c5_s_p3_0 = { - 4, 625, - _vq_lengthlist__44c5_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c5_s_p3_0, - NULL, - &_vq_auxt__44c5_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c5_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 8, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c5_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c5_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p4_0 = { - _vq_quantthresh__44c5_s_p4_0, - _vq_quantmap__44c5_s_p4_0, - 9, - 9 -}; - -static static_codebook _44c5_s_p4_0 = { - 2, 81, - _vq_lengthlist__44c5_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c5_s_p4_0, - NULL, - &_vq_auxt__44c5_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c5_s_p5_0[] = { - 2, 3, 4, 5, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 7, 7, 8, 8,10,10, 0, 0, 0, 7, 8, 8, 8,10,10, 0, - 0, 0, 9, 9, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__44c5_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c5_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p5_0 = { - _vq_quantthresh__44c5_s_p5_0, - _vq_quantmap__44c5_s_p5_0, - 9, - 9 -}; - -static static_codebook _44c5_s_p5_0 = { - 2, 81, - _vq_lengthlist__44c5_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c5_s_p5_0, - NULL, - &_vq_auxt__44c5_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c5_s_p6_0[] = { - 2, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,12, - 12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 6, 6, 7, 7, 8, 8, 9,10,10,10,11,11, - 11,12,12,12, 0, 0, 0, 7, 7, 8, 8,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 7, 7, 8, 9,10,10,10, - 10,11,11,12,12,12,13, 0, 0, 0, 8, 8, 9, 9,10,10, - 10,10,11,11,12,12,13,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, - 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, - 8, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 9, 9,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,12,13,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, - 13, -}; - -static float _vq_quantthresh__44c5_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c5_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p6_0 = { - _vq_quantthresh__44c5_s_p6_0, - _vq_quantmap__44c5_s_p6_0, - 17, - 17 -}; - -static static_codebook _44c5_s_p6_0 = { - 2, 289, - _vq_lengthlist__44c5_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c5_s_p6_0, - NULL, - &_vq_auxt__44c5_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c5_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10,10, 9,11,10,10, 6, 9, 9, - 10, 9,10,11,10, 9, 7,10,10,11,11,11,11,10,10, 6, - 9, 9,10,10, 9,10, 9, 9, 6, 9, 9,10,10,10,11, 9, - 9, -}; - -static float _vq_quantthresh__44c5_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c5_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p7_0 = { - _vq_quantthresh__44c5_s_p7_0, - _vq_quantmap__44c5_s_p7_0, - 3, - 3 -}; - -static static_codebook _44c5_s_p7_0 = { - 4, 81, - _vq_lengthlist__44c5_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c5_s_p7_0, - NULL, - &_vq_auxt__44c5_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c5_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c5_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c5_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p7_1 = { - _vq_quantthresh__44c5_s_p7_1, - _vq_quantmap__44c5_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c5_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c5_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c5_s_p7_1, - NULL, - &_vq_auxt__44c5_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c5_s_p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9,10,10,10,10, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,11,12, 9, 9, 9, 9, 9,10,10,10,11,11, 0,13, - 12, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0, 9,10, - 9, 9,10,10,11,11,12,11, 0, 0, 0,10,10, 9, 9,10, - 10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,11,12, - 12,12, 0, 0, 0,14,14,10,10,11,11,11,11,12,12, 0, - 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,11,12,12,13,13, -}; - -static float _vq_quantthresh__44c5_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c5_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p8_0 = { - _vq_quantthresh__44c5_s_p8_0, - _vq_quantmap__44c5_s_p8_0, - 13, - 13 -}; - -static static_codebook _44c5_s_p8_0 = { - 2, 169, - _vq_lengthlist__44c5_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c5_s_p8_0, - NULL, - &_vq_auxt__44c5_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c5_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c5_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c5_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p8_1 = { - _vq_quantthresh__44c5_s_p8_1, - _vq_quantmap__44c5_s_p8_1, - 5, - 5 -}; - -static static_codebook _44c5_s_p8_1 = { - 2, 25, - _vq_lengthlist__44c5_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c5_s_p8_1, - NULL, - &_vq_auxt__44c5_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c5_s_p9_0[] = { - 1, 3, 3,11,11,11,11,11,11,11,11,11,11,11,11, 5, - 7, 7,11,11,11,11,11,11,11,11,11,11,11,11, 5, 9, - 7,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44c5_s_p9_0[] = { - -2320.5, -1963.5, -1606.5, -1249.5, -892.5, -535.5, -178.5, 178.5, - 535.5, 892.5, 1249.5, 1606.5, 1963.5, 2320.5, -}; - -static long _vq_quantmap__44c5_s_p9_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p9_0 = { - _vq_quantthresh__44c5_s_p9_0, - _vq_quantmap__44c5_s_p9_0, - 15, - 15 -}; - -static static_codebook _44c5_s_p9_0 = { - 2, 225, - _vq_lengthlist__44c5_s_p9_0, - 1, -512522752, 1628852224, 4, 0, - _vq_quantlist__44c5_s_p9_0, - NULL, - &_vq_auxt__44c5_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p9_1[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c5_s_p9_1[] = { - 1, 4, 4, 6, 6, 8, 7, 9, 9,10,10,11,11,12,12,13, - 13, 6, 5, 5, 6, 6, 8, 8,10,10,11,11,12,12,13,13, - 13,13, 6, 5, 5, 7, 7, 8, 8,10,10,11,11,12,12,13, - 13,13,13,18, 7, 7, 8, 8, 9, 9,10,11,11,11,12,12, - 13,13,13,14,18, 7, 7, 8, 8, 9, 9,11,10,12,12,13, - 13,13,13,14,15,18,12,12, 9, 9,10,10,11,11,12,12, - 13,13,13,14,14,14,18,12,12, 9, 8,10,10,11,11,12, - 12,14,13,13,14,15,15,18,16,18,11,11,11,11,12,12, - 13,13,13,14,14,14,14,15,17,18,17,11,10,11, 9,12, - 13,13,13,14,14,13,14,14,14,18,18,18,13,14,11,12, - 12,12,13,14,13,13,14,15,16,15,18,18,18,15,13,12, - 9,12,11,13,14,14,15,14,14,16,14,18,18,18,18,18, - 12,13,13,13,13,14,15,14,15,15,15,15,18,18,18,18, - 17,14,12,13,11,14,12,15,14,14,15,16,15,18,18,18, - 17,18,15,18,13,13,14,13,15,14,16,15,17,16,18,18, - 17,18,18,15,17,14,13,14,12,14,14,15,15,15,15,18, - 18,18,17,17,18,18,14,15,14,14,14,14,15,14,16,16, - 17,18,18,18,18,17,17,15,15,13,13,15,13,15,13,15, - 15, -}; - -static float _vq_quantthresh__44c5_s_p9_1[] = { - -157.5, -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, - 10.5, 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, 157.5, -}; - -static long _vq_quantmap__44c5_s_p9_1[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p9_1 = { - _vq_quantthresh__44c5_s_p9_1, - _vq_quantmap__44c5_s_p9_1, - 17, - 17 -}; - -static static_codebook _44c5_s_p9_1 = { - 2, 289, - _vq_lengthlist__44c5_s_p9_1, - 1, -520814592, 1620377600, 5, 0, - _vq_quantlist__44c5_s_p9_1, - NULL, - &_vq_auxt__44c5_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c5_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c5_s_p9_2[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,11, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11, 5, 5, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,11,11,11,11, - 11,11,11, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,11,11,11,11,11,11,11,10, 9,10,10,10,10,10,10, - 10,10,10, 9,10,10,11,11,11,11,11,11,11, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10, 9,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, - 11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44c5_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c5_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c5_s_p9_2 = { - _vq_quantthresh__44c5_s_p9_2, - _vq_quantmap__44c5_s_p9_2, - 21, - 21 -}; - -static static_codebook _44c5_s_p9_2 = { - 2, 441, - _vq_lengthlist__44c5_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c5_s_p9_2, - NULL, - &_vq_auxt__44c5_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c5_s_short[] = { - 3, 9,10,15,10,10,11,15,15,17, 4, 5, 7, 8, 7, 7, - 9,13,15,16, 7, 6, 6,10, 6, 8, 9,12,12,16,10, 8, - 11, 8, 8, 7,11,15,17,17, 8, 5, 5, 8, 3, 4, 6,10, - 15,17,10, 7, 7, 7, 4, 4, 5,10,14,17,10, 9, 8, 9, - 6, 5, 6,10,14,17,12,12,11,12, 9, 8, 8,11,14,17, - 13,14,13,10, 7, 5, 6, 9,13,17,14,14,14,10, 7, 5, - 6, 7,10,15, -}; - -static static_codebook _huff_book__44c5_s_short = { - 2, 100, - _huff_lengthlist__44c5_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c6_s_long[] = { - 3, 8,11,13,13,13,12,12,13,18, 6, 3, 4, 7, 9, 9, - 11,11,13,16, 9, 4, 3, 5, 7, 7, 9,10,14,18,11, 7, - 4, 4, 6, 6, 8,10,14,15,11, 9, 6, 6, 6, 6, 8,10, - 13,15,10, 9, 7, 6, 6, 6, 7, 8,12,12,12,10, 9, 8, - 7, 6, 6, 7,11,12,11,10,10, 9, 9, 7, 7, 6, 9,12, - 12,12,13,13,13,10, 9, 8,10,12,13,14,16,16,17,14, - 12,11,11,13, -}; - -static static_codebook _huff_book__44c6_s_long = { - 2, 100, - _huff_lengthlist__44c6_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c6_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 8, 0, - 8, 8, 6, 7, 8, 0, 8, 9, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 8, 8, 0, 8, 8, 0, 8, 8, 5, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, - 8, -}; - -static float _vq_quantthresh__44c6_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c6_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p1_0 = { - _vq_quantthresh__44c6_s_p1_0, - _vq_quantmap__44c6_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c6_s_p1_0 = { - 4, 81, - _vq_lengthlist__44c6_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c6_s_p1_0, - NULL, - &_vq_auxt__44c6_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c6_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 9, 9, 0, 5, 5, 9, 9, 0, - 7, 7,10,10, 0, 0, 0,10,10, 5, 7, 7, 9, 9, 0, 8, - 7,10, 9, 0, 8, 8,10,10, 0,10,10,11,11, 0, 0, 0, - 11,11, 5, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8,10, - 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, - 0,11,10,12,12, 0,11,11,12,12, 0,13,13,14,14, 0, - 0, 0,14,14, 8, 9, 9,10,11, 0,10,11,12,12, 0,11, - 11,12,12, 0,13,13,14,14, 0, 0, 0,14,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 8,11,10, 0, 0, 0,11,11, 5, - 7, 8,11,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 8, - 9,10,11, 0, 0, 0,11,11, 9,10,10,12,12, 0,10,10, - 12,11, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, - 13, 9,10,10,12,12, 0,10,10,11,12, 0,10,10,12,12, - 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, - 10,10, 0, 8, 9,11,11, 0, 0, 0,11,10, 5, 7, 8,10, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 8,11,11, - 0, 0, 0,11,11, 9,10,10,12,12, 0,10,10,12,12, 0, - 10,10,12,12, 0,12,12,13,13, 0, 0, 0,13,13, 9, 9, - 10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,12,12, - 13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10,13,13, 0, 9, 8,12,12, 0, 8, 9,12,12, 0, - 10, 9,12,12, 0, 0, 0,12,12, 7,10,10,13,13, 0, 9, - 9,12,12, 0, 9, 8,12,12, 0, 9,10,12,12, 0, 0, 0, - 12,12,10,11,11,14,14, 0,11,10,13,13, 0,11,11,13, - 13, 0,12,12,13,13, 0, 0, 0,13,13,10,11,11,14,14, - 0,10,11,13,13, 0,11,11,13,13, 0,12,12,13,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, - 11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12, - 12,13,13, 0, 0, 0,13,13,10,11,11,14,14, 0,11,11, - 13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,13, - 13, -}; - -static float _vq_quantthresh__44c6_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c6_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p2_0 = { - _vq_quantthresh__44c6_s_p2_0, - _vq_quantmap__44c6_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c6_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c6_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c6_s_p2_0, - NULL, - &_vq_auxt__44c6_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c6_s_p3_0[] = { - 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, - 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 8, 8,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c6_s_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c6_s_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p3_0 = { - _vq_quantthresh__44c6_s_p3_0, - _vq_quantmap__44c6_s_p3_0, - 9, - 9 -}; - -static static_codebook _44c6_s_p3_0 = { - 2, 81, - _vq_lengthlist__44c6_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c6_s_p3_0, - NULL, - &_vq_auxt__44c6_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c6_s_p4_0[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 8, 9,10,10,11,11, - 11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12,12,12, 0, 0, 0, 6, 6, 7, 7, 9, 9, - 10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 7, 7, 9, - 9,10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c6_s_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c6_s_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p4_0 = { - _vq_quantthresh__44c6_s_p4_0, - _vq_quantmap__44c6_s_p4_0, - 17, - 17 -}; - -static static_codebook _44c6_s_p4_0 = { - 2, 289, - _vq_lengthlist__44c6_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c6_s_p4_0, - NULL, - &_vq_auxt__44c6_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c6_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 4, 7, 7, 9,10,10,10, - 10,10, 4, 7, 7, 9,10,10,10,10,10, 5, 9, 9, 9,11, - 11, 9,11,11, 7,10,10,11,12,11,12,12,12, 7,10,10, - 11,12,12,12,12,12, 6,10,10, 9,11,11,10,11,11, 7, - 10, 9,11,12,12,11,12,11, 7,10,10,11,12,12,11,12, - 12, -}; - -static float _vq_quantthresh__44c6_s_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c6_s_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p5_0 = { - _vq_quantthresh__44c6_s_p5_0, - _vq_quantmap__44c6_s_p5_0, - 3, - 3 -}; - -static static_codebook _44c6_s_p5_0 = { - 4, 81, - _vq_lengthlist__44c6_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c6_s_p5_0, - NULL, - &_vq_auxt__44c6_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c6_s_p5_1[] = { - 3, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,11, 4, 4, 6, 6, - 8, 8, 9, 9, 9, 9,11, 4, 4, 6, 6, 8, 8, 9, 8, 9, - 9,12, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,12,12,12, 6, - 6, 8, 8, 9, 9, 9, 9,11,11,11, 7, 7, 8, 8, 9, 9, - 9, 9,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, - 7, 7, 8, 8, 8, 8, 9, 9,11,11,11,11,11, 8, 8, 8, - 8, 9, 9,11,11,11,11,11, 7, 7, 8, 8, 8, 8,11,11, - 11,11,11, 7, 7, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c6_s_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c6_s_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p5_1 = { - _vq_quantthresh__44c6_s_p5_1, - _vq_quantmap__44c6_s_p5_1, - 11, - 11 -}; - -static static_codebook _44c6_s_p5_1 = { - 2, 121, - _vq_lengthlist__44c6_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c6_s_p5_1, - NULL, - &_vq_auxt__44c6_s_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c6_s_p6_0[] = { - 1, 4, 4, 6, 7, 8, 8, 8, 8, 9, 9,10,10, 5, 5, 5, - 7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9, - 9, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10, - 11,11,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12, 0,11,11, 8, 8,10, 9,10,11,11,11,12,12, 0,12, - 12, 8, 8,10, 9,11,11,12,11,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__44c6_s_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c6_s_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p6_0 = { - _vq_quantthresh__44c6_s_p6_0, - _vq_quantmap__44c6_s_p6_0, - 13, - 13 -}; - -static static_codebook _44c6_s_p6_0 = { - 2, 169, - _vq_lengthlist__44c6_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c6_s_p6_0, - NULL, - &_vq_auxt__44c6_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c6_s_p6_1[] = { - 3, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6, 4, 4, 5, 4, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c6_s_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c6_s_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p6_1 = { - _vq_quantthresh__44c6_s_p6_1, - _vq_quantmap__44c6_s_p6_1, - 5, - 5 -}; - -static static_codebook _44c6_s_p6_1 = { - 2, 25, - _vq_lengthlist__44c6_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c6_s_p6_1, - NULL, - &_vq_auxt__44c6_s_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c6_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 7, 7, 8, 8, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9, 9, 9,11,11,12,12,19, 7, 7, 7, 7, 9, 9,10,10, - 11,11,12,12,19, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12,19,11,11, 8, 8,10,10,11,11,11,12,12,12,19,12, - 12, 8, 8,10, 9,11,11,12,12,13,12,19,19,19,11,11, - 10,10,11,11,12,12,13,13,19,19,19,11,11,10,10,11, - 11,12,12,13,13,19,19,19,14,14,11,11,11,12,13,13, - 13,13,19,19,19,15,15,11,11,12,12,13,12,14,14,19, - 19,19,19,18,13,13,12,12,13,13,14,14,18,18,18,18, - 18,13,12,12,12,13,13,14,14, -}; - -static float _vq_quantthresh__44c6_s_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44c6_s_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p7_0 = { - _vq_quantthresh__44c6_s_p7_0, - _vq_quantmap__44c6_s_p7_0, - 13, - 13 -}; - -static static_codebook _44c6_s_p7_0 = { - 2, 169, - _vq_lengthlist__44c6_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44c6_s_p7_0, - NULL, - &_vq_auxt__44c6_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c6_s_p7_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 7, 7, - 7, 7, 7, 7, 8, 8, 9, 5, 5, 6, 6, 7, 7, 7, 7, 7, - 7, 9, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 7, - 7, 7, 7, 7, 8, 7, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, - 7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 8, 9, 8, 8, 7, - 7, 7, 7, 9, 9, 8, 8, 9, 8, 8, 7, 7, 8, 8, 9, 9, - 9, 9, 8, 7, 7, 7, 7, 8, 8, -}; - -static float _vq_quantthresh__44c6_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c6_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p7_1 = { - _vq_quantthresh__44c6_s_p7_1, - _vq_quantmap__44c6_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c6_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c6_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c6_s_p7_1, - NULL, - &_vq_auxt__44c6_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c6_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 7, 9, 9, 9,10,11,11, 6, - 5, 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11, 6, 5, - 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,17, 8, 8, - 8, 8,10,10, 8, 9,10,10,11,11,12,11,17, 8, 8, 9, - 9,10,10, 9, 9,10,10,11,12,12,12,17,12,13, 9, 9, - 10,10, 9,10,10,10,11,11,13,12,17,13,13,10, 9,10, - 10,10,10,10,11,12,11,12,12,17,17,17, 9, 9, 9, 9, - 10,10,11,11,11,12,12,13,17,17,17, 9, 9, 9, 9,11, - 10,11,11,12,12,12,13,17,17,17,13,13,10,10,11,11, - 12,11,12,13,13,13,17,17,17,14,13,10, 9,11, 9,12, - 12,12,13,13,14,17,17,17,17,17,11,12,11,11,12,12, - 13,14,13,14,17,17,17,17,17,12,10,11, 8,12,11,13, - 14,14,14,17,17,16,16,16,13,15,11,12,12,13,13,13, - 14,14,16,16,16,16,16,14,13,12, 9,13,10,14,13,14, - 13, -}; - -static float _vq_quantthresh__44c6_s_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44c6_s_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p8_0 = { - _vq_quantthresh__44c6_s_p8_0, - _vq_quantmap__44c6_s_p8_0, - 15, - 15 -}; - -static static_codebook _44c6_s_p8_0 = { - 2, 225, - _vq_lengthlist__44c6_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44c6_s_p8_0, - NULL, - &_vq_auxt__44c6_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c6_s_p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 8, 9, 9, 9,11, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,11,10,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 9,10, 9, - 10,10, 9,11,11,11, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10, 9,10, 9, 9, 9, 9,11,11,11,11,11, 8, 8, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,10, 9, 9, - 9, 9,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10, - 9,10, 9,10,10,10,10,11,11,11,11,11, 9, 9, 9, 9, - 9, 9,10,10,10,10, 9,10,10, 9,10, 9,11,11,11,11, - 11,11,11, 9, 9, 9, 9,10, 9,10, 9, 9,10,10,10,10, - 10,10,11,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10, - 9,10, 9,10,10, 9,11,11,11,11,11,11,10, 9, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11, 9,10, 9,10, 9,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10, 9,10,10,10,10, 9,10, 9,10,10,11, - 11,11,11,11,11,11,11,11,10,10,10, 9,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, - 10, 9,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44c6_s_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c6_s_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p8_1 = { - _vq_quantthresh__44c6_s_p8_1, - _vq_quantmap__44c6_s_p8_1, - 21, - 21 -}; - -static static_codebook _44c6_s_p8_1 = { - 2, 441, - _vq_lengthlist__44c6_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c6_s_p8_1, - NULL, - &_vq_auxt__44c6_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c6_s_p9_0[] = { - 1, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44c6_s_p9_0[] = { - -3503.5, -2866.5, -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, - 1592.5, 2229.5, 2866.5, 3503.5, -}; - -static long _vq_quantmap__44c6_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p9_0 = { - _vq_quantthresh__44c6_s_p9_0, - _vq_quantmap__44c6_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c6_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c6_s_p9_0, - 1, -511845376, 1630791680, 4, 0, - _vq_quantlist__44c6_s_p9_0, - NULL, - &_vq_auxt__44c6_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c6_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 7, 8, 9,10,11, 6, 6, 6, - 7, 8, 8, 8, 7, 8, 9,10,11,10, 6, 5, 6, 7, 8, 8, - 8, 8, 8, 9,10,10,11,14, 9, 8, 8, 8, 9, 8, 8, 9, - 10,10,12,11,14, 8, 8, 9, 8, 9, 8, 8, 8,11,10,11, - 11,14,14,13, 8, 9, 9, 9, 9,10,11,11,12,12,13,12, - 12, 8, 7,10, 9, 9, 9,11,11,11,10,13,13,13, 8, 9, - 9, 8,12,11,11,11,13,11,13,13,13, 9, 8, 9, 8,10, - 10,11,10,11,10,13,13,13,12,12, 9,10,11,11,11,12, - 13,12,13,13,13,13,12,10,10,10, 9,13,12,12,13,13, - 13,13,13,13,12,12,10,10,12,12,13,13,13,13,13,13, - 13,12,12,11,12,12,12,12,13, -}; - -static float _vq_quantthresh__44c6_s_p9_1[] = { - -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5, - 122.5, 171.5, 220.5, 269.5, -}; - -static long _vq_quantmap__44c6_s_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p9_1 = { - _vq_quantthresh__44c6_s_p9_1, - _vq_quantmap__44c6_s_p9_1, - 13, - 13 -}; - -static static_codebook _44c6_s_p9_1 = { - 2, 169, - _vq_lengthlist__44c6_s_p9_1, - 1, -518889472, 1622704128, 4, 0, - _vq_quantlist__44c6_s_p9_1, - NULL, - &_vq_auxt__44c6_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c6_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44c6_s_p9_2[] = { - 2, 4, 3, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44c6_s_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44c6_s_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44c6_s_p9_2 = { - _vq_quantthresh__44c6_s_p9_2, - _vq_quantmap__44c6_s_p9_2, - 49, - 49 -}; - -static static_codebook _44c6_s_p9_2 = { - 1, 49, - _vq_lengthlist__44c6_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44c6_s_p9_2, - NULL, - &_vq_auxt__44c6_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c6_s_short[] = { - 4, 9,11,11,13,13,17,16,17,17, 4, 4, 6, 7, 9, 9, - 12,15,17,17, 7, 5, 4, 5, 7, 8,11,12,17,17, 9, 6, - 4, 3, 5, 6,10,14,17,17,11, 8, 6, 4, 5, 6, 9,13, - 17,17,11,10, 7, 5, 5, 5, 8,12,17,17,13,12, 9, 8, - 7, 6, 8,11,17,17,13,13, 9, 6, 6, 5, 6, 9,17,17, - 17,16,10, 8, 7, 7, 8, 9,17,17,17,17,14,12,11,11, - 11,13,17,17, -}; - -static static_codebook _huff_book__44c6_s_short = { - 2, 100, - _huff_lengthlist__44c6_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c7_s_long[] = { - 3, 8,11,13,14,13,13,12,14,16, 6, 4, 5, 7, 9,10, - 11,11,13,15,10, 4, 3, 5, 7, 7,10,10,14,16,11, 7, - 4, 4, 5, 6, 8,10,13,15,12, 9, 6, 5, 5, 6, 8, 9, - 13,15,11, 9, 7, 6, 5, 5, 6, 8,11,13,11,10, 9, 8, - 7, 6, 6, 7,11,12,12,11,10, 9, 8, 7, 6, 6, 9,11, - 12,12,12,12,12,10, 9, 8,10,12,12,14,15,16,16,14, - 12,10,11,13, -}; - -static static_codebook _huff_book__44c7_s_long = { - 2, 100, - _huff_lengthlist__44c7_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c7_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 7, 0, 9, 8, 0, - 8, 8, 5, 7, 8, 0, 8, 9, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 8, 8, 0, 8, 8, 0, 8, 8, 5, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, - 8, -}; - -static float _vq_quantthresh__44c7_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c7_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p1_0 = { - _vq_quantthresh__44c7_s_p1_0, - _vq_quantmap__44c7_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c7_s_p1_0 = { - 4, 81, - _vq_lengthlist__44c7_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c7_s_p1_0, - NULL, - &_vq_auxt__44c7_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c7_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 9, 9, 0, 5, 5, 9, 9, 0, - 7, 7,10, 9, 0, 0, 0, 9,10, 5, 7, 7, 9, 9, 0, 8, - 7,10, 9, 0, 8, 7,10, 9, 0,10, 9,11,11, 0, 0, 0, - 11,11, 6, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8,10, - 10, 0, 9, 9,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, - 0,11,10,12,12, 0,11,11,12,12, 0,13,13,14,14, 0, - 0, 0,14,14, 8, 9, 9,10,11, 0,10,11,11,12, 0,11, - 11,12,12, 0,13,13,14,14, 0, 0, 0,14,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7,11,11, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 8,11,10, 0, 0, 0,11,11, 5, - 7, 8,11,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 8, - 9,10,11, 0, 0, 0,11,11, 9,10,10,12,12, 0,10,10, - 12,11, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, - 13, 9,10,10,12,12, 0,10,10,11,12, 0,10,10,12,12, - 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, - 10,10, 0, 9, 9,11,11, 0, 0, 0,11,10, 5, 7, 8,10, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,11, - 0, 0, 0,10,11, 9,10, 9,12,11, 0,10,10,12,12, 0, - 10,10,12,11, 0,12,12,13,13, 0, 0, 0,13,13, 9, 9, - 10,11,12, 0,10,10,12,12, 0,10,10,11,12, 0,12,12, - 13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 9, 9,13,13, 0, 9, 8,12,12, 0, 8, 9,12,12, 0, - 10, 9,12,12, 0, 0, 0,12,12, 7,10, 9,13,13, 0, 9, - 9,12,12, 0, 9, 8,12,12, 0, 9,10,12,12, 0, 0, 0, - 12,12,10,11,11,14,14, 0,11,10,13,12, 0,11,11,13, - 13, 0,12,12,13,13, 0, 0, 0,13,13,10,11,11,14,14, - 0,10,11,12,13, 0,11,11,13,13, 0,12,12,13,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10, - 11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12, - 12,13,13, 0, 0, 0,13,13,10,11,11,14,14, 0,11,11, - 13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,13, - 13, -}; - -static float _vq_quantthresh__44c7_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c7_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p2_0 = { - _vq_quantthresh__44c7_s_p2_0, - _vq_quantmap__44c7_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c7_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c7_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c7_s_p2_0, - NULL, - &_vq_auxt__44c7_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c7_s_p3_0[] = { - 2, 4, 4, 5, 5, 7, 7, 8, 8, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, - 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c7_s_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c7_s_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p3_0 = { - _vq_quantthresh__44c7_s_p3_0, - _vq_quantmap__44c7_s_p3_0, - 9, - 9 -}; - -static static_codebook _44c7_s_p3_0 = { - 2, 81, - _vq_lengthlist__44c7_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c7_s_p3_0, - NULL, - &_vq_auxt__44c7_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c7_s_p4_0[] = { - 3, 4, 4, 6, 5, 7, 7, 7, 7, 8, 8, 9, 9,10,10,11, - 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9,10,10,10, - 11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, - 11,11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c7_s_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c7_s_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p4_0 = { - _vq_quantthresh__44c7_s_p4_0, - _vq_quantmap__44c7_s_p4_0, - 17, - 17 -}; - -static static_codebook _44c7_s_p4_0 = { - 2, 289, - _vq_lengthlist__44c7_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c7_s_p4_0, - NULL, - &_vq_auxt__44c7_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c7_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 4, 7, 7,10,11,10,10, - 11,11, 4, 7, 7,10,10,11,10,10,11, 5,10,10, 9,12, - 11,10,12,12, 7,11,10,12,12,12,12,13,13, 7,10,11, - 11,12,12,12,13,13, 5,10,10,10,12,12,10,12,12, 7, - 11,10,12,13,13,12,12,12, 7,10,11,12,13,13,12,12, - 12, -}; - -static float _vq_quantthresh__44c7_s_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c7_s_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p5_0 = { - _vq_quantthresh__44c7_s_p5_0, - _vq_quantmap__44c7_s_p5_0, - 3, - 3 -}; - -static static_codebook _44c7_s_p5_0 = { - 4, 81, - _vq_lengthlist__44c7_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c7_s_p5_0, - NULL, - &_vq_auxt__44c7_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c7_s_p5_1[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9,12, 4, 4, 6, 6, - 7, 7, 8, 8, 9, 9,11, 5, 5, 6, 6, 7, 7, 8, 8, 9, - 9,12, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,12,12,12, 6, - 6, 7, 7, 8, 8, 9, 9,12,12,12, 6, 6, 7, 7, 8, 8, - 9, 9,12,11,11, 6, 6, 7, 7, 8, 8, 9, 9,12,12,11, - 7, 7, 8, 8, 8, 8, 8, 8,12,12,12,11,11, 8, 8, 8, - 8, 8, 8,12,12,12,11,11, 7, 7, 7, 7, 8, 8,12,12, - 12,11,11, 7, 7, 7, 7, 8, 8, -}; - -static float _vq_quantthresh__44c7_s_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c7_s_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p5_1 = { - _vq_quantthresh__44c7_s_p5_1, - _vq_quantmap__44c7_s_p5_1, - 11, - 11 -}; - -static static_codebook _44c7_s_p5_1 = { - 2, 121, - _vq_lengthlist__44c7_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c7_s_p5_1, - NULL, - &_vq_auxt__44c7_s_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c7_s_p6_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10, 9,10,10, 5, 5, 5, - 7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9, - 9, 9, 9,11,10,11,11, 0, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12, 0,11,10, 8, 8,10,10,11,11,11,12,12,12, 0,11, - 11, 8, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__44c7_s_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c7_s_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p6_0 = { - _vq_quantthresh__44c7_s_p6_0, - _vq_quantmap__44c7_s_p6_0, - 13, - 13 -}; - -static static_codebook _44c7_s_p6_0 = { - 2, 169, - _vq_lengthlist__44c7_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c7_s_p6_0, - NULL, - &_vq_auxt__44c7_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c7_s_p6_1[] = { - 3, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6, 4, 4, 4, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c7_s_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c7_s_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p6_1 = { - _vq_quantthresh__44c7_s_p6_1, - _vq_quantmap__44c7_s_p6_1, - 5, - 5 -}; - -static static_codebook _44c7_s_p6_1 = { - 2, 25, - _vq_lengthlist__44c7_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c7_s_p6_1, - NULL, - &_vq_auxt__44c7_s_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c7_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 7, 7, 9, 8, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9, 9,10,11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10, - 11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12,20,11,11, 8, 8,10, 9,11,11,11,11,12,12,20,12, - 12, 8, 8, 9, 9,11,11,12,12,12,12,20,20,20,11,11, - 10,10,11,11,12,12,13,13,20,20,20,11,11,10,10,11, - 11,12,12,13,13,20,20,20,14,14,11,11,11,12,13,13, - 13,13,20,20,20,15,14,11,11,11,11,13,13,14,14,20, - 20,20,20,19,12,12,12,12,13,13,14,14,19,19,19,19, - 19,13,12,12,12,13,13,14,14, -}; - -static float _vq_quantthresh__44c7_s_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44c7_s_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p7_0 = { - _vq_quantthresh__44c7_s_p7_0, - _vq_quantmap__44c7_s_p7_0, - 13, - 13 -}; - -static static_codebook _44c7_s_p7_0 = { - 2, 169, - _vq_lengthlist__44c7_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44c7_s_p7_0, - NULL, - &_vq_auxt__44c7_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c7_s_p7_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 6, 6, - 7, 7, 7, 7, 8, 8, 9, 5, 5, 6, 6, 7, 7, 7, 7, 7, - 7, 9, 6, 6, 7, 7, 7, 7, 8, 8, 7, 8, 9, 9, 9, 7, - 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, - 7, 7, 8, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 7, 7, 7, - 7, 8, 7, 9, 9, 9, 9, 9, 8, 8, 7, 7, 8, 8, 9, 9, - 9, 9, 9, 7, 7, 7, 7, 8, 8, -}; - -static float _vq_quantthresh__44c7_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c7_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p7_1 = { - _vq_quantthresh__44c7_s_p7_1, - _vq_quantmap__44c7_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c7_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c7_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c7_s_p7_1, - NULL, - &_vq_auxt__44c7_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c7_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9, 9,10,11,11, 6, - 5, 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11, 6, 5, - 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,17, 8, 8, - 8, 8,10, 9, 8, 9,10,10,11,11,11,11,17, 8, 8, 8, - 8,10,10, 9, 9,10,10,11,11,12,12,17,12,13, 9, 9, - 10,10, 9, 9,10,11,11,11,12,12,17,13,13, 9, 9,10, - 10,10,10,10,10,11,11,12,12,17,17,17, 9, 9, 9, 9, - 10,10,11,11,11,12,12,12,17,17,17, 9, 9, 9, 9,11, - 10,11,12,11,12,13,12,17,17,17,13,14,10,10,10,11, - 12,11,12,12,12,13,17,17,17,14,14,10, 9,10, 9,12, - 12,12,12,13,13,17,17,17,17,17,11,11,11,11,11,12, - 13,13,13,14,17,17,17,17,17,12,10,11, 9,12,11,13, - 15,14,14,17,17,17,17,17,14,15,11,12,12,13,13,12, - 14,14,17,16,16,16,16,15,13,12, 9,12,10,14,12,15, - 14, -}; - -static float _vq_quantthresh__44c7_s_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44c7_s_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p8_0 = { - _vq_quantthresh__44c7_s_p8_0, - _vq_quantmap__44c7_s_p8_0, - 15, - 15 -}; - -static static_codebook _44c7_s_p8_0 = { - 2, 225, - _vq_lengthlist__44c7_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44c7_s_p8_0, - NULL, - &_vq_auxt__44c7_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c7_s_p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,11,11,11, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, - 10,10, 9,11,11,11, 8, 9, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10, 9, 9,10, 9,11,11,11,11,11, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,11,10,11, - 11,11, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10, 9, - 9,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10, 9, 9,10,10,10,10,11,11,11,11,11, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 9,10,10,10,10, 9,11,11,10,11, - 11,11,11, 9, 9, 9, 9,10,10,10,10,10,10,10, 9,10, - 10,10,11,11,11,11,11,11, 9, 9, 9, 9, 9,10,10,10, - 10,10, 9, 9,10, 9,11,10,11,11,11,11,11, 9, 9, 9, - 9, 9,10,10, 9,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10, 9,10, 9,10,10,10,10,10,10,10,10,10, 9, - 10,11,10,11,11,11,11,11,10, 9, 9,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,10,11,10,10, - 10,10,10,10,10,10, 9,10,10, 9,11,11,11,11,11,10, - 11,11,11,10,10, 9, 9,10,10,10,10,10, 9,10,10,11, - 11,11,11,11,10,11,11,11,10,10, 9, 9,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11, 9, - 9, 9, 9,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44c7_s_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c7_s_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p8_1 = { - _vq_quantthresh__44c7_s_p8_1, - _vq_quantmap__44c7_s_p8_1, - 21, - 21 -}; - -static static_codebook _44c7_s_p8_1 = { - 2, 441, - _vq_lengthlist__44c7_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c7_s_p8_1, - NULL, - &_vq_auxt__44c7_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c7_s_p9_0[] = { - 1, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 8, 8, -}; - -static float _vq_quantthresh__44c7_s_p9_0[] = { - -3503.5, -2866.5, -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, - 1592.5, 2229.5, 2866.5, 3503.5, -}; - -static long _vq_quantmap__44c7_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p9_0 = { - _vq_quantthresh__44c7_s_p9_0, - _vq_quantmap__44c7_s_p9_0, - 13, - 13 -}; - -static static_codebook _44c7_s_p9_0 = { - 2, 169, - _vq_lengthlist__44c7_s_p9_0, - 1, -511845376, 1630791680, 4, 0, - _vq_quantlist__44c7_s_p9_0, - NULL, - &_vq_auxt__44c7_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c7_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 7, 9, 8,10,10, 6, 6, 6, - 7, 8, 8, 8, 8, 8, 9, 9,10,11, 6, 5, 6, 8, 7, 8, - 8, 8, 8, 9, 9,10,11,14, 9, 8, 9, 8, 9, 8, 8, 9, - 10,10,11,11,14, 8, 9, 8, 8, 8, 9, 9, 8,12,10,11, - 11,14,13,13, 8, 9, 9, 9, 9,10,10,12,12,12,14,14, - 13, 8, 7,10, 9, 9,10,10,11,11,10,14,14,14, 8, 9, - 9, 8,11,10,12,11,11,11,14,14,14, 9, 7, 9, 8,10, - 10,11,11,11,10,14,14,14,12,12,10, 9,11,11,11,13, - 12,13,14,14,14,12,12,10,10,11, 8,11,11,14,13,14, - 14,14,14,14,12,13,11,12,12,11,14,13,13,13,13,13, - 13,12,11,11, 9,12,12,12,13, -}; - -static float _vq_quantthresh__44c7_s_p9_1[] = { - -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5, - 122.5, 171.5, 220.5, 269.5, -}; - -static long _vq_quantmap__44c7_s_p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p9_1 = { - _vq_quantthresh__44c7_s_p9_1, - _vq_quantmap__44c7_s_p9_1, - 13, - 13 -}; - -static static_codebook _44c7_s_p9_1 = { - 2, 169, - _vq_lengthlist__44c7_s_p9_1, - 1, -518889472, 1622704128, 4, 0, - _vq_quantlist__44c7_s_p9_1, - NULL, - &_vq_auxt__44c7_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c7_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44c7_s_p9_2[] = { - 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44c7_s_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44c7_s_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44c7_s_p9_2 = { - _vq_quantthresh__44c7_s_p9_2, - _vq_quantmap__44c7_s_p9_2, - 49, - 49 -}; - -static static_codebook _44c7_s_p9_2 = { - 1, 49, - _vq_lengthlist__44c7_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44c7_s_p9_2, - NULL, - &_vq_auxt__44c7_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c7_s_short[] = { - 4,10,12,13,15,15,16,16,17,17, 5, 5, 7, 8, 9, 9, - 12,17,18,18, 7, 5, 4, 5, 7, 8,10,13,18,18, 8, 6, - 5, 4, 5, 6, 9,12,17,18,10, 9, 6, 4, 4, 5, 8,12, - 18,17,11, 9, 7, 5, 4, 4, 6,10,17,17,13,12,10, 8, - 6, 5, 6, 9,17,17,14,13,12, 7, 6, 5, 5, 8,16,17, - 16,15,14, 8, 8, 7, 7, 9,14,17,17,17,17,12,11,11, - 11,12,16,17, -}; - -static static_codebook _huff_book__44c7_s_short = { - 2, 100, - _huff_lengthlist__44c7_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c8_s_long[] = { - 3, 8,12,14,14,13,13,12,13,15, 6, 4, 6, 8,10,10, - 11,11,13,15, 9, 5, 4, 5, 7, 8, 9,10,13,15,11, 7, - 4, 4, 5, 6, 8, 9,13,14,12, 9, 6, 5, 5, 5, 7, 9, - 12,14,11,10, 7, 6, 5, 4, 6, 7,11,12,11,10, 9, 8, - 7, 5, 6, 6,10,11,12,11,10, 9, 8, 6, 6, 5, 8,10, - 12,12,12,11,11,10, 9, 7, 8,11,12,13,14,14,15,13, - 10, 9, 9,11, -}; - -static static_codebook _huff_book__44c8_s_long = { - 2, 100, - _huff_lengthlist__44c8_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c8_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 7, 7, 0, 9, 8, 0, - 8, 8, 6, 7, 8, 0, 8, 9, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 8, 8, 0, 8, 8, 0, 8, 8, 5, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 8, 8, 0, 8, 8, 0, 8, 7, 5, 8, 8, 0, 8, 8, 0, 7, - 8, -}; - -static float _vq_quantthresh__44c8_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c8_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p1_0 = { - _vq_quantthresh__44c8_s_p1_0, - _vq_quantmap__44c8_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c8_s_p1_0 = { - 4, 81, - _vq_lengthlist__44c8_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c8_s_p1_0, - NULL, - &_vq_auxt__44c8_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c8_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 6, 6, 8, 8, 0, 5, 6, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 6, 9, 9, 0, 7, - 7,10, 9, 0, 7, 7,10, 9, 0, 9, 9,11,11, 0, 0, 0, - 11,11, 5, 6, 7, 9, 9, 0, 7, 7, 9,10, 0, 7, 7, 9, - 10, 0, 9, 9,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, - 0,11,10,12,11, 0,10,10,12,11, 0,13,13,14,13, 0, - 0, 0,14,13, 8, 9, 9,10,11, 0,10,11,11,12, 0,10, - 10,12,12, 0,13,13,13,14, 0, 0, 0,13,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 7, 7,10,10, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 8,10,10, 0, 0, 0,10,10, 6, - 7, 7,10,10, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 8, - 9,10,10, 0, 0, 0,10,10, 8,10, 9,12,12, 0,10, 9, - 12,11, 0,10,10,11,12, 0,12,11,13,12, 0, 0, 0,13, - 13, 8, 9,10,11,12, 0, 9,10,11,12, 0,10,10,11,12, - 0,11,12,12,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, - 10, 9, 0, 8, 9,10,10, 0, 0, 0,10,10, 6, 7, 8,10, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 8,10,10, - 0, 0, 0,10,10, 8,10, 9,12,11, 0,10,10,12,11, 0, - 10,10,12,11, 0,11,12,13,12, 0, 0, 0,13,12, 9, 9, - 10,11,12, 0,10,10,11,12, 0,10,10,11,12, 0,12,11, - 12,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 9, 9,12,13, 0, 9, 8,12,11, 0, 8, 9,11,12, 0, - 10, 9,12,11, 0, 0, 0,11,12, 7, 9, 9,13,13, 0, 9, - 9,11,12, 0, 9, 8,12,11, 0, 9,10,11,12, 0, 0, 0, - 12,11, 9,11,11,14,13, 0,10,10,13,12, 0,10,10,13, - 13, 0,12,11,13,12, 0, 0, 0,13,13, 9,11,11,13,14, - 0,10,10,12,13, 0,10,10,13,13, 0,11,12,12,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,11,14,13, 0,10,10,13,12, 0,10,10,13,12, 0,11, - 12,13,13, 0, 0, 0,13,12, 9,11,11,13,14, 0,10,10, - 13,13, 0,10,10,12,13, 0,12,11,13,13, 0, 0, 0,12, - 13, -}; - -static float _vq_quantthresh__44c8_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c8_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p2_0 = { - _vq_quantthresh__44c8_s_p2_0, - _vq_quantmap__44c8_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c8_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c8_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c8_s_p2_0, - NULL, - &_vq_auxt__44c8_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c8_s_p3_0[] = { - 3, 3, 4, 5, 5, 7, 6, 8, 8, 0, 4, 4, 5, 5, 7, 7, - 9, 9, 0, 4, 4, 5, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, - 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c8_s_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c8_s_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p3_0 = { - _vq_quantthresh__44c8_s_p3_0, - _vq_quantmap__44c8_s_p3_0, - 9, - 9 -}; - -static static_codebook _44c8_s_p3_0 = { - 2, 81, - _vq_lengthlist__44c8_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c8_s_p3_0, - NULL, - &_vq_auxt__44c8_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c8_s_p4_0[] = { - 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, - 10, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,10,10, - 11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 10,11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c8_s_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c8_s_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p4_0 = { - _vq_quantthresh__44c8_s_p4_0, - _vq_quantmap__44c8_s_p4_0, - 17, - 17 -}; - -static static_codebook _44c8_s_p4_0 = { - 2, 289, - _vq_lengthlist__44c8_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c8_s_p4_0, - NULL, - &_vq_auxt__44c8_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c8_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,10,10,10, - 10,10, 4, 6, 6,10,10,10,10,10,10, 5,10,10, 9,12, - 12,10,12,12, 7,10,10,12,12,12,12,12,12, 7,10,10, - 12,12,12,12,12,13, 6,10,10,10,12,12,11,12,12, 8, - 10,10,12,13,12,12,12,12, 7,10,10,12,12,13,12,13, - 12, -}; - -static float _vq_quantthresh__44c8_s_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c8_s_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p5_0 = { - _vq_quantthresh__44c8_s_p5_0, - _vq_quantmap__44c8_s_p5_0, - 3, - 3 -}; - -static static_codebook _44c8_s_p5_0 = { - 4, 81, - _vq_lengthlist__44c8_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c8_s_p5_0, - NULL, - &_vq_auxt__44c8_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c8_s_p5_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7,10, 4, 4, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, - 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, - 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, - 7, 7, 7, 7, 8, 8, 8, 8,11,11,11,11,11, 7, 7, 8, - 8, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 8, 8,11,11, - 11,11,11, 7, 7, 7, 7, 8, 8, -}; - -static float _vq_quantthresh__44c8_s_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c8_s_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p5_1 = { - _vq_quantthresh__44c8_s_p5_1, - _vq_quantmap__44c8_s_p5_1, - 11, - 11 -}; - -static static_codebook _44c8_s_p5_1 = { - 2, 121, - _vq_lengthlist__44c8_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c8_s_p5_1, - NULL, - &_vq_auxt__44c8_s_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c8_s_p6_0[] = { - 1, 4, 4, 7, 6, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 7, 7, 9, 9,10, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9,10,10,11,11,12,12, 0, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,12,12,12, - 12, 0,10,10, 8, 8,10,10,11,11,12,12,13,13, 0,11, - 11, 8, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__44c8_s_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c8_s_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p6_0 = { - _vq_quantthresh__44c8_s_p6_0, - _vq_quantmap__44c8_s_p6_0, - 13, - 13 -}; - -static static_codebook _44c8_s_p6_0 = { - 2, 169, - _vq_lengthlist__44c8_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c8_s_p6_0, - NULL, - &_vq_auxt__44c8_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c8_s_p6_1[] = { - 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__44c8_s_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c8_s_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p6_1 = { - _vq_quantthresh__44c8_s_p6_1, - _vq_quantmap__44c8_s_p6_1, - 5, - 5 -}; - -static static_codebook _44c8_s_p6_1 = { - 2, 25, - _vq_lengthlist__44c8_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c8_s_p6_1, - NULL, - &_vq_auxt__44c8_s_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c8_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 5, 5, - 7, 7, 9, 9,10,10,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9,10,10,11,11,12,12,20, 6, 7, 7, 7, 9, 9,10,10, - 11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12,20,11,11, 8, 8,10,10,11,11,12,12,12,12,20,12, - 12, 8, 8,10, 9,11,11,12,12,13,13,20,20,20,11,10, - 10,10,11,11,12,12,13,13,20,20,20,10,11,10,10,11, - 11,12,12,13,13,20,20,20,14,15,11,11,12,12,13,13, - 14,13,20,20,20,15,15,11,11,12,12,13,13,14,14,20, - 20,20,20,19,13,13,12,12,13,13,14,14,19,19,19,19, - 19,13,13,12,12,13,13,14,14, -}; - -static float _vq_quantthresh__44c8_s_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44c8_s_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p7_0 = { - _vq_quantthresh__44c8_s_p7_0, - _vq_quantmap__44c8_s_p7_0, - 13, - 13 -}; - -static static_codebook _44c8_s_p7_0 = { - 2, 169, - _vq_lengthlist__44c8_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44c8_s_p7_0, - NULL, - &_vq_auxt__44c8_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c8_s_p7_1[] = { - 4, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 5, 5, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 5, 5, 7, 7, 7, 7, 7, 7, 7, - 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, -}; - -static float _vq_quantthresh__44c8_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c8_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p7_1 = { - _vq_quantthresh__44c8_s_p7_1, - _vq_quantmap__44c8_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c8_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c8_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c8_s_p7_1, - NULL, - &_vq_auxt__44c8_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c8_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,11, 6, - 5, 5, 7, 7, 9, 9, 8, 8,10,10,11,11,11,12, 6, 5, - 5, 7, 7, 9, 9, 9, 8,10,10,11,10,11,12,18, 8, 8, - 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,18, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,11,11,12,13,18,12,12, 9, 9, - 10,10, 9, 9,10,11,11,12,13,12,18,12,12, 9, 9,10, - 10,10,10,10,11,11,12,13,13,18,18,18, 9, 9, 9, 9, - 10,10,11,11,12,12,12,12,18,18,18, 9, 9, 9, 9,10, - 10,11,11,12,12,13,13,18,18,18,13,13,10,10,11,11, - 12,11,12,12,13,13,18,18,18,14,14,10, 9,11,10,12, - 12,12,12,13,13,18,18,18,18,18,11,12,11,11,12,12, - 13,13,14,13,18,18,18,18,18,12,11,11,10,12,11,13, - 13,13,14,18,18,18,18,18,15,16,12,12,12,13,13,13, - 14,14,18,17,17,17,17,16,14,12,11,12,11,13,12,15, - 14, -}; - -static float _vq_quantthresh__44c8_s_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44c8_s_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p8_0 = { - _vq_quantthresh__44c8_s_p8_0, - _vq_quantmap__44c8_s_p8_0, - 15, - 15 -}; - -static static_codebook _44c8_s_p8_0 = { - 2, 225, - _vq_lengthlist__44c8_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44c8_s_p8_0, - NULL, - &_vq_auxt__44c8_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c8_s_p8_1[] = { - 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,11, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,11,11,10,11,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, - 9, 9,10,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,11,10,10, 9, 9, 9, 9, - 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,11,10,11,10, - 10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, - 9,11,11,11,10,10,11,10, 9, 9, 9, 9, 9, 9,10,10, - 9, 9, 9, 9, 9, 9,10,11,10,10,10,11,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,10,10,10, - 10,10, 9, 9, 9,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,11,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,11,11,10,11,10,10,10,10,10,10, 9, - 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9,10, 9, 9,10, 9, 9, -}; - -static float _vq_quantthresh__44c8_s_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c8_s_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p8_1 = { - _vq_quantthresh__44c8_s_p8_1, - _vq_quantmap__44c8_s_p8_1, - 21, - 21 -}; - -static static_codebook _44c8_s_p8_1 = { - 2, 441, - _vq_lengthlist__44c8_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c8_s_p8_1, - NULL, - &_vq_auxt__44c8_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p9_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c8_s_p9_0[] = { - 1, 5, 5,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, 7,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 6, 8,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44c8_s_p9_0[] = { - -6982.5, -6051.5, -5120.5, -4189.5, -3258.5, -2327.5, -1396.5, -465.5, - 465.5, 1396.5, 2327.5, 3258.5, 4189.5, 5120.5, 6051.5, 6982.5, -}; - -static long _vq_quantmap__44c8_s_p9_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p9_0 = { - _vq_quantthresh__44c8_s_p9_0, - _vq_quantmap__44c8_s_p9_0, - 17, - 17 -}; - -static static_codebook _44c8_s_p9_0 = { - 2, 289, - _vq_lengthlist__44c8_s_p9_0, - 1, -509798400, 1631393792, 5, 0, - _vq_quantlist__44c8_s_p9_0, - NULL, - &_vq_auxt__44c8_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static long _vq_lengthlist__44c8_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 7, 9, 9,10,10,11,10,13, - 12,11,12, 6, 6, 6, 8, 8, 8, 8, 8, 8, 9,10,10,10, - 12,12,12,12,13,15, 5, 5, 5, 8, 8, 8, 8, 8, 8,10, - 9,10,11,12,13,12,13,13,12,15, 9, 8, 9, 9, 9, 9, - 9, 9,10,10,10,11,14,12,13,15,12,14,15, 8, 9, 9, - 9, 9, 9, 9, 9,10,10,12,11,12,11,12,13,13,13,15, - 13,13, 9, 9,10, 9,10,10,11,10,11,12,12,12,14,13, - 14,15,15,13,13, 9, 8,10, 9,10,10,11,10,12,12,13, - 13,14,13,14,15,15,15,15, 9, 9, 9, 9,10,11,12,12, - 12,13,13,13,14,15,15,14,15,15,15, 9, 7, 9, 8,12, - 11,11,13,12,12,13,12,14,13,13,14,15,15,15,13,13, - 10,10,12,11,13,13,12,12,13,13,14,13,13,15,15,15, - 15,12,13,11, 9,11,10,12,12,15,13,13,13,14,13,14, - 13,15,15,15,15,15,12,12,11,11,12,13,15,13,13,14, - 14,14,15,14,15,15,15,15,15,13,11,12,11,12,11,13, - 14,13,13,14,14,13,14,15,15,15,15,15,15,15,12,12, - 12,13,15,13,15,14,15,14,13,15,15,15,15,15,15,14, - 15,13,13,12,11,14,12,15,13,14,14,14,13,15,15,15, - 15,15,15,15,14,13,14,13,15,13,15,15,15,14,15,14, - 15,15,15,15,15,15,15,14,14,14,13,13,13,15,15,15, - 15,14,15,15,15,15,15,15,15,15,15,15,12,13,13,13, - 14,15,15,13,15,15,15,15,15,15,15,15,15,15,15,15, - 15,14,14,15,15,15,14,14,15, -}; - -static float _vq_quantthresh__44c8_s_p9_1[] = { - -416.5, -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, - -24.5, 24.5, 73.5, 122.5, 171.5, 220.5, 269.5, 318.5, - 367.5, 416.5, -}; - -static long _vq_quantmap__44c8_s_p9_1[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p9_1 = { - _vq_quantthresh__44c8_s_p9_1, - _vq_quantmap__44c8_s_p9_1, - 19, - 19 -}; - -static static_codebook _44c8_s_p9_1 = { - 2, 361, - _vq_lengthlist__44c8_s_p9_1, - 1, -518287360, 1622704128, 5, 0, - _vq_quantlist__44c8_s_p9_1, - NULL, - &_vq_auxt__44c8_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c8_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44c8_s_p9_2[] = { - 3, 4, 3, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44c8_s_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44c8_s_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44c8_s_p9_2 = { - _vq_quantthresh__44c8_s_p9_2, - _vq_quantmap__44c8_s_p9_2, - 49, - 49 -}; - -static static_codebook _44c8_s_p9_2 = { - 1, 49, - _vq_lengthlist__44c8_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44c8_s_p9_2, - NULL, - &_vq_auxt__44c8_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c8_s_short[] = { - 4,11,13,14,16,15,16,16,17,16, 5, 6, 8, 9,10, 9, - 11,17,16,17, 6, 6, 6, 6, 7, 8, 9,14,16,17, 8, 6, - 5, 4, 6, 7, 9,12,14,17, 9, 7, 6, 5, 5, 5, 8,11, - 14,17,10, 9, 7, 6, 5, 3, 5, 8,13,17,12,11, 9, 8, - 7, 4, 4, 6,14,17,13,13,12, 8, 7, 5, 4, 5,12,17, - 17,14,15,10, 8, 7, 7, 7,11,17,17,16,17,14,12,10, - 11,11,15,17, -}; - -static static_codebook _huff_book__44c8_s_short = { - 2, 100, - _huff_lengthlist__44c8_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44c9_s_long[] = { - 3, 8,13,14,15,15,13,13,14,14, 6, 5, 8,10,12,12, - 13,12,13,14,10, 6, 5, 6, 8, 9,11,11,13,14,13, 8, - 5, 4, 5, 6, 9,10,13,14,14,11, 7, 5, 4, 5, 8, 9, - 12,14,12,11, 8, 6, 5, 3, 5, 7,10,13,12,10,10, 8, - 7, 5, 4, 6, 9,12,13,12,11,10, 9, 6, 5, 5, 7,10, - 13,12,12,11,11, 9, 8, 7, 8,10,12,12,13,13,14,12, - 10, 9, 9,10, -}; - -static static_codebook _huff_book__44c9_s_long = { - 2, 100, - _huff_lengthlist__44c9_s_long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c9_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 8, 0, 9, 8, 0, - 8, 8, 6, 8, 8, 0, 8, 9, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 8, 8, 0, 8, 7, 0, 8, 8, 5, 8, 8, - 0, 7, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 8, 0, 8, 8, 0, 7, 7, 5, 8, 9, 0, 8, 8, 0, 7, - 7, -}; - -static float _vq_quantthresh__44c9_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44c9_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p1_0 = { - _vq_quantthresh__44c9_s_p1_0, - _vq_quantmap__44c9_s_p1_0, - 3, - 3 -}; - -static static_codebook _44c9_s_p1_0 = { - 4, 81, - _vq_lengthlist__44c9_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44c9_s_p1_0, - NULL, - &_vq_auxt__44c9_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c9_s_p2_0[] = { - 3, 6, 6, 8, 8, 0, 6, 6, 8, 8, 0, 5, 5, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 6, 7, 7, 9, 8, 0, 8, - 7, 9, 9, 0, 7, 7, 9, 9, 0, 9, 9,11,10, 0, 0, 0, - 10,10, 6, 7, 7, 8, 9, 0, 7, 8, 9, 9, 0, 7, 7, 9, - 9, 0, 9, 9,10,11, 0, 0, 0,10,10, 8, 9, 9,10,10, - 0,10,10,11,11, 0,10,10,11,11, 0,12,12,13,12, 0, - 0, 0,13,13, 8, 8, 9,10,10, 0,10,10,11,12, 0,10, - 10,11,11, 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 8, 7,10,10, 0, 7, 7,10, 9, - 0, 7, 7,10,10, 0, 9, 8,10,10, 0, 0, 0,10,10, 6, - 7, 7,10,10, 0, 7, 7, 9,10, 0, 7, 7,10,10, 0, 8, - 9,10,10, 0, 0, 0,10,10, 8, 9, 9,11,11, 0,10, 9, - 11,11, 0,10,10,11,11, 0,11,11,12,12, 0, 0, 0,12, - 12, 8, 9, 9,11,11, 0, 9,10,11,11, 0,10,10,11,11, - 0,11,11,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7,10,10, 0, 7, 7,10,10, 0, 7, 7, - 10, 9, 0, 8, 9,10,10, 0, 0, 0,10, 9, 5, 7, 8,10, - 10, 0, 7, 7,10,10, 0, 7, 7, 9,10, 0, 9, 8,10,10, - 0, 0, 0,10,10, 8, 9, 9,12,11, 0,10,10,11,11, 0, - 10, 9,11,11, 0,11,11,12,12, 0, 0, 0,12,12, 8, 9, - 9,11,11, 0,10,10,11,11, 0, 9,10,11,11, 0,11,11, - 12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 9, 9,12,12, 0, 9, 9,11,11, 0, 8, 9,11,11, 0, - 10, 9,12,11, 0, 0, 0,11,11, 7, 9, 9,12,12, 0, 8, - 9,11,11, 0, 9, 8,11,11, 0, 9,10,11,11, 0, 0, 0, - 11,11, 9,11,11,13,13, 0,10,10,12,12, 0,10,10,12, - 12, 0,12,11,12,12, 0, 0, 0,13,13, 9,10,11,13,13, - 0,10,10,12,12, 0,10,10,12,12, 0,11,11,12,12, 0, - 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,10,13,13, 0,10,10,12,12, 0,10, 9,12,12, 0,11, - 11,12,13, 0, 0, 0,12,11, 9,10,10,12,13, 0,10,10, - 12,12, 0,10,10,12,12, 0,11,11,13,12, 0, 0, 0,12, - 12, -}; - -static float _vq_quantthresh__44c9_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c9_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p2_0 = { - _vq_quantthresh__44c9_s_p2_0, - _vq_quantmap__44c9_s_p2_0, - 5, - 5 -}; - -static static_codebook _44c9_s_p2_0 = { - 4, 625, - _vq_lengthlist__44c9_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c9_s_p2_0, - NULL, - &_vq_auxt__44c9_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44c9_s_p3_0[] = { - 3, 4, 4, 5, 5, 6, 6, 8, 8, 0, 4, 4, 5, 5, 7, 6, - 8, 8, 0, 4, 4, 5, 5, 7, 7, 8, 8, 0, 5, 5, 6, 6, - 7, 7, 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, - 7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c9_s_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44c9_s_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p3_0 = { - _vq_quantthresh__44c9_s_p3_0, - _vq_quantmap__44c9_s_p3_0, - 9, - 9 -}; - -static static_codebook _44c9_s_p3_0 = { - 2, 81, - _vq_lengthlist__44c9_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44c9_s_p3_0, - NULL, - &_vq_auxt__44c9_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44c9_s_p4_0[] = { - 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10, - 10, 0, 5, 5, 5, 5, 6, 6, 8, 7, 8, 8, 9, 9,10,10, - 11,11, 0, 5, 5, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10, - 10,11,11, 0, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 6, 6, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, 9, 9, - 11,11,11,11,12,12, 0, 0, 0, 7, 7, 7, 8, 9, 9, 9, - 9,11,10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 7, 7, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__44c9_s_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44c9_s_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p4_0 = { - _vq_quantthresh__44c9_s_p4_0, - _vq_quantmap__44c9_s_p4_0, - 17, - 17 -}; - -static static_codebook _44c9_s_p4_0 = { - 2, 289, - _vq_lengthlist__44c9_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44c9_s_p4_0, - NULL, - &_vq_auxt__44c9_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44c9_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,10,10,10, - 10,10, 4, 6, 6,10,10,10,10,10,10, 5,10,10, 9,12, - 12,10,12,12, 7,10,10,12,12,12,12,12,13, 7,10,10, - 12,12,12,12,13,13, 6,10,10,10,12,12,11,12,12, 8, - 10,10,12,12,12,12,12,12, 7,10,10,12,12,13,12,12, - 12, -}; - -static float _vq_quantthresh__44c9_s_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44c9_s_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p5_0 = { - _vq_quantthresh__44c9_s_p5_0, - _vq_quantmap__44c9_s_p5_0, - 3, - 3 -}; - -static static_codebook _44c9_s_p5_0 = { - 4, 81, - _vq_lengthlist__44c9_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44c9_s_p5_0, - NULL, - &_vq_auxt__44c9_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c9_s_p5_1[] = { - 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7,10, 5, 5, 6, 6, - 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, 7, 7, 7, 7, 8, - 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, - 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, - 8, 8,11,11,11, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11, - 7, 7, 7, 7, 7, 7, 8, 8,11,11,11,11,11, 7, 7, 7, - 7, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 7, 7,11,11, - 11,11,11, 7, 7, 7, 7, 7, 7, -}; - -static float _vq_quantthresh__44c9_s_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c9_s_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p5_1 = { - _vq_quantthresh__44c9_s_p5_1, - _vq_quantmap__44c9_s_p5_1, - 11, - 11 -}; - -static static_codebook _44c9_s_p5_1 = { - 2, 121, - _vq_lengthlist__44c9_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c9_s_p5_1, - NULL, - &_vq_auxt__44c9_s_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c9_s_p6_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 5, 4, 4, - 6, 6, 8, 8, 9, 9,10,10,11,11, 6, 4, 4, 6, 6, 8, - 8, 9, 9,10,10,12,12, 0, 6, 6, 6, 6, 8, 8,10,10, - 11,11,12,12, 0, 6, 6, 6, 6, 8, 8,10,10,11,11,12, - 12, 0,10,10, 8, 8, 9, 9,11,11,12,12,13,13, 0,11, - 11, 8, 8, 9,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__44c9_s_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44c9_s_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p6_0 = { - _vq_quantthresh__44c9_s_p6_0, - _vq_quantmap__44c9_s_p6_0, - 13, - 13 -}; - -static static_codebook _44c9_s_p6_0 = { - 2, 169, - _vq_lengthlist__44c9_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44c9_s_p6_0, - NULL, - &_vq_auxt__44c9_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44c9_s_p6_1[] = { - 4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static float _vq_quantthresh__44c9_s_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44c9_s_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p6_1 = { - _vq_quantthresh__44c9_s_p6_1, - _vq_quantmap__44c9_s_p6_1, - 5, - 5 -}; - -static static_codebook _44c9_s_p6_1 = { - 2, 25, - _vq_lengthlist__44c9_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44c9_s_p6_1, - NULL, - &_vq_auxt__44c9_s_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44c9_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 6, 5, 5, - 7, 7, 9, 8,10,10,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9,10,10,11,11,12,12,20, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10,11,11,13, - 12,20,10,10, 8, 8, 9, 9,11,11,12,12,13,13,20,11, - 11, 8, 8, 9, 9,11,11,12,12,13,13,20,20,20,10,10, - 10,10,11,11,12,12,13,13,20,20,20,10,10,10,10,11, - 11,12,12,13,13,20,20,20,14,14,11,11,12,12,13,13, - 14,13,20,20,20,14,15,11,11,11,11,13,13,14,13,20, - 20,20,20,19,12,12,12,12,13,13,14,14,19,19,19,19, - 19,13,13,12,12,13,13,14,14, -}; - -static float _vq_quantthresh__44c9_s_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44c9_s_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p7_0 = { - _vq_quantthresh__44c9_s_p7_0, - _vq_quantmap__44c9_s_p7_0, - 13, - 13 -}; - -static static_codebook _44c9_s_p7_0 = { - 2, 169, - _vq_lengthlist__44c9_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44c9_s_p7_0, - NULL, - &_vq_auxt__44c9_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44c9_s_p7_1[] = { - 5, 6, 6, 6, 6, 7, 6, 7, 7, 7, 7, 8, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 6, - 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, -}; - -static float _vq_quantthresh__44c9_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44c9_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p7_1 = { - _vq_quantthresh__44c9_s_p7_1, - _vq_quantmap__44c9_s_p7_1, - 11, - 11 -}; - -static static_codebook _44c9_s_p7_1 = { - 2, 121, - _vq_lengthlist__44c9_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44c9_s_p7_1, - NULL, - &_vq_auxt__44c9_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44c9_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,11, 6, - 5, 5, 7, 7, 9, 9, 8, 9,10,10,11,11,12,12, 6, 5, - 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,19, 7, 8, - 8, 8, 9, 9, 9, 9,10,10,11,11,12,13,19, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,11,12,12,12,19,12,12, 9, 9, - 9,10, 9,10,10,10,12,12,12,12,19,12,12, 9, 9,10, - 9,10,10,11,11,12,11,13,13,19,19,19, 9, 9, 9, 9, - 10,10,11,11,12,12,12,12,19,19,19, 9, 9, 9, 9,10, - 10,11,11,12,12,13,13,19,19,19,13,13,10,10,10,10, - 12,12,12,12,13,13,19,19,19,13,13,10,10,10,10,12, - 12,12,12,13,13,19,19,19,19,19,11,12,11,11,12,12, - 13,12,13,13,19,19,19,18,18,12,11,11,10,12,11,13, - 13,13,14,18,18,18,18,18,15,16,12,12,13,12,13,13, - 14,14,18,18,18,18,18,16,15,12,11,12,11,13,13,14, - 14, -}; - -static float _vq_quantthresh__44c9_s_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44c9_s_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p8_0 = { - _vq_quantthresh__44c9_s_p8_0, - _vq_quantmap__44c9_s_p8_0, - 15, - 15 -}; - -static static_codebook _44c9_s_p8_0 = { - 2, 225, - _vq_lengthlist__44c9_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44c9_s_p8_0, - NULL, - &_vq_auxt__44c9_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44c9_s_p8_1[] = { - 4, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10, 9, 9, 9, 9,10,10,10,10, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, - 10,10, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 9, 9, 9,10, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44c9_s_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44c9_s_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p8_1 = { - _vq_quantthresh__44c9_s_p8_1, - _vq_quantmap__44c9_s_p8_1, - 21, - 21 -}; - -static static_codebook _44c9_s_p8_1 = { - 2, 441, - _vq_lengthlist__44c9_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44c9_s_p8_1, - NULL, - &_vq_auxt__44c9_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p9_0[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static long _vq_lengthlist__44c9_s_p9_0[] = { - 1, 4, 4,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, 7, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10, 7, 9,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44c9_s_p9_0[] = { - -7913.5, -6982.5, -6051.5, -5120.5, -4189.5, -3258.5, -2327.5, -1396.5, - -465.5, 465.5, 1396.5, 2327.5, 3258.5, 4189.5, 5120.5, 6051.5, - 6982.5, 7913.5, -}; - -static long _vq_quantmap__44c9_s_p9_0[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p9_0 = { - _vq_quantthresh__44c9_s_p9_0, - _vq_quantmap__44c9_s_p9_0, - 19, - 19 -}; - -static static_codebook _44c9_s_p9_0 = { - 2, 361, - _vq_lengthlist__44c9_s_p9_0, - 1, -508535424, 1631393792, 5, 0, - _vq_quantlist__44c9_s_p9_0, - NULL, - &_vq_auxt__44c9_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static long _vq_lengthlist__44c9_s_p9_1[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9,10,10,10,12,11,12, - 13,13,12, 6, 5, 5, 8, 8, 8, 9, 8, 9,10,10,11,11, - 12,12,14,13,13,12, 5, 5, 5, 8, 8, 9, 8, 8, 9,10, - 10,11,11,12,12,14,12,13,13,16, 8, 8, 9, 9, 9, 9, - 9, 9,10,10,11,12,13,13,13,13,14,14,16, 8, 8, 9, - 9, 9, 9, 9, 9,11,11,12,11,13,13,14,13,13,13,16, - 14,13, 9, 9, 9, 9,10,10,11,12,12,13,13,13,14,13, - 15,14,16,13,13, 9, 8, 9, 9,10,10,12,11,13,13,14, - 14,14,14,15,14,16,16,16, 9, 9, 9, 9,10,10,12,12, - 12,13,13,13,15,13,15,15,16,16,16, 9, 7, 9, 8,10, - 11,11,12,12,13,13,16,15,14,14,14,16,16,16,13,13, - 10,10,11,11,13,15,13,14,13,14,14,13,14,14,16,16, - 16,13,12,10, 9,11,11,12,12,14,14,13,14,14,14,14, - 14,16,16,16,16,16,12,13,11,11,12,13,13,13,14,15, - 14,14,16,15,16,16,16,16,16,12,11,12,12,15,13,13, - 13,14,13,15,14,15,14,16,16,16,16,16,14,15,12,13, - 13,12,14,15,15,14,15,14,15,13,16,16,16,16,16,16, - 16,13,13,14,12,16,12,16,15,14,15,14,14,16,16,16, - 16,16,16,16,15,14,14,14,15,16,16,16,16,14,16,16, - 16,16,16,16,16,16,16,14,14,14,12,15,11,15,13,16, - 15,16,15,16,16,16,16,16,16,16,15,16,14,14,15,13, - 15,16,16,16,16,15,16,16,16,16,16,16,16,16,16,15, - 15,14,13,14,16,16,14,15,16, -}; - -static float _vq_quantthresh__44c9_s_p9_1[] = { - -416.5, -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, - -24.5, 24.5, 73.5, 122.5, 171.5, 220.5, 269.5, 318.5, - 367.5, 416.5, -}; - -static long _vq_quantmap__44c9_s_p9_1[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p9_1 = { - _vq_quantthresh__44c9_s_p9_1, - _vq_quantmap__44c9_s_p9_1, - 19, - 19 -}; - -static static_codebook _44c9_s_p9_1 = { - 2, 361, - _vq_lengthlist__44c9_s_p9_1, - 1, -518287360, 1622704128, 5, 0, - _vq_quantlist__44c9_s_p9_1, - NULL, - &_vq_auxt__44c9_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44c9_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44c9_s_p9_2[] = { - 3, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 6, 6, 7, 7, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44c9_s_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44c9_s_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44c9_s_p9_2 = { - _vq_quantthresh__44c9_s_p9_2, - _vq_quantmap__44c9_s_p9_2, - 49, - 49 -}; - -static static_codebook _44c9_s_p9_2 = { - 1, 49, - _vq_lengthlist__44c9_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44c9_s_p9_2, - NULL, - &_vq_auxt__44c9_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44c9_s_short[] = { - 5,13,17,15,16,16,18,17,18,18, 5, 7,10,12,12,12, - 12,17,18,17, 7, 6, 7, 8, 9, 9, 9,13,17,17, 8, 6, - 6, 5, 6, 7, 8,11,16,18, 9, 7, 7, 5, 5, 6, 7,10, - 15,18, 9, 8, 7, 6, 5, 4, 5, 7,13,17,11,11, 9, 8, - 7, 4, 3, 5,12,18,13,13,12,10, 7, 5, 4, 3, 8,13, - 16,16,16,13, 8, 8, 7, 5, 8,12,15,18,17,15,11,10, - 9, 8,10,14, -}; - -static static_codebook _huff_book__44c9_s_short = { - 2, 100, - _huff_lengthlist__44c9_s_short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8c0_s_p1_0[] = { - 1, 5, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, - 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 9,11,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,10, 0, 0, - 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 9,11,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,11, 0, - 0, 0, 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,11,11, - 0, 0, 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c0_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8c0_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p1_0 = { - _vq_quantthresh__8c0_s_p1_0, - _vq_quantmap__8c0_s_p1_0, - 3, - 3 -}; - -static static_codebook _8c0_s_p1_0 = { - 8, 6561, - _vq_lengthlist__8c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8c0_s_p1_0, - NULL, - &_vq_auxt__8c0_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c0_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c0_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c0_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p2_0 = { - _vq_quantthresh__8c0_s_p2_0, - _vq_quantmap__8c0_s_p2_0, - 5, - 5 -}; - -static static_codebook _8c0_s_p2_0 = { - 4, 625, - _vq_lengthlist__8c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c0_s_p2_0, - NULL, - &_vq_auxt__8c0_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c0_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c0_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c0_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p3_0 = { - _vq_quantthresh__8c0_s_p3_0, - _vq_quantmap__8c0_s_p3_0, - 5, - 5 -}; - -static static_codebook _8c0_s_p3_0 = { - 4, 625, - _vq_lengthlist__8c0_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c0_s_p3_0, - NULL, - &_vq_auxt__8c0_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8c0_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c0_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8c0_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p4_0 = { - _vq_quantthresh__8c0_s_p4_0, - _vq_quantmap__8c0_s_p4_0, - 9, - 9 -}; - -static static_codebook _8c0_s_p4_0 = { - 2, 81, - _vq_lengthlist__8c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8c0_s_p4_0, - NULL, - &_vq_auxt__8c0_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8c0_s_p5_0[] = { - 1, 3, 3, 5, 5, 7, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 9, 0, 0, 0, 8, 8, - 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__8c0_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8c0_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p5_0 = { - _vq_quantthresh__8c0_s_p5_0, - _vq_quantmap__8c0_s_p5_0, - 9, - 9 -}; - -static static_codebook _8c0_s_p5_0 = { - 2, 81, - _vq_lengthlist__8c0_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8c0_s_p5_0, - NULL, - &_vq_auxt__8c0_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__8c0_s_p6_0[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 8, 8,10, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,11, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,11, - 10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10,10, - 11,11,11,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0,10,10,10,10,11,11, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10, 9,10, - 11,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10, 9,10,11,12,12,13,13,14,13, 0, 0, 0, 0, 0, 9, - 9, 9,10,10,10,11,11,13,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,14,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,13,13,14,14,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static float _vq_quantthresh__8c0_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__8c0_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p6_0 = { - _vq_quantthresh__8c0_s_p6_0, - _vq_quantmap__8c0_s_p6_0, - 17, - 17 -}; - -static static_codebook _8c0_s_p6_0 = { - 2, 289, - _vq_lengthlist__8c0_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__8c0_s_p6_0, - NULL, - &_vq_auxt__8c0_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8c0_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,11, 9,10,12, - 9,10, 4, 7, 7,10,10,10,11, 9, 9, 6,11,10,11,11, - 12,11,11,11, 6,10,10,11,11,12,11,10,10, 6, 9,10, - 11,11,11,11,10,10, 7,10,11,12,11,11,12,11,12, 6, - 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10,10,10,11,10, - 10, -}; - -static float _vq_quantthresh__8c0_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__8c0_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p7_0 = { - _vq_quantthresh__8c0_s_p7_0, - _vq_quantmap__8c0_s_p7_0, - 3, - 3 -}; - -static static_codebook _8c0_s_p7_0 = { - 4, 81, - _vq_lengthlist__8c0_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__8c0_s_p7_0, - NULL, - &_vq_auxt__8c0_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__8c0_s_p7_1[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7, - 8, 8, 9, 9, 9, 9,10,10, 9, 7, 7, 8, 8, 9, 9, 9, - 9,10,10,10, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10, 8, - 8, 9, 9, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9,10, - 10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10,11,10,11, - 9, 9, 9, 9,10,10,10,10,11,11,11,10,10, 9, 9,10, - 10,10, 9,11,10,10,10,10,10,10, 9, 9,10,10,11,11, - 10,10,10, 9, 9, 9,10,10,10, -}; - -static float _vq_quantthresh__8c0_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__8c0_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p7_1 = { - _vq_quantthresh__8c0_s_p7_1, - _vq_quantmap__8c0_s_p7_1, - 11, - 11 -}; - -static static_codebook _8c0_s_p7_1 = { - 2, 121, - _vq_lengthlist__8c0_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__8c0_s_p7_1, - NULL, - &_vq_auxt__8c0_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__8c0_s_p8_0[] = { - 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 6, 6, - 7, 7, 8, 8, 7, 7, 8, 9,10,10, 7, 6, 6, 7, 7, 8, - 7, 7, 7, 9, 9,10,12, 0, 8, 8, 8, 8, 8, 9, 8, 8, - 9, 9,10,10, 0, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9,11, - 10, 0, 0,13, 9, 8, 9, 9, 9, 9,10,10,11,11, 0,13, - 0, 9, 9, 9, 9, 9, 9,11,10,11,11, 0, 0, 0, 8, 9, - 10, 9,10,10,13,11,12,12, 0, 0, 0, 8, 9, 9, 9,10, - 10,13,12,12,13, 0, 0, 0,12, 0,10,10,12,11,10,11, - 12,12, 0, 0, 0,13,13,10,10,10,11,12, 0,13, 0, 0, - 0, 0, 0, 0,13,11, 0,12,12,12,13,12, 0, 0, 0, 0, - 0, 0,13,13,11,13,13,11,12, -}; - -static float _vq_quantthresh__8c0_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__8c0_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p8_0 = { - _vq_quantthresh__8c0_s_p8_0, - _vq_quantmap__8c0_s_p8_0, - 13, - 13 -}; - -static static_codebook _8c0_s_p8_0 = { - 2, 169, - _vq_lengthlist__8c0_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__8c0_s_p8_0, - NULL, - &_vq_auxt__8c0_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c0_s_p8_1[] = { - 1, 3, 4, 5, 5, 7, 6, 6, 6, 5, 7, 7, 7, 6, 6, 7, - 7, 7, 6, 6, 7, 7, 7, 6, 6, -}; - -static float _vq_quantthresh__8c0_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c0_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p8_1 = { - _vq_quantthresh__8c0_s_p8_1, - _vq_quantmap__8c0_s_p8_1, - 5, - 5 -}; - -static static_codebook _8c0_s_p8_1 = { - 2, 25, - _vq_lengthlist__8c0_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c0_s_p8_1, - NULL, - &_vq_auxt__8c0_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p9_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8c0_s_p9_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__8c0_s_p9_0[] = { - -157.5, 157.5, -}; - -static long _vq_quantmap__8c0_s_p9_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p9_0 = { - _vq_quantthresh__8c0_s_p9_0, - _vq_quantmap__8c0_s_p9_0, - 3, - 3 -}; - -static static_codebook _8c0_s_p9_0 = { - 4, 81, - _vq_lengthlist__8c0_s_p9_0, - 1, -518803456, 1628680192, 2, 0, - _vq_quantlist__8c0_s_p9_0, - NULL, - &_vq_auxt__8c0_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__8c0_s_p9_1[] = { - 1, 4, 4, 5, 5,10, 8,11,11,11,11,11,11,11,11, 6, - 6, 6, 7, 6,11,10,11,11,11,11,11,11,11,11, 7, 5, - 6, 6, 6, 8, 7,11,11,11,11,11,11,11,11,11, 7, 8, - 8, 8, 9, 9,11,11,11,11,11,11,11,11,11, 9, 8, 7, - 8, 9,11,11,11,11,11,11,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11, -}; - -static float _vq_quantthresh__8c0_s_p9_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__8c0_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p9_1 = { - _vq_quantthresh__8c0_s_p9_1, - _vq_quantmap__8c0_s_p9_1, - 15, - 15 -}; - -static static_codebook _8c0_s_p9_1 = { - 2, 225, - _vq_lengthlist__8c0_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__8c0_s_p9_1, - NULL, - &_vq_auxt__8c0_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c0_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__8c0_s_p9_2[] = { - 1, 5, 5, 7, 7, 8, 7, 8, 8,10,10, 9, 9,10,10,10, - 11,11,10,12,11,12,12,12, 9, 8, 8, 8, 8, 8, 9,10, - 10,10,10,11,11,11,10,11,11,12,12,11,12, 8, 8, 7, - 7, 8, 9,10,10,10, 9,10,10, 9,10,10,11,11,11,11, - 11,11, 9, 9, 9, 9, 8, 9,10,10,11,10,10,11,11,12, - 10,10,12,12,11,11,10, 9, 9,10, 8, 9,10,10,10, 9, - 10,10,11,11,10,11,10,10,10,12,12,12, 9,10, 9,10, - 9, 9,10,10,11,11,11,11,10,10,10,11,12,11,12,11, - 12,10,11,10,11, 9,10, 9,10, 9,10,10, 9,10,10,11, - 10,11,11,11,11,12,11, 9,10,10,10,10,11,11,11,11, - 11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11, - 10, 9,11,10,11, 9,10,11,10,10,10,11,11,11,11,12, - 12,10, 9, 9,11,10, 9,12,11,10,12,12,11,11,11,11, - 10,11,11,12,11,10,12, 9,11,10,11,10,10,11,10,11, - 9,10,10,10,11,12,11,11,12,11,10,10,11,11, 9,10, - 10,12,10,11,10,10,10, 9,10,10,10,10, 9,10,10,11, - 11,11,11,12,11,10,10,10,10,11,11,10,11,11, 9,11, - 10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10, - 11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11, - 10,11,10,10,11,11,10,12,10, 9,10,10,11,11,11,10, - 12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10, - 12,11,11,10,10,10,12,10,10,11, 9,10,11,11,11,10, - 10,11,10,10, 9,11,11,12,12,11,12,11,11,11,11,11, - 11, 9,10,11,10,12,10,10,10,10,11,10,10,11,10,10, - 12,10,10,10,10,10, 9,12,10,10,10,10,12, 9,11,10, - 10,11,10,12,12,10,12,12,12,10,10,10,10, 9,10,11, - 10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10, - 10,11, 9,11,10, 9,10, 9,10, -}; - -static float _vq_quantthresh__8c0_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__8c0_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__8c0_s_p9_2 = { - _vq_quantthresh__8c0_s_p9_2, - _vq_quantmap__8c0_s_p9_2, - 21, - 21 -}; - -static static_codebook _8c0_s_p9_2 = { - 2, 441, - _vq_lengthlist__8c0_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__8c0_s_p9_2, - NULL, - &_vq_auxt__8c0_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__8c0_s_single[] = { - 4, 5,18, 7,10, 6, 7, 8, 9,10, 5, 2,18, 5, 7, 5, - 6, 7, 8,11,17,17,17,17,17,17,17,17,17,17, 7, 4, - 17, 6, 9, 6, 8,10,12,15,11, 7,17, 9, 6, 6, 7, 9, - 11,15, 6, 4,17, 6, 6, 4, 5, 8,11,16, 6, 6,17, 8, - 6, 5, 6, 9,13,16, 8, 9,17,11, 9, 8, 8,11,13,17, - 9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17, - 17,16,17,17, -}; - -static static_codebook _huff_book__8c0_s_single = { - 2, 100, - _huff_lengthlist__8c0_s_single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8c1_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 8, 8,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 8,10, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c1_s_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8c1_s_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p1_0 = { - _vq_quantthresh__8c1_s_p1_0, - _vq_quantmap__8c1_s_p1_0, - 3, - 3 -}; - -static static_codebook _8c1_s_p1_0 = { - 8, 6561, - _vq_lengthlist__8c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8c1_s_p1_0, - NULL, - &_vq_auxt__8c1_s_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c1_s_p2_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c1_s_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c1_s_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p2_0 = { - _vq_quantthresh__8c1_s_p2_0, - _vq_quantmap__8c1_s_p2_0, - 5, - 5 -}; - -static static_codebook _8c1_s_p2_0 = { - 4, 625, - _vq_lengthlist__8c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c1_s_p2_0, - NULL, - &_vq_auxt__8c1_s_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c1_s_p3_0[] = { - 2, 4, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c1_s_p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c1_s_p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p3_0 = { - _vq_quantthresh__8c1_s_p3_0, - _vq_quantmap__8c1_s_p3_0, - 5, - 5 -}; - -static static_codebook _8c1_s_p3_0 = { - 4, 625, - _vq_lengthlist__8c1_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c1_s_p3_0, - NULL, - &_vq_auxt__8c1_s_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8c1_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static float _vq_quantthresh__8c1_s_p4_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8c1_s_p4_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p4_0 = { - _vq_quantthresh__8c1_s_p4_0, - _vq_quantmap__8c1_s_p4_0, - 9, - 9 -}; - -static static_codebook _8c1_s_p4_0 = { - 2, 81, - _vq_lengthlist__8c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8c1_s_p4_0, - NULL, - &_vq_auxt__8c1_s_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8c1_s_p5_0[] = { - 1, 3, 3, 4, 5, 6, 6, 8, 8, 0, 0, 0, 8, 8, 7, 7, - 9, 9, 0, 0, 0, 8, 8, 7, 7, 9, 9, 0, 0, 0, 9,10, - 8, 8, 9, 9, 0, 0, 0,10,10, 8, 8, 9, 9, 0, 0, 0, - 11,10, 8, 8,10,10, 0, 0, 0,11,11, 8, 8,10,10, 0, - 0, 0,12,12, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static float _vq_quantthresh__8c1_s_p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8c1_s_p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p5_0 = { - _vq_quantthresh__8c1_s_p5_0, - _vq_quantmap__8c1_s_p5_0, - 9, - 9 -}; - -static static_codebook _8c1_s_p5_0 = { - 2, 81, - _vq_lengthlist__8c1_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8c1_s_p5_0, - NULL, - &_vq_auxt__8c1_s_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__8c1_s_p6_0[] = { - 1, 3, 3, 5, 5, 8, 8, 8, 8, 9, 9,10,10,11,11,11, - 11, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11,11, - 12,12,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0,10,10, 9, 9,10,10,10,10, - 11,11,12,12,13,13, 0, 0, 0,10,10, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0,11,11, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,11,11,11,12,12,13,12,13,13, 0, 0, 0, 0, - 0, 0, 0,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, - 14, -}; - -static float _vq_quantthresh__8c1_s_p6_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__8c1_s_p6_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p6_0 = { - _vq_quantthresh__8c1_s_p6_0, - _vq_quantmap__8c1_s_p6_0, - 17, - 17 -}; - -static static_codebook _8c1_s_p6_0 = { - 2, 289, - _vq_lengthlist__8c1_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__8c1_s_p6_0, - NULL, - &_vq_auxt__8c1_s_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10, 9,10,11,10,10, 6, 9, 9, - 10, 9, 9,11, 9,10, 7,10,10,11,11,11,11,10,10, 6, - 9, 9,10,10,10,11, 9, 9, 6, 9, 9,10,10,10,10, 9, - 9, -}; - -static float _vq_quantthresh__8c1_s_p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__8c1_s_p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p7_0 = { - _vq_quantthresh__8c1_s_p7_0, - _vq_quantmap__8c1_s_p7_0, - 3, - 3 -}; - -static static_codebook _8c1_s_p7_0 = { - 4, 81, - _vq_lengthlist__8c1_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__8c1_s_p7_0, - NULL, - &_vq_auxt__8c1_s_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__8c1_s_p7_1[] = { - 2, 3, 3, 5, 5, 7, 7, 7, 7, 7, 7,10,10, 9, 7, 7, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__8c1_s_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__8c1_s_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p7_1 = { - _vq_quantthresh__8c1_s_p7_1, - _vq_quantmap__8c1_s_p7_1, - 11, - 11 -}; - -static static_codebook _8c1_s_p7_1 = { - 2, 121, - _vq_lengthlist__8c1_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__8c1_s_p7_1, - NULL, - &_vq_auxt__8c1_s_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__8c1_s_p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10, 9,10,11,11,11, 0,13, - 12, 9, 8, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9, 9, - 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, - 10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,11, - 13,12, 0, 0, 0,14,14,10,10,11,10,11,11,12,12, 0, - 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,10,12,11,13,12, -}; - -static float _vq_quantthresh__8c1_s_p8_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__8c1_s_p8_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p8_0 = { - _vq_quantthresh__8c1_s_p8_0, - _vq_quantmap__8c1_s_p8_0, - 13, - 13 -}; - -static static_codebook _8c1_s_p8_0 = { - 2, 169, - _vq_lengthlist__8c1_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__8c1_s_p8_0, - NULL, - &_vq_auxt__8c1_s_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8c1_s_p8_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static float _vq_quantthresh__8c1_s_p8_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8c1_s_p8_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p8_1 = { - _vq_quantthresh__8c1_s_p8_1, - _vq_quantmap__8c1_s_p8_1, - 5, - 5 -}; - -static static_codebook _8c1_s_p8_1 = { - 2, 25, - _vq_lengthlist__8c1_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8c1_s_p8_1, - NULL, - &_vq_auxt__8c1_s_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__8c1_s_p9_0[] = { - 1, 3, 3,10,10,10,10,10,10,10,10,10,10, 5, 6, 6, - 10,10,10,10,10,10,10,10,10,10, 6, 7, 8,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__8c1_s_p9_0[] = { - -1732.5, -1417.5, -1102.5, -787.5, -472.5, -157.5, 157.5, 472.5, - 787.5, 1102.5, 1417.5, 1732.5, -}; - -static long _vq_quantmap__8c1_s_p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p9_0 = { - _vq_quantthresh__8c1_s_p9_0, - _vq_quantmap__8c1_s_p9_0, - 13, - 13 -}; - -static static_codebook _8c1_s_p9_0 = { - 2, 169, - _vq_lengthlist__8c1_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - _vq_quantlist__8c1_s_p9_0, - NULL, - &_vq_auxt__8c1_s_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__8c1_s_p9_1[] = { - 1, 4, 4, 5, 5, 7, 7, 9, 9,11,11,12,12,13,13, 6, - 5, 5, 6, 6, 9, 9,10,10,12,12,12,13,15,14, 6, 5, - 5, 7, 7, 9, 9,10,10,12,12,12,13,14,13,17, 7, 7, - 8, 8,10,10,11,11,12,13,13,13,13,13,17, 7, 7, 8, - 8,10,10,11,11,13,13,13,13,14,14,17,11,11, 9, 9, - 11,11,12,12,12,13,13,14,15,13,17,12,12, 9, 9,11, - 11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12, - 13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13, - 13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14, - 15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14, - 15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14, - 14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15, - 15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14, - 17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15, - 15, -}; - -static float _vq_quantthresh__8c1_s_p9_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__8c1_s_p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p9_1 = { - _vq_quantthresh__8c1_s_p9_1, - _vq_quantmap__8c1_s_p9_1, - 15, - 15 -}; - -static static_codebook _8c1_s_p9_1 = { - 2, 225, - _vq_lengthlist__8c1_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__8c1_s_p9_1, - NULL, - &_vq_auxt__8c1_s_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__8c1_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__8c1_s_p9_2[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9,11,11,12, 7, 7, 7, 7, 8, 8, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,11,11,11, 7, 7, 7, - 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11, - 11,12, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,11,12,11, 9, 9, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,12,11, - 12,11, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,12,11,12,11,11, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10, - 11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12, - 12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10, - 10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__8c1_s_p9_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__8c1_s_p9_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__8c1_s_p9_2 = { - _vq_quantthresh__8c1_s_p9_2, - _vq_quantmap__8c1_s_p9_2, - 21, - 21 -}; - -static static_codebook _8c1_s_p9_2 = { - 2, 441, - _vq_lengthlist__8c1_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__8c1_s_p9_2, - NULL, - &_vq_auxt__8c1_s_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__8c1_s_single[] = { - 4, 6,18, 8,11, 8, 8, 9, 9,10, 4, 4,18, 5, 9, 5, - 6, 7, 8,10,18,18,18,18,17,17,17,17,17,17, 7, 5, - 17, 6,11, 6, 7, 8, 9,12,12, 9,17,12, 8, 8, 9,10, - 10,13, 7, 5,17, 6, 8, 4, 5, 6, 8,10, 6, 5,17, 6, - 8, 5, 4, 5, 7, 9, 7, 7,17, 8, 9, 6, 5, 5, 6, 8, - 8, 8,17, 9,11, 8, 6, 6, 6, 7, 9,10,17,12,12,10, - 9, 7, 7, 8, -}; - -static static_codebook _huff_book__8c1_s_single = { - 2, 100, - _huff_lengthlist__8c1_s_single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - diff --git a/libvorbis-1.0.1/lib/books/floor/Makefile.in b/libvorbis-1.0.1/lib/books/floor/Makefile.in deleted file mode 100644 index 8ff86c6..0000000 --- a/libvorbis-1.0.1/lib/books/floor/Makefile.in +++ /dev/null @@ -1,211 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = floor_books.h -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/books/floor/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib/books/floor - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/books/floor/floor_books.h b/libvorbis-1.0.1/lib/books/floor/floor_books.h deleted file mode 100644 index b3c7ed6..0000000 --- a/libvorbis-1.0.1/lib/books/floor/floor_books.h +++ /dev/null @@ -1,1455 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - last modified: $Id: floor_books.h,v 1.3 2002/07/11 06:41:01 xiphmont Exp $ - - ********************************************************************/ - -#include "codebook.h" -static long _huff_lengthlist_line_1024x27_0sub0[] = { - 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 6, - 8, 6, 9, 6, 9, 6, 9, 6,10, 6,10, 6,11, 6,11, 6, - 11, 6,12, 6,12, 7,12, 7,12, 7,12, 7,12, 7,12, 7, - 12, 7,12, 7,12, 7,12, 7,12, 8,12, 8,11, 8,11, 8, - 12, 9,11, 9, 9,10,11, 9,12, 9,12,12,14,13,13,14, - 13,13,13,12,14,16,20,20,21,14,14,15,21,21,21,20, - 21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20, -}; - -static static_codebook _huff_book_line_1024x27_0sub0 = { - 1, 128, - _huff_lengthlist_line_1024x27_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_1sub0[] = { - 2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 4, 6, 5, 6, 5, - 7, 5, 7, 6, 8, 6, 8, 6, 8, 6, 9, 6,10, 6,10, 6, -}; - -static static_codebook _huff_book_line_1024x27_1sub0 = { - 1, 32, - _huff_lengthlist_line_1024x27_1sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 5,10, 4,10, 4, 9, 4, 9, 3, 9, 4, 9, 4, 9, 4, - 9, 4, 9, 4, 9, 4, 8, 4, 8, 4, 8, 5, 9, 5, 9, 6, - 8, 6, 9, 7,10, 8,10, 9,10,10,10,12,11,13,12,13, - 13,15,13,14,13,14,12,15,13,15,14,15,13,16,14,16, - 14,15,14,14,14,16,15,18,15,18,16,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17, -}; - -static static_codebook _huff_book_line_1024x27_1sub1 = { - 1, 128, - _huff_lengthlist_line_1024x27_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_2sub0[] = { - 1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 6, 7, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9,10,10, -}; - -static static_codebook _huff_book_line_1024x27_2sub0 = { - 1, 32, - _huff_lengthlist_line_1024x27_2sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_2sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 5, 6, 5, 6, 6, - 7, 6, 7, 7, 7, 7, 7, 7, 8, 9, 8, 9, 8,10, 8,11, - 8,12, 9,13, 9,14, 9,14, 8,12, 8,14, 9,14, 8,12, - 8,11, 8,11, 8,11, 9,11,10,11,10,12,10,12,11,12, - 12,12,12,12,11,12,11,13,11,13,12,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13, -}; - -static static_codebook _huff_book_line_1024x27_2sub1 = { - 1, 128, - _huff_lengthlist_line_1024x27_2sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_3sub1[] = { - 0, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 5, 4, - 5, 5, -}; - -static static_codebook _huff_book_line_1024x27_3sub1 = { - 1, 18, - _huff_lengthlist_line_1024x27_3sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 3, 4, 4, 4, 5, 4, 6, 5, 6, 5, 7, - 5, 9, 5,10, 6,11, 6,12, 7,13, 8,15, 8,15, 9,15, - 9,15, -}; - -static static_codebook _huff_book_line_1024x27_3sub2 = { - 1, 50, - _huff_lengthlist_line_1024x27_3sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 9, 2, 9, 2, 9, 4, 9, 6, 9, 7, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static static_codebook _huff_book_line_1024x27_3sub3 = { - 1, 128, - _huff_lengthlist_line_1024x27_3sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_4sub1[] = { - 0, 4, 5, 4, 5, 4, 6, 3, 6, 3, 5, 3, 5, 3, 6, 4, - 6, 4, -}; - -static static_codebook _huff_book_line_1024x27_4sub1 = { - 1, 18, - _huff_lengthlist_line_1024x27_4sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_4sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 4, 2, 5, 3, 5, 4, 6, 6, 6, 6, 7, 7, - 7, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9,10,10,11, - 10,11, -}; - -static static_codebook _huff_book_line_1024x27_4sub2 = { - 1, 50, - _huff_lengthlist_line_1024x27_4sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_4sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 6, 4, 6, 4, 5, 5, 7, 4, 8, 5, 9, - 4, 9, 5, 9, 5, 9, 6, 9, 5, 9, 7, 9, 7, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static static_codebook _huff_book_line_1024x27_4sub3 = { - 1, 128, - _huff_lengthlist_line_1024x27_4sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_class1[] = { - 2, 9, 8,14, 7,13,11,14, 1, 5, 3, 7, 4,10, 7,12, -}; - -static static_codebook _huff_book_line_1024x27_class1 = { - 1, 16, - _huff_lengthlist_line_1024x27_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_class2[] = { - 1, 3, 2, 5, 4, 7, 6, 7, -}; - -static static_codebook _huff_book_line_1024x27_class2 = { - 1, 8, - _huff_lengthlist_line_1024x27_class2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_class3[] = { - 1, 5, 6,19, 5, 8,10,19, 9,10,15,19,19,19,19,19, - 4, 7, 9,19, 6, 7,10,19,11,11,15,19,19,19,19,19, - 8,11,13,19, 8,11,14,19,13,13,17,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 3, 7, 9,19, 6, 8,11,19,11,11,15,19,19,19,19,19, - 5, 7,11,19, 6, 7,11,19,11,10,14,19,19,19,19,19, - 8,11,15,19, 8,10,14,19,13,13,16,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 6, 9,11,19, 8,10,12,19,15,14,17,19,19,19,19,19, - 5, 8,11,19, 7, 9,12,19,14,11,16,19,19,19,19,19, - 9,10,18,19, 9,10,15,19,14,16,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 16,17,19,19,16,17,17,19,19,19,19,19,19,19,19,19, - 12,14,16,19,12,12,16,19,19,19,19,19,19,19,19,19, - 18,18,19,19,17,16,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18, -}; - -static static_codebook _huff_book_line_1024x27_class3 = { - 1, 256, - _huff_lengthlist_line_1024x27_class3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_1024x27_class4[] = { - 1, 4, 8,12, 4, 6, 8,21, 9, 8,10,21,20,16,18,20, - 2, 6, 8,20, 7, 6, 9,19,11, 9,10,20,17,15,16,20, - 5, 8,11,19, 8, 8,10,15,12,10,12,15,20,20,15,20, - 17,20,20,20,15,20,20,19,20,20,16,19,20,20,20,20, -}; - -static static_codebook _huff_book_line_1024x27_class4 = { - 1, 64, - _huff_lengthlist_line_1024x27_class4, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_0sub0[] = { - 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, - 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7, 9, 8,10, 8, - 10, 8,10, 8,10, 8,10, 9,11, 9,11, 9,10, 9,10,10, - 11,10,11,11,11,11,12,12,13,14,13,14,16,16,16,16, - 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,15, -}; - -static static_codebook _huff_book_line_128x11_0sub0 = { - 1, 128, - _huff_lengthlist_line_128x11_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_1sub0[] = { - 2, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 5, 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, -}; - -static static_codebook _huff_book_line_128x11_1sub0 = { - 1, 32, - _huff_lengthlist_line_128x11_1sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 3, 6, 3, 7, 3, 7, 4, 8, 4, 8, 4, 8, 4, 9, 4, - 10, 5, 9, 5,10, 5,10, 5,10, 5,12, 6,12, 6,10, 6, - 10, 7,10, 8,10, 8,10, 9,11, 9,12,11,10,11,11,13, - 12,12,12,13,10,13,10,13,10,13,10,13,11,13,10,13, - 10,13,10,13,10,13,10,13,11,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, -}; - -static static_codebook _huff_book_line_128x11_1sub1 = { - 1, 128, - _huff_lengthlist_line_128x11_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_2sub1[] = { - 0, 4, 5, 4, 5, 4, 5, 3, 4, 3, 4, 4, 4, 4, 4, 5, - 5, 5, -}; - -static static_codebook _huff_book_line_128x11_2sub1 = { - 1, 18, - _huff_lengthlist_line_128x11_2sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 3, 4, 3, 5, 4, 5, 5, 6, 5, 6, 6, 6, - 6, 8, 6,10, 7,10, 8,10, 8,10,10,10,10,10,10,10, - 10,10, -}; - -static static_codebook _huff_book_line_128x11_2sub2 = { - 1, 50, - _huff_lengthlist_line_128x11_2sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -}; - -static static_codebook _huff_book_line_128x11_2sub3 = { - 1, 128, - _huff_lengthlist_line_128x11_2sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, - 5, 4, -}; - -static static_codebook _huff_book_line_128x11_3sub1 = { - 1, 18, - _huff_lengthlist_line_128x11_3sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 3, 5, 3, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, - 8, 4, 9, 4, 9, 4, 9, 5,10, 5,11, 5,12, 6,13, 6, - 13, 7, -}; - -static static_codebook _huff_book_line_128x11_3sub2 = { - 1, 50, - _huff_lengthlist_line_128x11_3sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 2, 6, 2, 7, 3, 8, 4, 7, 6, 9, 7, 9, 7, - 9, 9, 9, 8, 9, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static static_codebook _huff_book_line_128x11_3sub3 = { - 1, 128, - _huff_lengthlist_line_128x11_3sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_class1[] = { - 1, 6, 3, 7, 2, 5, 4, 7, -}; - -static static_codebook _huff_book_line_128x11_class1 = { - 1, 8, - _huff_lengthlist_line_128x11_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_class2[] = { - 1, 5,11,14, 4,11,13,14,10,14,13,14,14,14,13,13, - 2, 6,11,13, 5,11,12,13,11,12,13,13,13,13,13,13, - 4, 8,12,13, 5, 9,11,13,12,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, -}; - -static static_codebook _huff_book_line_128x11_class2 = { - 1, 64, - _huff_lengthlist_line_128x11_class2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x11_class3[] = { - 6, 7,11,16, 6, 7,10,16,11, 9,13,15,15,15,15,15, - 4, 4, 7,14, 4, 4, 6,14, 8, 6, 8,15,15,15,15,15, - 4, 4, 6,15, 3, 2, 4,13, 6, 5, 6,14,15,12,11,14, - 11,11,13,15, 9, 8,10,15,11,10,11,15,15,15,15,15, -}; - -static static_codebook _huff_book_line_128x11_class3 = { - 1, 64, - _huff_lengthlist_line_128x11_class3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_0sub0[] = { - 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 6, 7, 6, - 7, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7, - 9, 7, 9, 7, 9, 7, 9, 7, 9, 7,10, 7,10, 8,10, 8, - 11, 8,11, 8,11, 8,12, 8,12, 8,12, 8,12, 9,12, 9, - 12, 9,12, 9,13, 9,13,10,13,10,13,11,14,12,14,13, - 14,14,16,15,17,17,19,18,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18, -}; - -static static_codebook _huff_book_line_128x17_0sub0 = { - 1, 128, - _huff_lengthlist_line_128x17_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_1sub0[] = { - 2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 7, 6, 7, 6, 8, 6, 8, 7, 9, 7, 9, 8, -}; - -static static_codebook _huff_book_line_128x17_1sub0 = { - 1, 32, - _huff_lengthlist_line_128x17_1sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 2, 5, 3, 5, 3, 6, 4, 6, 4, 7, 4, 8, 5, 8, 5, - 8, 6, 9, 6, 9, 7, 9, 8,10, 8,10, 9,10,10,10,10, - 10,12,10,14,11,15,12,15,11,15,11,15,11,14,11,15, - 11,14,11,13,10,12,10,14,10,14,11,13,10,12,11,15, - 12,15,13,15,12,13,14,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,14, -}; - -static static_codebook _huff_book_line_128x17_1sub1 = { - 1, 128, - _huff_lengthlist_line_128x17_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_2sub1[] = { - 0, 4, 5, 4, 7, 3, 8, 3, 9, 3,10, 2,12, 3,12, 4, - 11, 6, -}; - -static static_codebook _huff_book_line_128x17_2sub1 = { - 1, 18, - _huff_lengthlist_line_128x17_2sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 1, 8, 2, 9, 3, 9, 7, 9, 7, 9, 7, 8, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, -}; - -static static_codebook _huff_book_line_128x17_2sub2 = { - 1, 50, - _huff_lengthlist_line_128x17_2sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -}; - -static static_codebook _huff_book_line_128x17_2sub3 = { - 1, 128, - _huff_lengthlist_line_128x17_2sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_3sub1[] = { - 0, 4, 4, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 6, 4, - 6, 4, -}; - -static static_codebook _huff_book_line_128x17_3sub1 = { - 1, 18, - _huff_lengthlist_line_128x17_3sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 3, 6, 3, 6, 3, 7, 4, 8, 4, 8, 4, 9, 4, - 9, 4,10, 4,10, 5,11, 5,11, 5,12, 5,12, 6,12, 6, - 12, 7, -}; - -static static_codebook _huff_book_line_128x17_3sub2 = { - 1, 50, - _huff_lengthlist_line_128x17_3sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 1, 7, 3, 6, 3, 6, 4, 6, 5, 6, 8, 7,10, - 7,11, 7,11, 8,11, 9,11, 7,11, 8,11, 8,11,10,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, -}; - -static static_codebook _huff_book_line_128x17_3sub3 = { - 1, 128, - _huff_lengthlist_line_128x17_3sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_class1[] = { - 1, 3, 4, 7, 2, 6, 5, 7, -}; - -static static_codebook _huff_book_line_128x17_class1 = { - 1, 8, - _huff_lengthlist_line_128x17_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_class2[] = { - 1, 2, 7,14, 4, 9,13,14, 8,14,14,14,14,14,14,14, - 3, 5,10,14, 8,14,14,14,11,14,14,14,14,14,14,14, - 7,10,14,14,12,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13, -}; - -static static_codebook _huff_book_line_128x17_class2 = { - 1, 64, - _huff_lengthlist_line_128x17_class2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x17_class3[] = { - 2, 6,11,19, 5, 9,12,19,10,11,13,19,19,19,19,19, - 2, 5, 8,19, 4, 6, 8,19, 8, 8, 9,19,19,16,19,19, - 3, 6, 8,19, 3, 5, 7,18, 8, 8, 9,16,16,11,16,19, - 14,14,14,19,10,10,11,19,16,12,14,19,19,19,19,19, -}; - -static static_codebook _huff_book_line_128x17_class3 = { - 1, 64, - _huff_lengthlist_line_128x17_class3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x4_0sub0[] = { - 2, 2, 2, 2, -}; - -static static_codebook _huff_book_line_128x4_0sub0 = { - 1, 4, - _huff_lengthlist_line_128x4_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x4_0sub1[] = { - 0, 0, 0, 0, 3, 2, 3, 2, 3, 3, -}; - -static static_codebook _huff_book_line_128x4_0sub1 = { - 1, 10, - _huff_lengthlist_line_128x4_0sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x4_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 4, 4, - 4, 3, 4, 4, 5, 3, 6, 4, 6, -}; - -static static_codebook _huff_book_line_128x4_0sub2 = { - 1, 25, - _huff_lengthlist_line_128x4_0sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x4_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 2, 6, 3, 6, 3, - 7, 4, 7, 5, 7, 5, 7, 6, 8, 8, 9,10,10,16,10,16, - 10,14,10,14,11,15,15,15,15,15,15,15,15,15,15,15, -}; - -static static_codebook _huff_book_line_128x4_0sub3 = { - 1, 64, - _huff_lengthlist_line_128x4_0sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x4_class0[] = { - 8, 8, 8,14, 7, 7, 8,13, 7, 6, 7,11,11,11,10,13, - 9, 9,10,16, 8, 8, 9,12, 7, 7, 7,11,11,11,10,12, - 11,11,11,14,10,10,10,14, 9, 8, 9,12,13,14,12,14, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 8, 7, 8,11, 7, 7, 7,11, 6, 6, 6,10,10,10,10,14, - 8, 8, 8,12, 7, 7, 8,11, 6, 7, 7,10,10,10,10,13, - 10,10,10,12,10, 9, 9,12, 9, 9, 9,12,12,13,12,14, - 16,16,16,16,16,14,16,16,14,14,16,16,16,16,16,16, - 7, 6, 5, 7, 6, 6, 5, 6, 6, 5, 5, 5, 9,10, 9,10, - 8, 7, 6, 7, 7, 6, 5, 6, 6, 6, 5, 6,10,10, 9, 9, - 10, 9, 7, 8, 9, 8, 7, 7, 8, 7, 6, 7,11,11,10, 9, - 16,13,14,16,14,14,13,15,16,14,12,13,16,16,14,16, - 9, 8, 7, 8, 8, 8, 7, 8, 8, 7, 6, 7,10,10, 9,12, - 9, 9, 8, 8, 9, 8, 7, 8, 8, 8, 6, 7,10,10, 9,12, - 11,10, 9,10,10, 9, 7, 9, 9, 8, 6, 9,12,11,10,13, - 12,16,16,16,12,13,12,16,15,12,11,14,16,16,16,16, -}; - -static static_codebook _huff_book_line_128x4_class0 = { - 1, 256, - _huff_lengthlist_line_128x4_class0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_0sub1[] = { - 0, 3, 3, 3, 3, 3, 3, 3, 3, -}; - -static static_codebook _huff_book_line_128x7_0sub1 = { - 1, 9, - _huff_lengthlist_line_128x7_0sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 3, 4, 4, 4, - 5, 4, 5, 4, 5, 4, 6, 4, 6, -}; - -static static_codebook _huff_book_line_128x7_0sub2 = { - 1, 25, - _huff_lengthlist_line_128x7_0sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 5, 3, 6, 4, - 6, 4, 6, 4, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 5, 5, - 6, 7, 8,10,12,12,12,12,12,12,12,12,12,12,12,12, -}; - -static static_codebook _huff_book_line_128x7_0sub3 = { - 1, 64, - _huff_lengthlist_line_128x7_0sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_1sub1[] = { - 0, 3, 3, 3, 3, 2, 4, 3, 4, -}; - -static static_codebook _huff_book_line_128x7_1sub1 = { - 1, 9, - _huff_lengthlist_line_128x7_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_1sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 6, 3, 7, 3, - 8, 3, 9, 3,10, 3,11, 4,11, -}; - -static static_codebook _huff_book_line_128x7_1sub2 = { - 1, 25, - _huff_lengthlist_line_128x7_1sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_1sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,12, 2, 9, 3,10, 4, - 12, 5,12, 6,12,10,12,11,12,12,12,12,12,12,12,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, -}; - -static static_codebook _huff_book_line_128x7_1sub3 = { - 1, 64, - _huff_lengthlist_line_128x7_1sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_class0[] = { - 10, 7, 8,14,10, 7, 7,12,11, 8, 8,13,16,16,16,16, - 8, 5, 5,10, 7, 4, 4, 8, 8, 5, 5, 9,16,16,16,16, - 7, 4, 5, 7, 6, 3, 3, 6, 8, 5, 5, 7,16,14,13,16, - 9, 7, 7,10, 7, 4, 4, 7, 9, 6, 5, 6,15,13,11,14, -}; - -static static_codebook _huff_book_line_128x7_class0 = { - 1, 64, - _huff_lengthlist_line_128x7_class0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_128x7_class1[] = { - 8,12,16,16,10,14,16,16,12,15,16,16,16,16,16,16, - 7,11,15,16, 7,11,16,16,10,12,16,16,16,16,16,16, - 9,15,16,16, 9,12,16,16,11,15,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 6,10,13,16, 7,10,15,16, 9,11,16,16,16,16,16,16, - 4, 8,13,16, 5, 8,15,16, 7, 9,15,16,16,16,16,16, - 6,12,16,16, 6,10,15,16, 9,10,14,16,16,16,16,16, - 14,16,16,16,12,14,16,16,15,16,16,16,16,16,16,16, - 4, 9,11,16, 5, 9,13,16, 7, 9,15,16,16,16,16,16, - 2, 7,11,16, 3, 6,11,16, 5, 7,12,16,16,16,16,16, - 4, 9,14,16, 4, 7,13,16, 6, 8,13,16,16,16,16,16, - 11,14,16,16,10,16,14,16,11,16,16,16,16,16,16,16, - 7,13,16,16, 9,13,15,16,11,13,16,16,16,16,16,16, - 5,10,14,16, 6,10,15,16, 9,10,16,16,16,16,16,16, - 7,13,16,16, 6,10,16,16, 9,12,16,16,16,16,16,16, - 11,16,16,16,10,16,16,16,13,16,16,16,16,16,16,16, -}; - -static static_codebook _huff_book_line_128x7_class1 = { - 1, 256, - _huff_lengthlist_line_128x7_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x4_0sub0[] = { - 1, 3, 2, 3, -}; - -static static_codebook _huff_book_line_256x4_0sub0 = { - 1, 4, - _huff_lengthlist_line_256x4_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x4_0sub1[] = { - 0, 0, 0, 0, 2, 2, 3, 3, 3, 3, -}; - -static static_codebook _huff_book_line_256x4_0sub1 = { - 1, 10, - _huff_lengthlist_line_256x4_0sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x4_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4, - 4, 4, 5, 4, 5, 5, 6, 4, 6, -}; - -static static_codebook _huff_book_line_256x4_0sub2 = { - 1, 25, - _huff_lengthlist_line_256x4_0sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x4_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 4, 3, 4, 4, - 5, 4, 5, 5, 6, 5, 7, 6, 8, 7, 9, 8, 9, 9,10,12, - 15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,14, -}; - -static static_codebook _huff_book_line_256x4_0sub3 = { - 1, 64, - _huff_lengthlist_line_256x4_0sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x4_class0[] = { - 4, 5, 6,11, 5, 5, 6,10, 7, 6, 5, 6,14,13,10,10, - 6, 6, 6,10, 6, 6, 6,10, 7, 7, 7, 9, 9,10, 9,12, - 9, 8, 8,11, 8, 8, 8,10, 8, 8, 9,11, 8, 9, 9,13, - 18,18,18,18,16,17,18,18,12,13,14,18,14,14,10,12, - 5, 5, 6,12, 6, 5, 6,10, 7, 7, 6, 7,13,12, 9,12, - 6, 6, 6,11, 6, 6, 6, 9, 7, 7, 7,10,10,10, 9,12, - 9, 8, 8,12, 8, 8, 7,11, 8, 8, 8,11, 9, 9, 8,10, - 18,18,17,18,18,18,15,18,16,14,12,18,14,12,10,11, - 8, 7, 7,12, 8, 7, 7,10, 8, 7, 6, 6,11,10, 9,10, - 8, 8, 7,11, 8, 7, 7, 9, 8, 8, 7, 9,10,10, 9, 9, - 10, 9, 8,12, 9, 9, 8,11,10, 9, 8, 9, 8, 8, 7, 9, - 18,18,18,18,18,18,18,18,17,16,14,18,13,12,11,13, - 12,12,13,16,11,10,10,16,12,12, 9, 7,15,12,11,11, - 14,14,14,14,12,11,11,18,14,12,10,11,18,13,11,13, - 18,18,18,17,17,16,15,17,18,15,16,18,16,12,11,11, - 18,18,18,18,18,18,18,18,18,18,17,18,18,13,12,15, -}; - -static static_codebook _huff_book_line_256x4_class0 = { - 1, 256, - _huff_lengthlist_line_256x4_class0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_0sub1[] = { - 0, 2, 3, 3, 3, 3, 4, 3, 4, -}; - -static static_codebook _huff_book_line_256x7_0sub1 = { - 1, 9, - _huff_lengthlist_line_256x7_0sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 5, 3, - 6, 3, 6, 4, 6, 4, 7, 5, 7, -}; - -static static_codebook _huff_book_line_256x7_0sub2 = { - 1, 25, - _huff_lengthlist_line_256x7_0sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 5, 3, 5, 3, - 6, 3, 6, 4, 7, 6, 7, 8, 7, 9, 8, 9, 9, 9,10, 9, - 11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12, -}; - -static static_codebook _huff_book_line_256x7_0sub3 = { - 1, 64, - _huff_lengthlist_line_256x7_0sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_1sub1[] = { - 0, 3, 3, 3, 3, 2, 4, 3, 4, -}; - -static static_codebook _huff_book_line_256x7_1sub1 = { - 1, 9, - _huff_lengthlist_line_256x7_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_1sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 4, 3, 4, 4, - 5, 4, 6, 5, 6, 7, 6, 8, 8, -}; - -static static_codebook _huff_book_line_256x7_1sub2 = { - 1, 25, - _huff_lengthlist_line_256x7_1sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_1sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 3, 6, 3, 7, - 3, 8, 5, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, -}; - -static static_codebook _huff_book_line_256x7_1sub3 = { - 1, 64, - _huff_lengthlist_line_256x7_1sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_class0[] = { - 7, 5, 5, 9, 9, 6, 6, 9,12, 8, 7, 8,11, 8, 9,15, - 6, 3, 3, 7, 7, 4, 3, 6, 9, 6, 5, 6, 8, 6, 8,15, - 8, 5, 5, 9, 8, 5, 4, 6,10, 7, 5, 5,11, 8, 7,15, - 14,15,13,13,13,13, 8,11,15,10, 7, 6,11, 9,10,15, -}; - -static static_codebook _huff_book_line_256x7_class0 = { - 1, 64, - _huff_lengthlist_line_256x7_class0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_256x7_class1[] = { - 5, 6, 8,15, 6, 9,10,15,10,11,12,15,15,15,15,15, - 4, 6, 7,15, 6, 7, 8,15, 9, 8, 9,15,15,15,15,15, - 6, 8, 9,15, 7, 7, 8,15,10, 9,10,15,15,15,15,15, - 15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15, - 4, 6, 7,15, 6, 8, 9,15,10,10,12,15,15,15,15,15, - 2, 5, 6,15, 5, 6, 7,15, 8, 6, 7,15,15,15,15,15, - 5, 6, 8,15, 5, 6, 7,15, 9, 6, 7,15,15,15,15,15, - 14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15, - 7, 8, 9,15, 9,10,10,15,15,14,14,15,15,15,15,15, - 5, 6, 7,15, 7, 8, 9,15,12, 9,10,15,15,15,15,15, - 7, 7, 9,15, 7, 7, 8,15,12, 8, 9,15,15,15,15,15, - 13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15, - 15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15, -}; - -static static_codebook _huff_book_line_256x7_class1 = { - 1, 256, - _huff_lengthlist_line_256x7_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_0sub0[] = { - 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 6, 5, 6, 6, 6, 6, 5, 6, 6, 7, 6, 7, 6, 7, 6, - 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7, - 9, 7, 9, 8, 9, 8,10, 8,10, 8,10, 7,10, 6,10, 8, - 10, 8,11, 7,10, 7,11, 8,11,11,12,12,11,11,12,11, - 13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15, - 15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, -}; - -static static_codebook _huff_book_line_512x17_0sub0 = { - 1, 128, - _huff_lengthlist_line_512x17_0sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_1sub0[] = { - 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, -}; - -static static_codebook _huff_book_line_512x17_1sub0 = { - 1, 32, - _huff_lengthlist_line_512x17_1sub0, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 3, 5, 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5, - 6, 5, 7, 5, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7, - 9, 7,11, 9,11,11,12,11,14,12,14,16,14,16,13,16, - 14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13, - 13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, -}; - -static static_codebook _huff_book_line_512x17_1sub1 = { - 1, 128, - _huff_lengthlist_line_512x17_1sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_2sub1[] = { - 0, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 5, 4, 5, 3, - 5, 3, -}; - -static static_codebook _huff_book_line_512x17_2sub1 = { - 1, 18, - _huff_lengthlist_line_512x17_2sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 6, 4, 6, 5, - 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 7, 8, 7, 9, 7, - 9, 8, -}; - -static static_codebook _huff_book_line_512x17_2sub2 = { - 1, 50, - _huff_lengthlist_line_512x17_2sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 7, 7, - 7, 8, 8,11, 8, 9, 9, 9,10,11,11,11, 9,10,10,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, -}; - -static static_codebook _huff_book_line_512x17_2sub3 = { - 1, 128, - _huff_lengthlist_line_512x17_2sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 5, 4, 5, - 5, 5, -}; - -static static_codebook _huff_book_line_512x17_3sub1 = { - 1, 18, - _huff_lengthlist_line_512x17_3sub1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 3, 4, 3, 5, 4, 6, 4, 6, 5, 7, 6, 7, - 6, 8, 6, 8, 7, 9, 8,10, 8,12, 9,13,10,15,10,15, - 11,14, -}; - -static static_codebook _huff_book_line_512x17_3sub2 = { - 1, 50, - _huff_lengthlist_line_512x17_3sub2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 8, 4, 8, 4, 8, 4, 8, 5, 8, 5, 8, 6, 8, - 4, 8, 4, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -}; - -static static_codebook _huff_book_line_512x17_3sub3 = { - 1, 128, - _huff_lengthlist_line_512x17_3sub3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_class1[] = { - 1, 2, 3, 6, 5, 4, 7, 7, -}; - -static static_codebook _huff_book_line_512x17_class1 = { - 1, 8, - _huff_lengthlist_line_512x17_class1, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_class2[] = { - 3, 3, 3,14, 5, 4, 4,11, 8, 6, 6,10,17,12,11,17, - 6, 5, 5,15, 5, 3, 4,11, 8, 5, 5, 8,16, 9,10,14, - 10, 8, 9,17, 8, 6, 6,13,10, 7, 7,10,16,11,13,14, - 17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16, -}; - -static static_codebook _huff_book_line_512x17_class2 = { - 1, 64, - _huff_lengthlist_line_512x17_class2, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist_line_512x17_class3[] = { - 2, 4, 6,17, 4, 5, 7,17, 8, 7,10,17,17,17,17,17, - 3, 4, 6,15, 3, 3, 6,15, 7, 6, 9,17,17,17,17,17, - 6, 8,10,17, 6, 6, 8,16, 9, 8,10,17,17,15,16,17, - 17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16, -}; - -static static_codebook _huff_book_line_512x17_class3 = { - 1, 64, - _huff_lengthlist_line_512x17_class3, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - diff --git a/libvorbis-1.0.1/lib/books/uncoupled/Makefile.in b/libvorbis-1.0.1/lib/books/uncoupled/Makefile.in deleted file mode 100644 index cd5b22a..0000000 --- a/libvorbis-1.0.1/lib/books/uncoupled/Makefile.in +++ /dev/null @@ -1,211 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = res_books_uncoupled.h -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/books/uncoupled/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib/books/uncoupled - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/books/uncoupled/res_books_uncoupled.h b/libvorbis-1.0.1/lib/books/uncoupled/res_books_uncoupled.h deleted file mode 100644 index 61ca837..0000000 --- a/libvorbis-1.0.1/lib/books/uncoupled/res_books_uncoupled.h +++ /dev/null @@ -1,10907 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - last modified: $Id: res_books_uncoupled.h,v 1.2 2002/07/11 10:27:53 xiphmont Exp $ - - ********************************************************************/ - -#include "codebook.h" -static long _vq_quantlist__16u0__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u0__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 8, 5, 8, 8, 8,10,10, 8, - 10,11, 5, 8, 8, 8,10,10, 8,10,10, 4, 9, 9, 9,12, - 11, 8,11,11, 8,12,11,10,12,14,10,13,13, 7,11,11, - 10,14,12,11,14,14, 4, 9, 9, 8,11,11, 9,11,12, 7, - 11,11,10,13,14,10,12,14, 8,11,12,10,14,14,10,13, - 12, -}; - -static float _vq_quantthresh__16u0__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16u0__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p1_0 = { - _vq_quantthresh__16u0__p1_0, - _vq_quantmap__16u0__p1_0, - 3, - 3 -}; - -static static_codebook _16u0__p1_0 = { - 4, 81, - _vq_lengthlist__16u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16u0__p1_0, - NULL, - &_vq_auxt__16u0__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 9, 7, - 8, 9, 5, 7, 7, 7, 9, 8, 7, 9, 7, 4, 7, 7, 7, 9, - 9, 7, 8, 8, 6, 9, 8, 7, 8,11, 9,11,10, 6, 8, 9, - 8,11, 8, 9,10,11, 4, 7, 7, 7, 8, 8, 7, 9, 9, 6, - 9, 8, 9,11,10, 8, 8,11, 6, 8, 9, 9,10,11, 8,11, - 8, -}; - -static float _vq_quantthresh__16u0__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16u0__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p2_0 = { - _vq_quantthresh__16u0__p2_0, - _vq_quantmap__16u0__p2_0, - 3, - 3 -}; - -static static_codebook _16u0__p2_0 = { - 4, 81, - _vq_lengthlist__16u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16u0__p2_0, - NULL, - &_vq_auxt__16u0__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u0__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 8, 8, 6, 7, 8, 8, 8, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 9, 8,10,10, 8,10, - 10,11,11, 8,10,10,11,11,10,11,10,13,12, 9,11,10, - 13,13, 6, 8, 9,10,10, 8,10,10,11,11, 8,10,10,11, - 11, 9,10,11,13,12,10,10,11,12,12, 8,11,11,14,13, - 10,12,11,15,13, 9,12,11,15,14,12,14,13,16,14,12, - 13,13,17,14, 8,11,11,13,14, 9,11,12,14,15,10,11, - 12,13,15,11,13,13,14,16,12,13,14,14,16, 5, 9, 9, - 11,11, 9,11,11,12,12, 8,11,11,12,12,11,12,12,15, - 14,10,12,12,15,15, 8,11,11,13,12,10,12,12,13,13, - 10,12,12,14,13,12,12,13,14,15,11,13,13,17,16, 7, - 11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13, - 12,15,14,11,13,13,15,14, 9,12,12,16,15,11,13,13, - 17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19, - 17, 9,12,12,14,16,11,13,13,15,16,10,13,13,17,16, - 13,14,13,17,15,12,15,15,16,17, 5, 9, 9,11,11, 8, - 11,11,13,12, 9,11,11,12,12,10,12,12,14,15,11,12, - 12,14,14, 7,11,10,13,12,10,12,12,14,13,10,11,12, - 13,13,11,13,13,15,16,12,12,13,15,15, 7,11,11,13, - 13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15, - 12,13,13,15,14, 9,12,12,15,15,10,13,13,17,16,11, - 12,13,15,15,12,15,14,18,18,13,14,14,16,17, 9,12, - 12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15, - 17,17,13,15,14,16,15, 7,11,11,15,16,10,13,12,16, - 17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18, - 8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15, - 17,16,17,19,14,15,15,17,16, 8,12,12,16,15,11,14, - 13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16, - 18,18,11,15,14,18,17,13,14,15,18, 0,12,15,15, 0, - 17,17,16,17,17,18,14,16,18,18, 0,11,14,14,17, 0, - 12,15,14,17,19,12,15,14,18, 0,15,18,16, 0,17,14, - 18,16,18, 0, 7,11,11,16,15,10,12,12,18,16,10,13, - 13,16,15,13,15,14,17,17,14,16,16,19,18, 8,12,12, - 16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19, - 18,15,16,16, 0,19, 8,12,12,16,17,11,13,13,17,17, - 11,14,13,17,17,13,15,15,17,19,15,17,17,19, 0,11, - 14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16, - 17, 0,18,16,16,19,17, 0,11,14,14,18,19,12,15,14, - 17,17,13,16,14,17,16,14,17,16,18,18,15,18,15, 0, - 18, -}; - -static float _vq_quantthresh__16u0__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u0__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p3_0 = { - _vq_quantthresh__16u0__p3_0, - _vq_quantmap__16u0__p3_0, - 5, - 5 -}; - -static static_codebook _16u0__p3_0 = { - 4, 625, - _vq_lengthlist__16u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u0__p3_0, - NULL, - &_vq_auxt__16u0__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u0__p4_0[] = { - 3, 5, 5, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 9, - 10, 9,11,11, 9, 9, 9,11,11, 6, 7, 7,10,10, 7, 7, - 8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, - 11,12, 6, 7, 7,10,10, 7, 8, 7,10,10, 7, 8, 7,10, - 10,10,11,10,12,11,10,10,10,13,10, 9,10,10,12,12, - 10,11,10,14,12, 9,11,11,13,13,11,12,13,13,13,11, - 12,12,15,13, 9,10,10,12,13, 9,11,10,12,13,10,10, - 11,12,13,11,12,12,12,13,11,12,12,13,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,12, - 13,10,10,11,12,12, 6, 8, 8,11,10, 7, 8, 9,10,12, - 8, 9, 9,11,11,11,10,11,11,12,10,11,11,13,12, 7, - 8, 8,10,11, 8, 9, 8,11,10, 8, 9, 9,11,11,10,12, - 10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11, - 13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14, - 14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14, - 12,12,12,14,12,12,13,12,17,15, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,11,10,10,10,11,12,12,10,11, - 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,11,11,11,12,12,10,10,11,12,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,12,12,13,13, - 11,11,10,13,11, 9,11,10,14,13,11,11,11,15,13,10, - 10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11, - 11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13, - 14, 0,12,13,11,13,11, 8,10,10,13,13,10,11,11,14, - 13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14, - 9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13, - 12,14,15,16,13,13,13,14,13, 9,11,11,12,12,10,12, - 11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14, - 17,15,11,12,12,14,14,10,11,12,13,15,12,13,13, 0, - 15,13,11,14,12,16,14,16,14, 0,15,11,12,12,14,16, - 11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15, - 14,14,16,16, 8,10,10,13,13,10,11,10,13,14,10,11, - 11,13,13,13,13,12,14,14,14,13,13,16,17, 9,10,10, - 12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15, - 15,13,13,13,14,14, 9,10,10,13,13,10,11,12,12,14, - 10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11, - 12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14, - 14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14, - 14,17,11,12,11,14,14,13,16,14,16, 0,14,15,11,15, - 11, -}; - -static float _vq_quantthresh__16u0__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u0__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p4_0 = { - _vq_quantthresh__16u0__p4_0, - _vq_quantmap__16u0__p4_0, - 5, - 5 -}; - -static static_codebook _16u0__p4_0 = { - 4, 625, - _vq_lengthlist__16u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u0__p4_0, - NULL, - &_vq_auxt__16u0__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16u0__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, - 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12, - 12, -}; - -static float _vq_quantthresh__16u0__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16u0__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p5_0 = { - _vq_quantthresh__16u0__p5_0, - _vq_quantmap__16u0__p5_0, - 9, - 9 -}; - -static static_codebook _16u0__p5_0 = { - 2, 81, - _vq_lengthlist__16u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16u0__p5_0, - NULL, - &_vq_auxt__16u0__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16u0__p6_0[] = { - 1, 4, 4, 7, 7,10,10,12,12,13,13,18,17, 3, 6, 6, - 9, 9,11,11,13,13,14,14,18,17, 3, 6, 6, 9, 9,11, - 11,13,13,14,14,17,18, 7, 9, 9,11,11,13,13,14,14, - 15,15, 0, 0, 7, 9, 9,11,11,13,13,14,14,15,16,19, - 18,10,11,11,13,13,14,14,16,15,17,18, 0, 0,10,11, - 11,13,13,14,14,15,15,16,18, 0, 0,11,13,13,14,14, - 15,15,17,17, 0,19, 0, 0,11,13,13,14,14,14,15,16, - 18, 0,19, 0, 0,13,14,14,15,15,18,17,18,18, 0,19, - 0, 0,13,14,14,15,16,16,16,18,18,19, 0, 0, 0,16, - 17,17, 0,17,19,19, 0,19, 0, 0, 0, 0,16,19,16,17, - 18, 0,19, 0, 0, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__16u0__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__16u0__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p6_0 = { - _vq_quantthresh__16u0__p6_0, - _vq_quantmap__16u0__p6_0, - 13, - 13 -}; - -static static_codebook _16u0__p6_0 = { - 2, 169, - _vq_lengthlist__16u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__16u0__p6_0, - NULL, - &_vq_auxt__16u0__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u0__p6_1[] = { - 1, 4, 5, 6, 6, 4, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, - 6, 6, 7, 7, 6, 6, 6, 7, 7, -}; - -static float _vq_quantthresh__16u0__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u0__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p6_1 = { - _vq_quantthresh__16u0__p6_1, - _vq_quantmap__16u0__p6_1, - 5, - 5 -}; - -static static_codebook _16u0__p6_1 = { - 2, 25, - _vq_lengthlist__16u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u0__p6_1, - NULL, - &_vq_auxt__16u0__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u0__p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__16u0__p7_0[] = { - -157.5, 157.5, -}; - -static long _vq_quantmap__16u0__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p7_0 = { - _vq_quantthresh__16u0__p7_0, - _vq_quantmap__16u0__p7_0, - 3, - 3 -}; - -static static_codebook _16u0__p7_0 = { - 4, 81, - _vq_lengthlist__16u0__p7_0, - 1, -518803456, 1628680192, 2, 0, - _vq_quantlist__16u0__p7_0, - NULL, - &_vq_auxt__16u0__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16u0__p7_1[] = { - 1, 5, 5, 6, 5, 9,10,11,11,10,10,10,10,10,10, 5, - 8, 8, 8,10,10,10,10,10,10,10,10,10,10,10, 5, 8, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10, 5,10, 8, - 10,10,10,10,10,10,10,10,10,10,10,10, 4, 8, 9,10, - 10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__16u0__p7_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__16u0__p7_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p7_1 = { - _vq_quantthresh__16u0__p7_1, - _vq_quantmap__16u0__p7_1, - 15, - 15 -}; - -static static_codebook _16u0__p7_1 = { - 2, 225, - _vq_lengthlist__16u0__p7_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__16u0__p7_1, - NULL, - &_vq_auxt__16u0__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u0__p7_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__16u0__p7_2[] = { - 1, 6, 6, 7, 8, 7, 7,10, 9,10, 9,11,10, 9,11,10, - 9, 9, 9, 9,10, 6, 8, 7, 9, 9, 8, 8,10,10, 9,11, - 11,12,12,10, 9,11, 9,12,10, 9, 6, 9, 8, 9,12, 8, - 8,11, 9,11,11,12,11,12,12,10,11,11,10,10,11, 7, - 10, 9, 9, 9, 9, 9,10, 9,10, 9,10,10,12,10,10,10, - 11,12,10,10, 7, 9, 9, 9,10, 9, 9,10,10, 9, 9, 9, - 11,11,10,10,10,10, 9, 9,12, 7, 9,10, 9,11, 9,10, - 9,10,11,11,11,10,11,12, 9,12,11,10,10,10, 7, 9, - 9, 9, 9,10,12,10, 9,11,12,10,11,12,12,11, 9,10, - 11,10,11, 7, 9,10,10,11,10, 9,10,11,11,11,10,12, - 12,12,11,11,10,11,11,12, 8, 9,10,12,11,10,10,12, - 12,12,12,12,10,11,11, 9,11,10,12,11,11, 8, 9,10, - 10,11,12,11,11,10,10,10,12,12,12, 9,10,12,12,12, - 12,12, 8,10,11,10,10,12, 9,11,12,12,11,12,12,12, - 12,10,12,10,10,10,10, 8,12,11,11,11,10,10,11,12, - 12,12,12,11,12,12,12,11,11,11,12,10, 9,10,10,12, - 10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12, - 11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12, - 12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12, - 12,12,12,11,12,11,10,11,11,12,11,11, 9,10,10,10, - 12,10,10,11, 9,11,12,11,12,11,12,12,10,11,10,12, - 9, 9, 9,12,11,10,11,10,12,10,12,10,12,12,12,11, - 11,11,11,11,10, 9,10,10,11,10,11,11,12,11,10,11, - 12,12,12,11,11, 9,12,10,12, 9,10,12,10,10,11,10, - 11,11,12,11,10,11,10,11,11,11,11,12,11,11,10, 9, - 10,10,10, 9,11,11,10, 9,12,10,11,12,11,12,12,11, - 12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11, - 10,10,12,11,10,11,11,11,10, -}; - -static float _vq_quantthresh__16u0__p7_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__16u0__p7_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__16u0__p7_2 = { - _vq_quantthresh__16u0__p7_2, - _vq_quantmap__16u0__p7_2, - 21, - 21 -}; - -static static_codebook _16u0__p7_2 = { - 2, 441, - _vq_lengthlist__16u0__p7_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__16u0__p7_2, - NULL, - &_vq_auxt__16u0__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__16u0__single[] = { - 3, 5, 8, 7,14, 8, 9,19, 5, 2, 5, 5, 9, 6, 9,19, - 8, 4, 5, 7, 8, 9,13,19, 7, 4, 6, 5, 9, 6, 9,19, - 12, 8, 7, 9,10,11,13,19, 8, 5, 8, 6, 9, 6, 7,19, - 8, 8,10, 7, 7, 4, 5,19,12,17,19,15,18,13,11,18, -}; - -static static_codebook _huff_book__16u0__single = { - 2, 64, - _huff_lengthlist__16u0__single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__16u1__long[] = { - 3, 6,10, 8,12, 8,14, 8,14,19, 5, 3, 5, 5, 7, 6, - 11, 7,16,19, 7, 5, 6, 7, 7, 9,11,12,19,19, 6, 4, - 7, 5, 7, 6,10, 7,18,18, 8, 6, 7, 7, 7, 7, 8, 9, - 18,18, 7, 5, 8, 5, 7, 5, 8, 6,18,18,12, 9,10, 9, - 9, 9, 8, 9,18,18, 8, 7,10, 6, 8, 5, 6, 4,11,18, - 11,15,16,12,11, 8, 8, 6, 9,18,14,18,18,18,16,16, - 16,13,16,18, -}; - -static static_codebook _huff_book__16u1__long = { - 2, 100, - _huff_lengthlist__16u1__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u1__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7,10,10, 7, - 9,10, 5, 7, 8, 7,10, 9, 7,10,10, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10,10,11,12,10,12,13, 7,10,10, - 9,13,11,10,12,13, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10,10,12,12, 9,11,12, 7,10,11,10,12,12,10,13, - 11, -}; - -static float _vq_quantthresh__16u1__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16u1__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p1_0 = { - _vq_quantthresh__16u1__p1_0, - _vq_quantmap__16u1__p1_0, - 3, - 3 -}; - -static static_codebook _16u1__p1_0 = { - 4, 81, - _vq_lengthlist__16u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16u1__p1_0, - NULL, - &_vq_auxt__16u1__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u1__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 7, 7,10, 8, 9, 9, 6, 8, 8, - 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 7,10, - 8, -}; - -static float _vq_quantthresh__16u1__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16u1__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p2_0 = { - _vq_quantthresh__16u1__p2_0, - _vq_quantmap__16u1__p2_0, - 3, - 3 -}; - -static static_codebook _16u1__p2_0 = { - 4, 81, - _vq_lengthlist__16u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16u1__p2_0, - NULL, - &_vq_auxt__16u1__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u1__p3_0[] = { - 1, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, - 10, 9,11,11, 9, 9,10,11,11, 6, 8, 8,10,10, 8, 9, - 10,11,11, 8, 9,10,11,11,10,11,11,12,13,10,11,11, - 13,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, - 11,10,11,11,13,13,10,11,11,13,12, 9,11,11,14,13, - 10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12, - 13,13,16,14, 9,11,11,13,14,10,11,12,14,14,10,12, - 12,14,15,12,13,13,14,15,12,13,14,15,16, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, - 14,11,12,12,14,14, 8,10,10,12,12, 9,11,12,12,13, - 10,12,12,13,13,12,12,13,14,15,11,13,13,15,15, 7, - 10,10,12,12, 9,12,11,13,12,10,11,12,13,13,12,13, - 12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13, - 16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17, - 17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16, - 13,15,13,16,15,13,15,15,16,17, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, - 12,14,14, 7,10,10,12,12,10,12,12,14,13, 9,11,12, - 12,13,12,13,13,15,15,12,12,13,13,15, 7,10,10,12, - 13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15, - 12,13,12,15,14, 9,12,12,15,14,11,13,13,15,15,11, - 12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12, - 12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15, - 17,18,14,15,13,16,15, 8,11,11,15,14,10,12,12,16, - 15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18, - 9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15, - 15,15,17,18,14,15,16,17,17, 9,12,12,15,15,11,14, - 13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15, - 17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17, - 17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17, - 13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15, - 17,16,19,18, 8,11,11,14,15,10,12,12,15,15,10,12, - 12,16,16,13,14,14,17,16,14,15,15,17,17, 9,12,12, - 15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20, - 17,14,16,16,17,17, 9,12,12,15,16,11,13,13,16,17, - 11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11, - 14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16, - 16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14, - 17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18, - 16, -}; - -static float _vq_quantthresh__16u1__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u1__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p3_0 = { - _vq_quantthresh__16u1__p3_0, - _vq_quantmap__16u1__p3_0, - 5, - 5 -}; - -static static_codebook _16u1__p3_0 = { - 4, 625, - _vq_lengthlist__16u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u1__p3_0, - NULL, - &_vq_auxt__16u1__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u1__p4_0[] = { - 4, 5, 5, 8, 8, 6, 6, 7, 9, 9, 6, 6, 6, 9, 9, 9, - 10, 9,11,11, 9, 9,10,11,11, 6, 7, 7,10, 9, 7, 7, - 8, 9,10, 7, 7, 8,10,10,10,10,10,10,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 7,10, - 10, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, - 10,10,10,12,12, 9,10,10,12,12,12,11,12,13,13,11, - 11,12,12,13, 9,10,10,11,12, 9,10,10,12,12,10,10, - 10,12,12,11,12,11,14,13,11,12,12,14,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 7,10,10,10,10,10,12, - 12,10,10,10,12,12, 6, 8, 7,10,10, 7, 7, 9,10,11, - 8, 9, 9,11,10,10,10,11,11,13,10,10,11,12,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,10,11,10,11, - 10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10, - 12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14, - 14, 9,10,10,12,13,10,11,10,13,12,10,11,11,12,13, - 11,12,11,14,12,12,13,13,15,14, 5, 7, 7,10,10, 7, - 7, 8,10,10, 7, 8, 8,10,10,10,10,10,11,12,10,10, - 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,11,11,12,12,10,10,11,11,13, 7, 7, 8,10, - 10, 8, 8, 9,10,11, 7, 9, 7,11,10,10,11,11,13,12, - 11,11,10,13,11, 9,10,10,12,12,10,11,11,13,12,10, - 10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10, - 11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13, - 15,14,12,13,10,14,11, 8,10,10,12,12,10,11,10,13, - 13, 9,10,10,12,12,12,13,13,15,14,11,12,12,13,13, - 9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12, - 12,13,14,15,12,13,12,15,13, 9,10,10,12,13,10,11, - 10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13, - 14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15, - 14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14, - 11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14, - 14,14,15,15, 8,10,10,12,12, 9,10,10,12,12,10,10, - 11,13,13,11,12,12,13,13,12,13,13,14,15, 9,10,10, - 13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15, - 14,12,12,13,13,16, 9, 9,10,12,13,10,10,11,12,13, - 10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11, - 12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14, - 14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13, - 14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15, - 11, -}; - -static float _vq_quantthresh__16u1__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u1__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p4_0 = { - _vq_quantthresh__16u1__p4_0, - _vq_quantmap__16u1__p4_0, - 5, - 5 -}; - -static static_codebook _16u1__p4_0 = { - 4, 625, - _vq_lengthlist__16u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u1__p4_0, - NULL, - &_vq_auxt__16u1__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16u1__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, - 10, 9,11,11,12,11, 7, 8, 8, 9, 9,11,11,12,12, 9, - 10,10,11,11,12,12,13,12, 9,10,10,11,11,12,12,12, - 13, -}; - -static float _vq_quantthresh__16u1__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16u1__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p5_0 = { - _vq_quantthresh__16u1__p5_0, - _vq_quantmap__16u1__p5_0, - 9, - 9 -}; - -static static_codebook _16u1__p5_0 = { - 2, 81, - _vq_lengthlist__16u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16u1__p5_0, - NULL, - &_vq_auxt__16u1__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16u1__p6_0[] = { - 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 4, 6, 6, 8, 8, - 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, - 8, 8,10, 9, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 8, 7, - 8, 8, 9, 9,10,10, 7, 8, 8, 8, 8, 9, 9,10,10, 9, - 9, 9,10,10,10,10,11,11, 9, 9, 9,10,10,10,10,11, - 11, -}; - -static float _vq_quantthresh__16u1__p6_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16u1__p6_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p6_0 = { - _vq_quantthresh__16u1__p6_0, - _vq_quantmap__16u1__p6_0, - 9, - 9 -}; - -static static_codebook _16u1__p6_0 = { - 2, 81, - _vq_lengthlist__16u1__p6_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16u1__p6_0, - NULL, - &_vq_auxt__16u1__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u1__p7_0[] = { - 1, 4, 4, 4, 8, 8, 4, 8, 8, 5,11, 9, 8,12,11, 8, - 12,11, 5,10,11, 8,11,12, 8,11,12, 4,11,11,11,14, - 13,10,13,13, 8,14,13,12,14,16,12,16,15, 8,14,14, - 13,16,14,12,15,16, 4,11,11,10,14,13,11,14,14, 8, - 15,14,12,15,15,12,14,16, 8,14,14,11,16,15,12,15, - 13, -}; - -static float _vq_quantthresh__16u1__p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__16u1__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p7_0 = { - _vq_quantthresh__16u1__p7_0, - _vq_quantmap__16u1__p7_0, - 3, - 3 -}; - -static static_codebook _16u1__p7_0 = { - 4, 81, - _vq_lengthlist__16u1__p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__16u1__p7_0, - NULL, - &_vq_auxt__16u1__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16u1__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 5, 7, 7, - 8, 8, 8, 8, 8, 8, 4, 5, 6, 7, 7, 8, 8, 8, 8, 8, - 8, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 9, 9,10, - 9,10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, 9, 8, 8, 8, - 9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9,10, - 10,10,10, 8, 8, 8, 9, 9, 9,10,10,10,10,10, 8, 8, - 8, 9, 9,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__16u1__p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16u1__p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p7_1 = { - _vq_quantthresh__16u1__p7_1, - _vq_quantmap__16u1__p7_1, - 11, - 11 -}; - -static static_codebook _16u1__p7_1 = { - 2, 121, - _vq_lengthlist__16u1__p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16u1__p7_1, - NULL, - &_vq_auxt__16u1__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16u1__p8_0[] = { - 1, 4, 4, 5, 5, 8, 8,10,10,12,12, 4, 7, 7, 8, 8, - 9, 9,12,11,14,13, 4, 7, 7, 7, 8, 9,10,11,11,13, - 12, 5, 8, 8, 9, 9,11,11,12,13,15,14, 5, 7, 8, 9, - 9,11,11,13,13,17,15, 8, 9,10,11,11,12,13,17,14, - 17,16, 8,10, 9,11,11,12,12,13,15,15,17,10,11,11, - 12,13,14,15,15,16,16,17, 9,11,11,12,12,14,15,17, - 15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13, - 13,14,14,15,15,16,16,15,16, -}; - -static float _vq_quantthresh__16u1__p8_0[] = { - -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, 27.5, - 38.5, 49.5, -}; - -static long _vq_quantmap__16u1__p8_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p8_0 = { - _vq_quantthresh__16u1__p8_0, - _vq_quantmap__16u1__p8_0, - 11, - 11 -}; - -static static_codebook _16u1__p8_0 = { - 2, 121, - _vq_lengthlist__16u1__p8_0, - 1, -524582912, 1618345984, 4, 0, - _vq_quantlist__16u1__p8_0, - NULL, - &_vq_auxt__16u1__p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16u1__p8_1[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, - 8, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__16u1__p8_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16u1__p8_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p8_1 = { - _vq_quantthresh__16u1__p8_1, - _vq_quantmap__16u1__p8_1, - 11, - 11 -}; - -static static_codebook _16u1__p8_1 = { - 2, 121, - _vq_lengthlist__16u1__p8_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16u1__p8_1, - NULL, - &_vq_auxt__16u1__p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16u1__p9_0[] = { - 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static float _vq_quantthresh__16u1__p9_0[] = { - -1657.5, -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, - 382.5, 637.5, 892.5, 1147.5, 1402.5, 1657.5, -}; - -static long _vq_quantmap__16u1__p9_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p9_0 = { - _vq_quantthresh__16u1__p9_0, - _vq_quantmap__16u1__p9_0, - 15, - 15 -}; - -static static_codebook _16u1__p9_0 = { - 2, 225, - _vq_lengthlist__16u1__p9_0, - 1, -514071552, 1627381760, 4, 0, - _vq_quantlist__16u1__p9_0, - NULL, - &_vq_auxt__16u1__p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16u1__p9_1[] = { - 1, 6, 5, 9, 9,10,10, 6, 7, 9, 9,10,10,10,10, 5, - 10, 8,10, 8,10,10, 8, 8,10, 9,10,10,10,10, 5, 8, - 9,10,10,10,10, 8,10,10,10,10,10,10,10, 9,10,10, - 10,10,10,10, 9, 9,10,10,10,10,10,10, 9, 9, 8, 9, - 10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 8,10,10,10,10, - 10,10,10,10,10,10,10,10,10, 6, 8, 8,10,10,10, 8, - 10,10,10,10,10,10,10,10, 5, 8, 8,10,10,10, 9, 9, - 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__16u1__p9_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__16u1__p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p9_1 = { - _vq_quantthresh__16u1__p9_1, - _vq_quantmap__16u1__p9_1, - 15, - 15 -}; - -static static_codebook _16u1__p9_1 = { - 2, 225, - _vq_lengthlist__16u1__p9_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__16u1__p9_1, - NULL, - &_vq_auxt__16u1__p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u1__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16u1__p9_2[] = { - 1, 6, 6, 7, 8, 8,11,10, 9, 9,11, 9,10, 9,11,11, - 9, 6, 7, 6,11, 8,11, 9,10,10,11, 9,11,10,10,10, - 11, 9, 5, 7, 7, 8, 8,10,11, 8, 8,11, 9, 9,10,11, - 9,10,11, 8, 9, 6, 8, 8, 9, 9,10,10,11,11,11, 9, - 11,10, 9,11, 8, 8, 8, 9, 8, 9,10,11, 9, 9,11,11, - 10, 9, 9,11,10, 8,11, 8, 9, 8,11, 9,10, 9,10,11, - 11,10,10, 9,10,10, 8, 8, 9,10,10,10, 9,11, 9,10, - 11,11,11,11,10, 9,11, 9, 9,11,11,10, 8,11,11,11, - 9,10,10,11,10,11,11, 9,11,10, 9,11,10,10,10,10, - 9,11,10,11,10, 9, 9,10,11, 9, 8,10,11,11,10,10, - 11, 9,11,10,11,11,10,11, 9, 9, 8,10, 8, 9,11, 9, - 8,10,10, 9,11,10,11,10,11, 9,11, 8,10,11,11,11, - 11,10,10,11,11,11,11,10,11,11,10, 9, 8,10,10, 9, - 11,10,11,11,11, 9, 9, 9,11,11,11,10,10, 9, 9,10, - 9,11,11,11,11, 8,10,11,10,11,11,10,11,11, 9, 9, - 9,10, 9,11, 9,11,11,11,11,11,10,11,11,10,11,10, - 11,11, 9,11,10,11,10, 9,10, 9,10,10,11,11,11,11, - 9,10, 9,10,11,11,10,11,11,11,11,11,11,10,11,11, - 10, -}; - -static float _vq_quantthresh__16u1__p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__16u1__p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16u1__p9_2 = { - _vq_quantthresh__16u1__p9_2, - _vq_quantmap__16u1__p9_2, - 17, - 17 -}; - -static static_codebook _16u1__p9_2 = { - 2, 289, - _vq_lengthlist__16u1__p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__16u1__p9_2, - NULL, - &_vq_auxt__16u1__p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__16u1__short[] = { - 5, 7,10, 9,11,10,15,11,13,16, 6, 4, 6, 6, 7, 7, - 10, 9,12,16,10, 6, 5, 6, 6, 7,10,11,16,16, 9, 6, - 7, 6, 7, 7,10, 8,14,16,11, 6, 5, 4, 5, 6, 8, 9, - 15,16, 9, 6, 6, 5, 6, 6, 9, 8,14,16,12, 7, 6, 6, - 5, 6, 6, 7,13,16, 8, 6, 7, 6, 5, 5, 4, 4,11,16, - 9, 8, 9, 9, 7, 7, 6, 5,13,16,14,14,16,15,16,15, - 16,16,16,16, -}; - -static static_codebook _huff_book__16u1__short = { - 2, 100, - _huff_lengthlist__16u1__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__16u2__long[] = { - 5, 7,10,10,10,11,11,13,18,19, 6, 5, 5, 6, 7, 8, - 9,12,19,19, 8, 5, 4, 4, 6, 7, 9,13,19,19, 8, 5, - 4, 4, 5, 6, 8,12,17,19, 7, 5, 5, 4, 4, 5, 7,12, - 18,18, 8, 7, 7, 6, 5, 5, 6,10,18,18, 9, 9, 9, 8, - 6, 5, 6, 9,18,18,11,13,13,13, 8, 7, 7, 9,16,18, - 13,17,18,16,11, 9, 9, 9,17,18,15,18,18,18,15,13, - 13,14,18,18, -}; - -static static_codebook _huff_book__16u2__long = { - 2, 100, - _huff_lengthlist__16u2__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__16u2__short[] = { - 8,11,12,12,14,15,16,16,16,16, 9, 7, 7, 8, 9,11, - 13,14,16,16,13, 7, 6, 6, 7, 9,12,13,15,16,15, 7, - 6, 5, 4, 6,10,11,14,16,12, 8, 7, 4, 2, 4, 7,10, - 14,16,11, 9, 7, 5, 3, 4, 6, 9,14,16,11,10, 9, 7, - 5, 5, 6, 9,16,16,10,10, 9, 8, 6, 6, 7,10,16,16, - 11,11,11,10,10,10,11,14,16,16,16,14,14,13,14,16, - 16,16,16,16, -}; - -static static_codebook _huff_book__16u2__short = { - 2, 100, - _huff_lengthlist__16u2__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u2_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 8, 9, - 9, 7, 9, 9, 7, 9, 9, 9,10,10, 9,10,10, 7, 9, 9, - 9,10,10, 9,10,11, 5, 7, 8, 8, 9, 9, 8, 9, 9, 7, - 9, 9, 9,10,10, 9, 9,10, 7, 9, 9, 9,10,10, 9,11, - 10, -}; - -static float _vq_quantthresh__16u2_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__16u2_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p1_0 = { - _vq_quantthresh__16u2_p1_0, - _vq_quantmap__16u2_p1_0, - 3, - 3 -}; - -static static_codebook _16u2_p1_0 = { - 4, 81, - _vq_lengthlist__16u2_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__16u2_p1_0, - NULL, - &_vq_auxt__16u2_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u2_p2_0[] = { - 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, - 10, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 8, 8,10,10,10,10,10,12,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10, - 10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,12,12, - 10,11,10,13,12, 9,10,10,12,12,12,12,12,14,14,11, - 12,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10, - 10,12,12,11,12,12,14,13,12,13,12,14,14, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,12, - 12,10,10,11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, - 8, 9, 9,11,11,11,11,11,12,13,10,11,11,12,13, 7, - 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,12,10,11,11,13,13, 9,11,10,13,13,10,11,11, - 13,13,10,11,11,13,13,12,12,13,13,15,12,12,13,14, - 15, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, - 11,13,11,14,13,12,13,13,15,15, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, - 11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, - 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, - 11, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,12, - 11,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, - 10,11,12,13,12,13,13,15,14,11,11,13,12,14,10,10, - 11,13,13,10,11,11,13,13,10,11,11,13,13,12,13,13, - 14,14,12,13,12,14,13, 8,10, 9,12,12, 9,11,10,13, - 13, 9,10,10,12,13,12,13,13,14,14,12,12,13,14,14, - 9,11,10,13,13,10,11,11,13,13,10,11,11,13,13,12, - 13,13,15,15,13,13,13,14,15, 9,10,10,12,13,10,11, - 10,13,12,10,11,11,13,13,12,13,12,15,14,13,13,13, - 14,15,11,12,12,15,14,12,12,13,15,15,12,13,13,15, - 14,14,13,15,14,16,13,14,15,16,16,11,12,12,14,14, - 11,12,12,15,14,12,13,13,15,15,13,14,13,16,14,14, - 14,14,16,16, 8, 9, 9,12,12, 9,10,10,13,12, 9,10, - 10,13,13,12,12,12,14,14,12,12,13,15,15, 9,10,10, - 13,12,10,11,11,13,13,10,10,11,13,14,12,13,13,15, - 15,12,12,13,14,15, 9,10,10,13,13,10,11,11,13,13, - 10,11,11,13,13,12,13,13,14,14,13,14,13,15,14,11, - 12,12,14,14,12,13,13,15,14,11,12,12,14,15,14,14, - 14,16,15,13,12,14,14,16,11,12,13,14,15,12,13,13, - 14,16,12,13,12,15,14,13,15,14,16,16,14,15,13,16, - 13, -}; - -static float _vq_quantthresh__16u2_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u2_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p2_0 = { - _vq_quantthresh__16u2_p2_0, - _vq_quantmap__16u2_p2_0, - 5, - 5 -}; - -static static_codebook _16u2_p2_0 = { - 4, 625, - _vq_lengthlist__16u2_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u2_p2_0, - NULL, - &_vq_auxt__16u2_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__16u2_p3_0[] = { - 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 8, 7, - 9, 9, 4, 5, 5, 6, 6, 7, 8, 9, 9, 6, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 8, 7, - 8, 8, 9, 9,10,10, 7, 8, 8, 8, 8, 9, 9,10,10, 9, - 9, 9,10, 9,10,10,11,11, 9, 9, 9,10,10,10,10,11, - 11, -}; - -static float _vq_quantthresh__16u2_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__16u2_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p3_0 = { - _vq_quantthresh__16u2_p3_0, - _vq_quantmap__16u2_p3_0, - 9, - 9 -}; - -static static_codebook _16u2_p3_0 = { - 2, 81, - _vq_lengthlist__16u2_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__16u2_p3_0, - NULL, - &_vq_auxt__16u2_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__16u2_p4_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,11, - 11, 5, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,11, 5, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12,12,12, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,12,12,12, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,11,11,12,12,13,13, 8, 9, 9, 9, 9,10, 9,10, - 10,10,10,11,11,12,12,13,13, 9, 9, 9, 9, 9,10,10, - 10,10,11,11,11,12,12,12,13,13, 9, 9, 9, 9, 9,10, - 10,10,10,11,11,12,11,12,12,13,13,10,10,10,10,10, - 11,11,11,11,11,12,12,12,12,13,13,14,10,10,10,10, - 10,11,11,11,11,12,11,12,12,13,12,13,13,11,11,11, - 11,11,12,12,12,12,12,12,13,13,13,13,14,14,11,11, - 11,11,11,12,12,12,12,12,12,13,12,13,13,14,14,11, - 12,12,12,12,12,12,13,13,13,13,13,13,14,14,14,14, - 11,12,12,12,12,12,12,13,13,13,13,14,13,14,14,14, - 14, -}; - -static float _vq_quantthresh__16u2_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__16u2_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p4_0 = { - _vq_quantthresh__16u2_p4_0, - _vq_quantmap__16u2_p4_0, - 17, - 17 -}; - -static static_codebook _16u2_p4_0 = { - 2, 289, - _vq_lengthlist__16u2_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__16u2_p4_0, - NULL, - &_vq_auxt__16u2_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__16u2_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 7,10, 9, 7, - 10, 9, 5, 8, 9, 7, 9,10, 7, 9,10, 4, 9, 9, 9,11, - 11, 8,11,11, 7,11,11,10,10,13,10,14,13, 7,11,11, - 10,13,11,10,13,14, 5, 9, 9, 8,11,11, 9,11,11, 7, - 11,11,10,14,13,10,12,14, 7,11,11,10,13,13,10,13, - 10, -}; - -static float _vq_quantthresh__16u2_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__16u2_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p5_0 = { - _vq_quantthresh__16u2_p5_0, - _vq_quantmap__16u2_p5_0, - 3, - 3 -}; - -static static_codebook _16u2_p5_0 = { - 4, 81, - _vq_lengthlist__16u2_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__16u2_p5_0, - NULL, - &_vq_auxt__16u2_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16u2_p5_1[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 5, 5, 5, 7, 7, - 7, 7, 8, 8, 8, 8, 5, 5, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__16u2_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16u2_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p5_1 = { - _vq_quantthresh__16u2_p5_1, - _vq_quantmap__16u2_p5_1, - 11, - 11 -}; - -static static_codebook _16u2_p5_1 = { - 2, 121, - _vq_lengthlist__16u2_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16u2_p5_1, - NULL, - &_vq_auxt__16u2_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16u2_p6_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, - 8, 8, 9, 9, 9, 9,10,10,12,11, 4, 6, 6, 8, 8, 9, - 9, 9, 9,10,10,11,12, 7, 8, 8, 9, 9,10,10,10,10, - 12,12,13,12, 7, 8, 8, 9, 9,10,10,10,10,11,12,12, - 12, 8, 9, 9,10,10,11,11,11,11,12,12,13,13, 8, 9, - 9,10,10,11,11,11,11,12,13,13,13, 8, 9, 9,10,10, - 11,11,12,12,13,13,14,14, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14, 9,10,10,11,12,13,12,13,14,14,14, - 14,14, 9,10,10,11,12,12,13,13,13,14,14,14,14,10, - 11,11,12,12,13,13,14,14,15,15,15,15,10,11,11,12, - 12,13,13,14,14,14,14,15,15, -}; - -static float _vq_quantthresh__16u2_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__16u2_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p6_0 = { - _vq_quantthresh__16u2_p6_0, - _vq_quantmap__16u2_p6_0, - 13, - 13 -}; - -static static_codebook _16u2_p6_0 = { - 2, 169, - _vq_lengthlist__16u2_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__16u2_p6_0, - NULL, - &_vq_auxt__16u2_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__16u2_p6_1[] = { - 2, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 6, 6, 5, 5, 5, 6, 6, -}; - -static float _vq_quantthresh__16u2_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__16u2_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p6_1 = { - _vq_quantthresh__16u2_p6_1, - _vq_quantmap__16u2_p6_1, - 5, - 5 -}; - -static static_codebook _16u2_p6_1 = { - 2, 25, - _vq_lengthlist__16u2_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__16u2_p6_1, - NULL, - &_vq_auxt__16u2_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__16u2_p7_0[] = { - 1, 4, 4, 7, 7, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 6, - 9, 9, 9, 9, 9, 9,10,10,11,11, 4, 6, 6, 8, 9, 9, - 9, 9, 9,10,11,12,11, 7, 8, 9,10,10,10,10,11,10, - 11,12,12,13, 7, 9, 9,10,10,10,10,10,10,11,12,13, - 13, 7, 9, 8,10,10,11,11,11,12,12,13,13,14, 7, 9, - 9,10,10,11,11,11,12,13,13,13,13, 8, 9, 9,10,11, - 11,12,12,12,13,13,13,13, 8, 9, 9,10,11,11,11,12, - 12,13,13,14,14, 9,10,10,12,11,12,13,13,13,14,13, - 13,13, 9,10,10,11,11,12,12,13,14,13,13,14,13,10, - 11,11,12,13,14,14,14,15,14,14,14,14,10,11,11,12, - 12,13,13,13,14,14,14,15,14, -}; - -static float _vq_quantthresh__16u2_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__16u2_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p7_0 = { - _vq_quantthresh__16u2_p7_0, - _vq_quantmap__16u2_p7_0, - 13, - 13 -}; - -static static_codebook _16u2_p7_0 = { - 2, 169, - _vq_lengthlist__16u2_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__16u2_p7_0, - NULL, - &_vq_auxt__16u2_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__16u2_p7_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, - 7, 7, 7, 7, 8, 8, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, - 8, 6, 6, 7, 7, 7, 8, 7, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__16u2_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__16u2_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p7_1 = { - _vq_quantthresh__16u2_p7_1, - _vq_quantmap__16u2_p7_1, - 11, - 11 -}; - -static static_codebook _16u2_p7_1 = { - 2, 121, - _vq_lengthlist__16u2_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__16u2_p7_1, - NULL, - &_vq_auxt__16u2_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__16u2_p8_0[] = { - 1, 5, 5, 7, 7, 8, 8, 7, 7, 8, 8,10, 9,11,11, 4, - 6, 6, 8, 8,10, 9, 9, 8, 9, 9,10,10,12,14, 4, 6, - 7, 8, 9, 9,10, 9, 8, 9, 9,10,12,12,11, 7, 8, 8, - 10,10,10,10, 9, 9,10,10,11,13,13,12, 7, 8, 8, 9, - 11,11,10, 9, 9,11,10,12,11,11,14, 8, 9, 9,11,10, - 11,11,10,10,11,11,13,12,14,12, 8, 9, 9,11,12,11, - 11,10,10,12,11,12,12,12,14, 7, 8, 8, 9, 9,10,10, - 10,11,12,11,13,13,14,12, 7, 8, 9, 9, 9,10,10,11, - 11,11,12,12,14,14,14, 8,10, 9,10,11,11,11,11,14, - 12,12,13,14,14,13, 9, 9, 9,10,11,11,11,12,12,12, - 14,12,14,13,14,10,10,10,12,11,12,11,14,13,14,13, - 14,14,13,14, 9,10,10,11,12,11,13,12,13,13,14,14, - 14,13,14,10,13,13,12,12,11,12,14,13,14,13,14,12, - 14,13,10,11,11,12,11,12,12,14,14,14,13,14,14,14, - 14, -}; - -static float _vq_quantthresh__16u2_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__16u2_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p8_0 = { - _vq_quantthresh__16u2_p8_0, - _vq_quantmap__16u2_p8_0, - 15, - 15 -}; - -static static_codebook _16u2_p8_0 = { - 2, 225, - _vq_lengthlist__16u2_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__16u2_p8_0, - NULL, - &_vq_auxt__16u2_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__16u2_p8_1[] = { - 2, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10, 9,10, 9, 9, - 9,10,10,10,10, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, - 10, 9,10,10,10,10,10,10,11,10, 5, 6, 6, 7, 7, 8, - 8, 8, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 7, - 7, 7, 8, 8, 9, 8, 9, 9,10, 9,10,10,10,10,10,10, - 11,10,11,10, 7, 7, 7, 8, 8, 8, 9, 9, 9,10, 9,10, - 10,10,10,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, - 10, 9,10,10,10,10,10,10,10,11,10,10,11,10, 8, 8, - 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11, - 11,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 11,10,11,10,11,10,11,10, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,11,11,10,10,10, 9,10, 9, - 9,10,10,10,11,10,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9,10, 9,10,10,10,10,10,10,11,10,11, - 10,11,11,11,11,10,10, 9,10, 9,10,10,10,10,11,10, - 10,10,10,10,11,10,11,10,11,10,10,11, 9,10,10,10, - 10,10,10,10,10,10,11,10,10,11,11,10,11,11,11,11, - 11, 9, 9,10,10,10,10,10,11,10,10,11,10,10,11,10, - 10,11,11,11,11,11, 9,10,10,10,10,10,10,10,11,10, - 11,10,11,10,11,11,11,11,11,10,11,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,10,11,11, - 10,10,10,10,10,11,10,10,10,11,10,11,11,11,11,10, - 12,11,11,11,10,10,10,10,10,10,11,10,10,10,11,11, - 12,11,11,11,11,11,11,11,11,11,10,10,10,11,10,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, - 10,10,11,10,11,10,10,11,11,11,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,11,11,10,11,11,10, - 11,11,10,11,11,11,10,11,11, -}; - -static float _vq_quantthresh__16u2_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__16u2_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p8_1 = { - _vq_quantthresh__16u2_p8_1, - _vq_quantmap__16u2_p8_1, - 21, - 21 -}; - -static static_codebook _16u2_p8_1 = { - 2, 441, - _vq_lengthlist__16u2_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__16u2_p8_1, - NULL, - &_vq_auxt__16u2_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p9_0[] = { - 5586, - 4655, - 6517, - 3724, - 7448, - 2793, - 8379, - 1862, - 9310, - 931, - 10241, - 0, - 11172, - 5521, - 5651, -}; - -static long _vq_lengthlist__16u2_p9_0[] = { - 1,10,10,10,10,10,10,10,10,10,10,10,10, 5, 4,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, 4,10,10,10,10,10,10,10,10,10,10,10,10, - 6, 6, 5,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 5, - 5, -}; - -static float _vq_quantthresh__16u2_p9_0[] = { - -5120.5, -4189.5, -3258.5, -2327.5, -1396.5, -498, -32.5, 32.5, - 498, 1396.5, 2327.5, 3258.5, 4189.5, 5120.5, -}; - -static long _vq_quantmap__16u2_p9_0[] = { - 11, 9, 7, 5, 3, 1, 13, 0, - 14, 2, 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p9_0 = { - _vq_quantthresh__16u2_p9_0, - _vq_quantmap__16u2_p9_0, - 15, - 15 -}; - -static static_codebook _16u2_p9_0 = { - 2, 225, - _vq_lengthlist__16u2_p9_0, - 1, -510275072, 1611661312, 14, 0, - _vq_quantlist__16u2_p9_0, - NULL, - &_vq_auxt__16u2_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p9_1[] = { - 392, - 343, - 441, - 294, - 490, - 245, - 539, - 196, - 588, - 147, - 637, - 98, - 686, - 49, - 735, - 0, - 784, - 388, - 396, -}; - -static long _vq_lengthlist__16u2_p9_1[] = { - 1,12,10,12,10,12,10,12,11,12,12,12,12,12,12,12, - 12, 5, 5, 9,10,12,11,11,12,12,12,12,12,12,12,12, - 12,12,12,12,10, 9, 9,11, 9,11,11,12,11,12,12,12, - 12,12,12,12,12,12,12, 8, 8,10,11, 9,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12, 9, 8,10,11,12,11, - 12,11,12,12,12,12,12,12,12,12,12,12,12, 8, 9,11, - 11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 9,10,11,12,11,12,11,12,12,12,12,12,12,12,12,12, - 12,12,12, 9, 9,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11, 5, 8, 9, 9, 8,11, 9,11,11,11,11,11,11, - 11,11,11,11, 5, 5, 4, 8, 8, 8, 8,10, 9,10,10,11, - 11,11,11,11,11,11,11, 5, 4, -}; - -static float _vq_quantthresh__16u2_p9_1[] = { - -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, -26.5, - -2, 2, 26.5, 73.5, 122.5, 171.5, 220.5, 269.5, - 318.5, 367.5, -}; - -static long _vq_quantmap__16u2_p9_1[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 17, 0, 18, 2, 4, 6, 8, 10, - 12, 14, 16, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p9_1 = { - _vq_quantthresh__16u2_p9_1, - _vq_quantmap__16u2_p9_1, - 19, - 19 -}; - -static static_codebook _16u2_p9_1 = { - 2, 361, - _vq_lengthlist__16u2_p9_1, - 1, -518488064, 1611661312, 10, 0, - _vq_quantlist__16u2_p9_1, - NULL, - &_vq_auxt__16u2_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__16u2_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__16u2_p9_2[] = { - 1, 3, 3, 4, 7, 7, 7, 8, 7, 7, 7, 7, 8, 8, 8, 8, - 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 9, 9, 8, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,12,12,10, - 11, -}; - -static float _vq_quantthresh__16u2_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__16u2_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__16u2_p9_2 = { - _vq_quantthresh__16u2_p9_2, - _vq_quantmap__16u2_p9_2, - 49, - 49 -}; - -static static_codebook _16u2_p9_2 = { - 1, 49, - _vq_lengthlist__16u2_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__16u2_p9_2, - NULL, - &_vq_auxt__16u2_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u0__long[] = { - 3, 7,12,10,15,10, 9,18, 5, 2, 5, 6, 8, 7, 9,20, - 10, 4, 4, 6, 6, 8,11,20, 9, 5, 6, 5, 7, 6, 9,20, - 11, 7, 5, 7, 5, 7,10,20,10, 6, 7, 6, 6, 6, 8,17, - 9, 8,10, 7, 7, 5, 5,17,11,18,19,14,13, 9, 8,19, -}; - -static static_codebook _huff_book__44u0__long = { - 2, 64, - _huff_lengthlist__44u0__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u0__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,10,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,13,14, 7,11,11, - 10,14,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,14,13,10,12,13, 8,11,12,11,14,14,11,14, - 13, -}; - -static float _vq_quantthresh__44u0__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u0__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p1_0 = { - _vq_quantthresh__44u0__p1_0, - _vq_quantmap__44u0__p1_0, - 3, - 3 -}; - -static static_codebook _44u0__p1_0 = { - 4, 81, - _vq_lengthlist__44u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u0__p1_0, - NULL, - &_vq_auxt__44u0__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 6, 7, 8, 8, 6, - 7, 8, 5, 6, 7, 6, 8, 7, 7, 8, 8, 5, 7, 7, 7, 8, - 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 7,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10,10, 7, 8,10, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static float _vq_quantthresh__44u0__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u0__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p2_0 = { - _vq_quantthresh__44u0__p2_0, - _vq_quantmap__44u0__p2_0, - 3, - 3 -}; - -static static_codebook _44u0__p2_0 = { - 4, 81, - _vq_lengthlist__44u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u0__p2_0, - NULL, - &_vq_auxt__44u0__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u0__p3_0[] = { - 1, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 8, 9, 9, 8, - 10, 9,12,11, 8, 9,10,11,12, 6, 8, 8,10,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,12,11,13,13,10,11,11, - 13,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10,10,11, - 11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, - 10,12,11,15,14,10,12,11,15,14,12,14,13,16,15,12, - 13,13,17,15, 9,11,11,14,14,10,11,12,14,15,10,11, - 12,14,17,12,13,14,15,16,13,13,14,15,17, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,15, - 14,11,12,12,14,15, 8,10,10,13,12,10,12,12,13,13, - 10,12,12,14,14,12,13,13,15,15,11,13,13,15,16, 7, - 10,10,12,12, 9,12,11,14,13,10,12,12,13,14,12,13, - 12,15,15,12,13,13,16,17,10,12,12,15,16,12,13,13, - 17,15,11,13,13,17,16,15,15,15,17,17,13,15,16,18, - 18, 9,12,12,15,17,11,13,12,16,16,11,13,13,16,18, - 14,15,14,16,16,13,15,15,17,18, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,10,12,12,15,15,11,12, - 12,14,15, 7,10,10,12,12,10,12,12,14,14, 9,11,12, - 13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,12, - 13,10,12,12,13,14,10,12,12,13,13,12,13,13,16,16, - 12,13,13,15,15,10,12,12,15,16,11,13,13,17,16,11, - 12,13,17,16,13,15,15,18,19,14,14,14,17,16,10,12, - 12,15,15,11,13,13,15,16,11,13,13,15,17,13,15,15, - 18,20,14,15,15,17,17, 8,11,11,15,16,10,13,12,17, - 16,10,12,13,16,17,15,16,15,20,19,14,15,16,18,19, - 9,12,12,15,17,11,13,14,18,18,11,13,14,17,17,16, - 17,18,19,19,15,16,18,19,20, 9,12,12,16,16,11,14, - 12,17,17,11,13,13,16,19,15,16,15,20,19,15,15,15, - 19,17,12,14,14,18,19,14,15,15,19,18,13,15,15,18, - 17,17,18,19,20, 0,15,16,17,20, 0,12,15,14,17,18, - 13,16,14,20,20,13,16,15,19,18,16,20,17,20,19,16, - 17,16, 0,19, 8,11,11,15,15,10,12,12,17,17,10,12, - 13,16,16,13,14,15,17,17,15,16,17,19,19, 9,12,12, - 16,17,11,13,13,18,16,11,13,13,16,17,14,15,16,19, - 18,15,16,17,17,18, 9,12,12,17,16,11,14,13,16,16, - 12,14,13,17,18,14,16,15,18,19,17,17,17,19,18,12, - 14,14,19,17,13,15,15,17, 0,13,14,16, 0, 0,15,16, - 16,19, 0,16,16,19,19, 0,12,15,14,19,18,13,15,15, - 19, 0,14,16,15, 0,19,15,17,17, 0,19,17,18,17, 0, - 19, -}; - -static float _vq_quantthresh__44u0__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u0__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p3_0 = { - _vq_quantthresh__44u0__p3_0, - _vq_quantmap__44u0__p3_0, - 5, - 5 -}; - -static static_codebook _44u0__p3_0 = { - 4, 625, - _vq_lengthlist__44u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u0__p3_0, - NULL, - &_vq_auxt__44u0__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u0__p4_0[] = { - 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10,10,10,10,11,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 6, 8, 7,10,10, 7, 8, 8,10, - 10, 9,10,10,12,11,10,10,10,12,11, 9,10,10,12,12, - 10,11,10,13,13, 9,10,10,13,13,12,12,12,14,14,11, - 12,12,14,14, 9,10,10,12,12, 9,10,10,13,13,10,10, - 10,12,13,11,12,12,14,14,12,13,12,14,14, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13, - 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, - 8, 9, 9,11,11,10,10,11,12,13,10,11,11,13,14, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,11,10,11,11,13,13,10,11,10,13,13,10,10,11, - 13,14,10,11,11,14,13,12,11,13,12,14,12,13,13,15, - 15, 9,10,10,13,13,10,11,10,13,13,10,11,11,13,14, - 12,13,11,15,12,12,13,13,14,15, 5, 7, 7,10, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, - 10,12,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,14, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 8,11,10,10,11,11,13,13, - 10,11,10,13,11, 9,10,10,13,13,10,11,11,14,13,10, - 10,11,12,13,13,13,13,15,14,12,11,13,12,15, 9,10, - 11,13,13,10,11,11,13,14,10,11,10,13,13,12,13,13, - 15,15,12,13,11,15,12, 8,10,10,13,12,10,11,11,13, - 13, 9,10,11,13,13,13,13,13,15,15,12,13,13,15,15, - 9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13, - 13,14,14,15,13,13,13,14,15, 9,10,10,13,13,10,11, - 10,14,13,10,11,11,13,14,13,14,13,15,14,12,13,13, - 14,15,11,13,13,15,14,11,11,13,14,15,12,14,13,15, - 15,13,12,15,12,16,14,14,15,17,16,11,12,12,14,15, - 11,13,11,15,14,12,13,13,15,15,14,14,12,17,13,14, - 15,15,18,16, 8,10,10,13,12, 9,10,10,13,13,10,10, - 11,13,13,12,13,13,14,14,12,13,13,15,15, 9,10,10, - 13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,17, - 15,12,12,13,14,16, 9,10,10,13,13,10,11,11,13,13, - 10,11,10,14,13,13,13,13,14,15,13,14,13,15,15,11, - 13,12,14,14,12,13,13,16,14,11,12,13,15,15,14,15, - 16,17,18,14,12,15,14,16,11,12,13,14,15,12,13,13, - 15,16,11,13,11,15,14,14,16,14,16,17,14,15,12,16, - 12, -}; - -static float _vq_quantthresh__44u0__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u0__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p4_0 = { - _vq_quantthresh__44u0__p4_0, - _vq_quantmap__44u0__p4_0, - 5, - 5 -}; - -static static_codebook _44u0__p4_0 = { - 4, 625, - _vq_lengthlist__44u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u0__p4_0, - NULL, - &_vq_auxt__44u0__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u0__p5_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 8, 8, 8, - 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, - 10, 9,10,11,12,12, 8, 8, 8, 9, 9,11,11,12,12, 9, - 10,10,11,11,12,12,13,13, 9,10,10,11,11,12,12,13, - 13, -}; - -static float _vq_quantthresh__44u0__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u0__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p5_0 = { - _vq_quantthresh__44u0__p5_0, - _vq_quantmap__44u0__p5_0, - 9, - 9 -}; - -static static_codebook _44u0__p5_0 = { - 2, 81, - _vq_lengthlist__44u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u0__p5_0, - NULL, - &_vq_auxt__44u0__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u0__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8,10, 9,10,10,14,14, 4, 6, 5, - 8, 8, 9, 9,10,10,11,11,14,14, 4, 5, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 7, 8, 8, 9, 9,10,10,11,11, - 12,12,15,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,14, - 15, 9, 9, 9,10,10,11,11,12,11,12,12,15,16, 9, 9, - 9,10,10,11,11,11,11,12,12,15,15,10,10,10,11,11, - 12,11,12,12,13,13,16,16,10,10,10,11,11,12,12,12, - 12,13,13,16,17,11,11,12,12,12,13,13,14,13,14,14, - 18,17,11,11,11,12,12,12,12,13,14,14,14,18,18,14, - 14,14,15,15,15,16,16,16,17,17, 0,19,14,14,14,15, - 15,16,17,16,17,17,17,19, 0, -}; - -static float _vq_quantthresh__44u0__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u0__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p6_0 = { - _vq_quantthresh__44u0__p6_0, - _vq_quantmap__44u0__p6_0, - 13, - 13 -}; - -static static_codebook _44u0__p6_0 = { - 2, 169, - _vq_lengthlist__44u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u0__p6_0, - NULL, - &_vq_auxt__44u0__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u0__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 5, 6, 6, 6, 6, -}; - -static float _vq_quantthresh__44u0__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u0__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p6_1 = { - _vq_quantthresh__44u0__p6_1, - _vq_quantmap__44u0__p6_1, - 5, - 5 -}; - -static static_codebook _44u0__p6_1 = { - 2, 25, - _vq_lengthlist__44u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u0__p6_1, - NULL, - &_vq_auxt__44u0__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p7_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u0__p7_0[] = { - 1, 5, 5,11,11, 9,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, 8,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11, 9,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 8,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44u0__p7_0[] = { - -253.5, -84.5, 84.5, 253.5, -}; - -static long _vq_quantmap__44u0__p7_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p7_0 = { - _vq_quantthresh__44u0__p7_0, - _vq_quantmap__44u0__p7_0, - 5, - 5 -}; - -static static_codebook _44u0__p7_0 = { - 4, 625, - _vq_lengthlist__44u0__p7_0, - 1, -518709248, 1626677248, 3, 0, - _vq_quantlist__44u0__p7_0, - NULL, - &_vq_auxt__44u0__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u0__p7_1[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 7, 7, - 8, 8, 8, 8, 9, 9,11,10,12,11, 4, 6, 7, 8, 8, 7, - 8, 9, 9,10,11,12,11, 7, 8, 8, 9, 9,10,10,11,11, - 12,11,13,13, 7, 8, 8, 9,10,10,10,11,11,12,12,12, - 13, 7, 8, 8,10,10,12,12,13,12,16,13,13,14, 7, 8, - 8,10,11,12,12,13,12,13,13,14,14, 8, 9,10,12,12, - 14,13,16,15,16,16,16,15, 8,10,10,12,12,14,13,14, - 15,16,16,15,16,10,11,12,14,14,14,14,16,13,16,15, - 16,16,10,11,12,13,13,15,14,14,15,16,16,14,14,13, - 14,13,15,16,16,16,15,15,16,16,16,16,11,15,14,16, - 16,14,14,16,15,16,14,16,15, -}; - -static float _vq_quantthresh__44u0__p7_1[] = { - -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5, - 32.5, 45.5, 58.5, 71.5, -}; - -static long _vq_quantmap__44u0__p7_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p7_1 = { - _vq_quantthresh__44u0__p7_1, - _vq_quantmap__44u0__p7_1, - 13, - 13 -}; - -static static_codebook _44u0__p7_1 = { - 2, 169, - _vq_lengthlist__44u0__p7_1, - 1, -523010048, 1618608128, 4, 0, - _vq_quantlist__44u0__p7_1, - NULL, - &_vq_auxt__44u0__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u0__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u0__p7_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 5, 5, 6, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 5, 5, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 7, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44u0__p7_2[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap__44u0__p7_2[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u0__p7_2 = { - _vq_quantthresh__44u0__p7_2, - _vq_quantmap__44u0__p7_2, - 13, - 13 -}; - -static static_codebook _44u0__p7_2 = { - 2, 169, - _vq_lengthlist__44u0__p7_2, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist__44u0__p7_2, - NULL, - &_vq_auxt__44u0__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u0__short[] = { - 6,10,11,12,13,12,12,12, 4, 6, 6, 9, 9,10,11,13, - 3, 4, 3, 7, 6, 8,10,15, 5, 7, 7, 9, 8, 9,11,16, - 6, 7, 5, 8, 5, 7,10,16, 7, 8, 7, 9, 6, 7,10,16, - 10, 6, 3, 5, 4, 5, 7,16,13, 8, 5, 7, 6, 7,10,15, -}; - -static static_codebook _huff_book__44u0__short = { - 2, 64, - _huff_lengthlist__44u0__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u1__long[] = { - 4, 8,13,11,14,11,10,14, 6, 3, 5, 6, 8, 7, 9,14, - 12, 4, 3, 6, 5, 7,10,18,11, 6, 6, 6, 6, 6, 8,16, - 13, 7, 4, 6, 4, 6, 9,19,11, 6, 6, 5, 5, 5, 7,16, - 10, 8, 9, 7, 9, 6, 4,12,11,16,18,19,18,10, 7,11, -}; - -static static_codebook _huff_book__44u1__long = { - 2, 64, - _huff_lengthlist__44u1__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u1__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,13,14, 8,11,11, - 10,14,11,11,13,14, 4, 8, 8, 8,11,11, 8,11,11, 7, - 11,11,11,14,13,10,12,13, 8,11,11,11,14,14,11,14, - 13, -}; - -static float _vq_quantthresh__44u1__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u1__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p1_0 = { - _vq_quantthresh__44u1__p1_0, - _vq_quantmap__44u1__p1_0, - 3, - 3 -}; - -static static_codebook _44u1__p1_0 = { - 4, 81, - _vq_lengthlist__44u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u1__p1_0, - NULL, - &_vq_auxt__44u1__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u1__p2_0[] = { - 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8, - 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8, 9, 9, 6, 8, 8, - 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10, 9, 7, 8, 9, 7, 8, 8, 8, 9, 9, 8,10, - 9, -}; - -static float _vq_quantthresh__44u1__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u1__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p2_0 = { - _vq_quantthresh__44u1__p2_0, - _vq_quantmap__44u1__p2_0, - 3, - 3 -}; - -static static_codebook _44u1__p2_0 = { - 4, 81, - _vq_lengthlist__44u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u1__p2_0, - NULL, - &_vq_auxt__44u1__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u1__p3_0[] = { - 2, 5, 4, 7, 7, 5, 7, 7, 9, 8, 5, 7, 7, 8, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7,10,10, 7, 9, - 9,11,10, 7, 9, 9,10,10, 9,11,10,13,12, 9,10,10, - 12,13, 5, 7, 7,10, 9, 7, 9, 9,11,10, 7, 9, 9,10, - 11, 9,10,10,12,12,10,10,11,12,13, 8,10,10,14,13, - 9,11,11,15,13, 9,11,11,15,13,12,14,12,16,14,12, - 13,12,15,14, 8,10,10,13,14, 9,11,11,13,14,10,11, - 11,13,15,12,12,13,14,15,12,13,14,14,16, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, - 14,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,12, - 9,11,11,13,13,12,12,12,14,14,11,12,13,15,15, 7, - 9, 9,12,11, 9,11,10,12,12, 9,11,11,12,13,11,12, - 11,14,14,11,12,12,15,16, 9,11,11,15,15,11,12,12, - 16,15,10,12,12,16,15,14,15,15,17,16,13,14,14,17, - 17, 9,11,11,14,15,10,12,11,15,15,10,12,12,15,17, - 13,14,13,16,15,13,14,15,17,17, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,12,10,11,11,14,14,10,11, - 11,13,14, 7, 9, 9,11,12, 9,11,11,13,13, 9,10,11, - 12,12,11,12,12,15,15,11,12,12,13,14, 7,10, 9,12, - 12, 9,11,11,13,13, 9,11,11,12,12,11,12,12,16,15, - 11,12,12,14,14, 9,11,11,15,14,10,12,12,16,15,10, - 11,12,15,15,13,14,14,17,18,13,13,14,15,16, 9,11, - 11,15,16,10,12,12,15,15,11,12,12,14,17,13,14,14, - 17,17,14,14,14,16,18, 7,10,10,14,15,10,12,12,16, - 15,10,11,12,16,16,14,16,15,18,17,13,15,14,17,19, - 9,11,12,16,15,11,13,13,17,16,10,13,13,16,16,15, - 16,16,17,19,13,15,15,17,17, 8,11,11,15,15,10,13, - 11,16,16,10,13,13,16,17,14,16,15,18,19,13,15,15, - 17,17,12,14,14,18,18,13,14,15,18,19,12,14,15,17, - 18,16,18,18,19, 0,14,15,16,18,18,11,14,13,17,18, - 12,16,14,19,19,12,15,14, 0,18,15,17,16,18,17,14, - 17,16,18,18, 7,10,10,15,14,10,12,11,16,16,10,11, - 12,16,16,13,15,14,19,18,14,15,16,18,18, 8,11,11, - 15,15,10,13,12,17,16,10,12,13,16,17,14,14,15,19, - 18,14,15,16,18, 0, 9,11,11,16,15,11,13,12,15,16, - 11,13,13,16,16,14,15,14, 0,17,15,16,16,19,18,11, - 14,14,18,17,12,14,15,17,17,12,13,15, 0,17,14,15, - 16,18,17,16,17,18,17,19,11,14,13,17,19,12,15,14, - 18,19,13,16,14, 0,19,14,17,15, 0,18,15,18,16, 0, - 0, -}; - -static float _vq_quantthresh__44u1__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u1__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p3_0 = { - _vq_quantthresh__44u1__p3_0, - _vq_quantmap__44u1__p3_0, - 5, - 5 -}; - -static static_codebook _44u1__p3_0 = { - 4, 625, - _vq_lengthlist__44u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u1__p3_0, - NULL, - &_vq_auxt__44u1__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u1__p4_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10,10,10,10,11,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11,10,10,10,12,11, 9,10,10,12,12, - 10,10,10,13,12, 9,10,10,12,12,12,12,12,14,14,11, - 12,12,13,14, 9,10,10,12,12, 9,10,10,13,12,10,10, - 10,12,13,12,12,12,14,13,12,12,12,14,14, 5, 7, 7, - 9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10,10,10,10,12, - 12,10,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,10,11, - 8, 8, 8,11,11,10,10,11,11,13,10,11,11,12,13, 6, - 7, 7,10,10, 7, 8, 8,11,10, 8, 8, 9,11,11,10,11, - 10,13,11,10,11,11,13,12,10,11,10,13,12,10,10,11, - 13,13,10,11,11,13,13,12,11,13,12,14,12,13,13,15, - 15, 9,10,10,12,13,10,11,10,13,13,10,11,11,13,14, - 12,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9,10, 7, - 8, 7,10,10, 7, 7, 8,10,10,10,10,10,12,12,10,10, - 10,12,12, 6, 7, 7,10,10, 8, 9, 8,11,11, 7, 8, 8, - 10,11,10,11,11,12,13,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 8, 8,11,11, 8, 9, 8,11,10,10,11,10,13,12, - 10,11,10,13,12, 9,10,10,13,12,10,11,11,13,13, 9, - 10,10,12,13,13,13,13,15,14,12,11,13,12,15,10,10, - 11,12,13,10,11,11,13,13,10,11,10,13,13,12,13,13, - 15,15,12,13,11,14,12, 8,10, 9,12,12, 9,10,10,13, - 13, 9,10,10,13,13,13,13,13,14,15,12,12,12,14,14, - 9,10,10,13,12,10,11,11,13,13,10,11,11,13,12,13, - 13,14,14,16,12,13,13,15,14, 9,10,10,13,13,10,11, - 10,13,13,10,11,11,13,13,13,14,12,15,14,12,13,13, - 14,15,12,12,12,14,14,11,12,12,14,15,12,13,13,15, - 14,14,12,15,12,16,14,14,15,17,16,11,12,12,14,14, - 11,12,11,15,14,12,13,13,15,15,13,14,12,16,13,14, - 14,15,17,16, 8,10,10,12,12, 9,10,10,13,12,10,10, - 10,13,13,12,13,12,14,14,12,13,13,15,14, 9,10,10, - 13,13,10,11,11,13,13,10,10,11,12,13,13,13,13,15, - 15,12,12,13,14,15, 9,10,10,12,13,10,11,11,12,13, - 10,11,10,13,13,12,13,13,14,15,13,14,13,15,14,11, - 12,12,15,14,12,13,13,15,14,11,12,12,14,15,14,14, - 14,17,15,13,12,15,13,16,12,12,12,14,15,12,13,13, - 14,15,11,12,12,15,14,14,15,14,16,17,13,15,12,16, - 12, -}; - -static float _vq_quantthresh__44u1__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u1__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p4_0 = { - _vq_quantthresh__44u1__p4_0, - _vq_quantmap__44u1__p4_0, - 5, - 5 -}; - -static static_codebook _44u1__p4_0 = { - 4, 625, - _vq_lengthlist__44u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u1__p4_0, - NULL, - &_vq_auxt__44u1__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u1__p5_0[] = { - 1, 4, 4, 7, 7, 8, 8,10,10, 4, 6, 5, 8, 8, 8, 8, - 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 7, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, - 9, 9,10,11,12,12, 8, 8, 9, 9, 9,10,10,12,12,10, - 10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13, - 13, -}; - -static float _vq_quantthresh__44u1__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u1__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p5_0 = { - _vq_quantthresh__44u1__p5_0, - _vq_quantmap__44u1__p5_0, - 9, - 9 -}; - -static static_codebook _44u1__p5_0 = { - 2, 81, - _vq_lengthlist__44u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u1__p5_0, - NULL, - &_vq_auxt__44u1__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u1__p6_0[] = { - 1, 4, 4, 7, 7, 9, 8,10, 9,11,10,14,13, 4, 5, 5, - 8, 8, 9, 9,11,11,11,11,14,14, 4, 5, 5, 8, 8, 9, - 9,10,11,11,11,14,14, 7, 8, 8, 9, 9,11,10,11,11, - 12,12,16,15, 7, 8, 8, 9, 9,10,11,11,11,12,12,15, - 15, 9,10,10,11,11,11,11,12,12,13,13,16,16, 9,10, - 10,11,11,11,11,12,12,12,13,16,15,10,11,11,11,11, - 12,12,13,13,13,13,16,17,10,11,11,11,11,12,12,12, - 12,13,14,16,16,11,12,12,12,12,13,13,14,14,14,15, - 18,17,11,12,12,12,12,13,13,13,14,14,15,18,18,15, - 14,15,15,15,16,16,17,17,18,17,20,20,14,15,15,15, - 15,16,17,17,16,18, 0,19, 0, -}; - -static float _vq_quantthresh__44u1__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u1__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p6_0 = { - _vq_quantthresh__44u1__p6_0, - _vq_quantmap__44u1__p6_0, - 13, - 13 -}; - -static static_codebook _44u1__p6_0 = { - 2, 169, - _vq_lengthlist__44u1__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u1__p6_0, - NULL, - &_vq_auxt__44u1__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u1__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static float _vq_quantthresh__44u1__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u1__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p6_1 = { - _vq_quantthresh__44u1__p6_1, - _vq_quantmap__44u1__p6_1, - 5, - 5 -}; - -static static_codebook _44u1__p6_1 = { - 2, 25, - _vq_lengthlist__44u1__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u1__p6_1, - NULL, - &_vq_auxt__44u1__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p7_0[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static long _vq_lengthlist__44u1__p7_0[] = { - 1, 3, 3, 9, 9, 9, 9, 5, 7, 7, 9, 9, 9, 9, 5, 6, - 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static float _vq_quantthresh__44u1__p7_0[] = { - -422.5, -253.5, -84.5, 84.5, 253.5, 422.5, -}; - -static long _vq_quantmap__44u1__p7_0[] = { - 5, 3, 1, 0, 2, 4, 6, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p7_0 = { - _vq_quantthresh__44u1__p7_0, - _vq_quantmap__44u1__p7_0, - 7, - 7 -}; - -static static_codebook _44u1__p7_0 = { - 2, 49, - _vq_lengthlist__44u1__p7_0, - 1, -518017024, 1626677248, 3, 0, - _vq_quantlist__44u1__p7_0, - NULL, - &_vq_auxt__44u1__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u1__p7_1[] = { - 1, 4, 4, 6, 6, 6, 7, 8, 8, 9, 9,11,10, 4, 7, 7, - 8, 8, 8, 8, 9, 9,11,10,12,11, 4, 6, 7, 8, 8, 8, - 8,10,10,10,11,12,11, 7, 8, 8, 9, 9,10,10,11,11, - 12,12,13,13, 7, 8, 8, 9, 9,10,10,11,11,12,12,13, - 13, 7, 8, 8,10,10,13,12,13,13,16,13,13,14, 7, 8, - 8,10,11,12,12,13,13,14,14,14,14, 8,10,10,13,12, - 13,13,16,14,15,15,16,15, 8,10,11,12,13,13,13,13, - 16,15,16,16,14,10,12,13,14,15,15,14,14,14,15,16, - 15,16,10,11,12,13,13,15,15,16,16,16,14,16,16,12, - 13,13,15,14,15,14,15,15,14,15,16,16,11,14,14,15, - 14,16,15,16,14,15,16,14,15, -}; - -static float _vq_quantthresh__44u1__p7_1[] = { - -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5, - 32.5, 45.5, 58.5, 71.5, -}; - -static long _vq_quantmap__44u1__p7_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p7_1 = { - _vq_quantthresh__44u1__p7_1, - _vq_quantmap__44u1__p7_1, - 13, - 13 -}; - -static static_codebook _44u1__p7_1 = { - 2, 169, - _vq_lengthlist__44u1__p7_1, - 1, -523010048, 1618608128, 4, 0, - _vq_quantlist__44u1__p7_1, - NULL, - &_vq_auxt__44u1__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u1__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u1__p7_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 5, 6, 6, - 6, 7, 8, 7, 8, 8, 8, 9, 9, 9, 5, 6, 6, 7, 7, 8, - 8, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, 7, 8, 8, 8, 9, - 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 9, 9, 9, - 8, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44u1__p7_2[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap__44u1__p7_2[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u1__p7_2 = { - _vq_quantthresh__44u1__p7_2, - _vq_quantmap__44u1__p7_2, - 13, - 13 -}; - -static static_codebook _44u1__p7_2 = { - 2, 169, - _vq_lengthlist__44u1__p7_2, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist__44u1__p7_2, - NULL, - &_vq_auxt__44u1__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u1__short[] = { - 7,12,12,14,16,13,12,15, 6, 9,10,13,11,11,12,12, - 4, 5, 5, 8, 5, 7, 9,12, 6, 7, 8,10, 8, 9,11,16, - 5, 5, 4, 7, 4, 5, 7,15, 6, 5, 5, 8, 5, 5, 6,15, - 8, 7, 4, 7, 3, 4, 5,16,15,11, 6, 8, 5, 6, 8,16, -}; - -static static_codebook _huff_book__44u1__short = { - 2, 64, - _huff_lengthlist__44u1__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u2__long[] = { - 8,14,15,15,17,15,12,13,13, 3, 4, 7, 8, 7, 8,11, - 20, 4, 3, 6, 5, 7, 9,16,15, 6, 5, 6, 6, 6, 8,15, - 20, 7, 4, 6, 4, 5, 8,18,16, 7, 6, 6, 5, 5, 6,14, - 11, 7, 8, 7, 7, 5, 4,10,10,13,15,16,19,10, 6,10, -}; - -static static_codebook _huff_book__44u2__long = { - 2, 64, - _huff_lengthlist__44u2__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u2__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,13,13, 8,11,11, - 10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,11, 7, - 11,11,11,14,13,10,12,13, 8,11,11,11,14,13,11,13, - 13, -}; - -static float _vq_quantthresh__44u2__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u2__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p1_0 = { - _vq_quantthresh__44u2__p1_0, - _vq_quantmap__44u2__p1_0, - 3, - 3 -}; - -static static_codebook _44u2__p1_0 = { - 4, 81, - _vq_lengthlist__44u2__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u2__p1_0, - NULL, - &_vq_auxt__44u2__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u2__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 7, 6, 7, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 8, 6, 7, 8, 6, - 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static float _vq_quantthresh__44u2__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u2__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p2_0 = { - _vq_quantthresh__44u2__p2_0, - _vq_quantmap__44u2__p2_0, - 3, - 3 -}; - -static static_codebook _44u2__p2_0 = { - 4, 81, - _vq_lengthlist__44u2__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u2__p2_0, - NULL, - &_vq_auxt__44u2__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u2__p3_0[] = { - 2, 4, 4, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 9, 9,12,12, 8, 9,10,11,12, 5, 7, 7,10,10, 7, 9, - 9,11,10, 7, 8, 9,10,11,10,11,10,14,13, 9,10,10, - 12,13, 5, 7, 7,10,10, 7, 9, 8,11,10, 7, 9, 9,11, - 11, 9,10,10,13,12,10,10,11,13,13, 8,10,10,15,13, - 10,11,11,15,13, 9,11,11,14,13,13,14,13,17,15,12, - 13,13,15,15, 8,10,10,13,14, 9,11,11,13,14,10,11, - 12,13,16,12,13,13,15,15,13,13,14,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, - 14,10,11,12,14,14, 7, 9, 9,12,12, 9,11,11,13,12, - 9,11,11,13,13,12,13,12,14,14,11,12,12,15,14, 7, - 9, 9,12,11, 9,11,10,13,11, 9,11,11,12,13,11,12, - 11,14,13,11,12,12,15,15,10,12,12,16,15,11,13,13, - 16,16,10,12,12,16,16,14,14,14,17,16,13,14,14,17, - 18, 9,11,11,14,15,10,12,11,15,15,10,12,12,15,17, - 13,15,13,17,16,13,14,15,17,19, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,11,10,11,11,15,14,10,11, - 12,13,14, 7, 9, 9,12,12, 9,11,11,13,12, 8,10,11, - 12,12,11,12,12,15,15,11,11,12,14,14, 7, 9, 9,12, - 12, 9,11,11,13,13, 9,11,11,12,12,11,12,12,16,15, - 11,12,13,14,14, 9,11,11,16,15,10,12,12,16,15,10, - 11,12,14,14,13,14,15,18,17,13,13,14,16,16,10,12, - 12,15,15,10,13,12,15,17,11,13,12,15,16,13,15,14, - 17,18,14,15,14,15,17, 8,10,10,15,15,10,12,12,17, - 15,10,12,12,17,16,14,16,15,17,17,13,14,15,16,16, - 9,11,12,16,16,11,13,13,16,17,11,13,13,16,16,15, - 16,16, 0, 0,14,15,15,19,17, 9,11,11,17,16,10,13, - 11,16,16,11,12,12,16,17,15,16,15,19,19,14,16,15, - 0,18,12,14,15, 0, 0,14,15,16,18,18,13,14,15,17, - 17,16,18,18, 0, 0,15,16,16,19,18,11,14,13, 0,18, - 13,16,13,17,17,13,15,14, 0, 0,17,17,15,19,18,14, - 16,16,19, 0, 8,10,10,15,15,10,12,11,16,16,10,11, - 12,17,16,14,15,15,17,18,15,15,16, 0, 0, 9,11,11, - 15,15,11,13,12,16,18,10,12,13,17,17,13,15,15,17, - 19,15,15,16,19,18, 9,12,11, 0,16,11,13,12,16,16, - 11,13,13,16,17,14,16,15,19,19,15,15,16,18,18,12, - 14,14,17,18,13,14,15,18, 0,13,14,15,18,19,15,17, - 16, 0,19,16,15,18,17,19,12,14,14,19,19,13,15,15, - 0,18,13,17,15,18,18,15,16,17, 0,19,17,19,18,18, - 0, -}; - -static float _vq_quantthresh__44u2__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u2__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p3_0 = { - _vq_quantthresh__44u2__p3_0, - _vq_quantmap__44u2__p3_0, - 5, - 5 -}; - -static static_codebook _44u2__p3_0 = { - 4, 625, - _vq_lengthlist__44u2__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u2__p3_0, - NULL, - &_vq_auxt__44u2__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u2__p4_0[] = { - 4, 5, 5, 9, 9, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 9, - 10, 9,12,11, 9, 9,10,11,12, 6, 7, 7,10,10, 7, 8, - 7,10,10, 7, 7, 8,10,10,10,10,10,12,12, 9,10,10, - 11,12, 6, 7, 7,10,10, 7, 8, 7,10,10, 7, 7, 7,10, - 10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,13,12, - 10,10,10,13,13,10,10,10,13,12,12,12,12,14,14,12, - 12,12,14,14, 9,10,10,12,13, 9,10,10,13,13,10,10, - 10,13,13,12,12,12,15,14,12,13,12,14,14, 5, 7, 7, - 10,10, 7, 8, 7,10,10, 7, 7, 8,10,10,10,10,10,12, - 12,10,10,10,12,12, 7, 8, 8,10,10, 8, 8, 8,10,11, - 8, 8, 8,11,10,10,10,11,11,13,10,10,11,12,13, 6, - 7, 7,10,10, 7, 8, 7,11,10, 8, 8, 8,10,11,10,11, - 10,13,11,10,10,10,13,12,10,11,10,13,13,10,10,10, - 12,13,10,11,11,13,13,12,11,13,11,14,12,13,13,14, - 14, 9,10,10,12,13,10,10,10,13,12,10,10,11,13,13, - 12,13,11,14,12,13,13,13,15,14, 5, 7, 7,10,10, 7, - 7, 7,10,10, 7, 7, 8,10,10,10,10,10,12,12,10,10, - 10,12,13, 6, 7, 7,10,10, 8, 8, 8,11,10, 7, 7, 8, - 10,11,10,10,10,12,12,10,10,11,11,13, 7, 8, 8,10, - 10, 7, 8, 8,10,11, 8, 8, 8,11,10,10,11,10,13,12, - 10,11,10,13,11, 9,10,10,13,13,10,11,11,13,13,10, - 10,10,12,13,13,13,13,14,14,12,11,13,12,14,10,10, - 11,13,13,10,11,11,13,13,10,10,10,13,12,12,13,13, - 14,14,12,13,11,15,12, 9,10,10,13,13,10,10,10,13, - 13,10,10,10,13,13,13,13,13,15,15,12,13,13,14,14, - 9,10,10,13,13,10,10,11,13,13,10,11,10,13,12,13, - 12,13,14,15,13,13,13,15,14, 9,10,10,13,13,10,10, - 10,13,12,10,10,11,12,13,13,13,12,15,14,13,13,13, - 14,14,12,13,12,15,14,12,11,12,14,14,12,13,12,15, - 14,14,12,15,12,16,14,14,15,16,16,12,12,12,14,15, - 11,12,11,15,14,12,13,13,14,15,14,14,12,16,13,14, - 14,15,16,16, 9,10,10,13,13,10,10,10,13,13,10,10, - 10,13,13,12,13,12,14,14,13,13,13,15,15, 9,10,10, - 13,13,10,11,10,13,12,10,10,10,12,13,13,13,13,14, - 14,12,12,13,14,15, 9,10,10,13,13,10,10,11,12,13, - 10,11,10,13,13,13,13,13,14,15,13,13,13,15,14,12, - 12,12,15,14,12,13,12,15,14,11,11,12,14,15,14,14, - 14,17,16,14,12,14,13,17,12,12,13,14,16,13,13,13, - 13,15,12,12,11,14,14,14,15,14,16,16,14,14,12,16, - 12, -}; - -static float _vq_quantthresh__44u2__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u2__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p4_0 = { - _vq_quantthresh__44u2__p4_0, - _vq_quantmap__44u2__p4_0, - 5, - 5 -}; - -static static_codebook _44u2__p4_0 = { - 4, 625, - _vq_lengthlist__44u2__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u2__p4_0, - NULL, - &_vq_auxt__44u2__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u2__p5_0[] = { - 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 4, 7, 7, 8, 7, - 9, 9, 4, 4, 4, 7, 7, 7, 8, 9, 9, 6, 7, 7, 8, 8, - 8, 9,10,10, 6, 7, 7, 8, 8, 9, 8,10,10, 7, 8, 7, - 8, 9, 9,10,11,11, 7, 7, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12, - 12, -}; - -static float _vq_quantthresh__44u2__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u2__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p5_0 = { - _vq_quantthresh__44u2__p5_0, - _vq_quantmap__44u2__p5_0, - 9, - 9 -}; - -static static_codebook _44u2__p5_0 = { - 2, 81, - _vq_lengthlist__44u2__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u2__p5_0, - NULL, - &_vq_auxt__44u2__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u2__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9,10,11,11,14,14, 4, 6, 5, - 8, 8, 9, 9,11,11,11,11,14,14, 4, 5, 5, 8, 8, 9, - 9,10,11,11,12,14,14, 7, 8, 8, 9, 9,11,10,11,11, - 12,12,15,15, 7, 8, 8, 9, 9,11,11,11,11,12,12,15, - 14, 9,10,10,11,11,11,11,12,12,13,12,16,16, 9,10, - 10,11,11,11,11,12,12,13,13,15,16,10,11,11,11,11, - 12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,12, - 13,14,14,16,16,11,12,12,12,12,13,13,14,14,14,14, - 17,17,11,12,12,12,12,13,13,14,14,15,14,18,17,15, - 14,15,15,15,16,16,17,18,19,17,19, 0,15,15,15,15, - 15,16,17,16,16,18,17, 0, 0, -}; - -static float _vq_quantthresh__44u2__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u2__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p6_0 = { - _vq_quantthresh__44u2__p6_0, - _vq_quantmap__44u2__p6_0, - 13, - 13 -}; - -static static_codebook _44u2__p6_0 = { - 2, 169, - _vq_lengthlist__44u2__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u2__p6_0, - NULL, - &_vq_auxt__44u2__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u2__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 5, 5, 6, 6, 6, -}; - -static float _vq_quantthresh__44u2__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u2__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p6_1 = { - _vq_quantthresh__44u2__p6_1, - _vq_quantmap__44u2__p6_1, - 5, - 5 -}; - -static static_codebook _44u2__p6_1 = { - 2, 25, - _vq_lengthlist__44u2__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u2__p6_1, - NULL, - &_vq_auxt__44u2__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p7_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u2__p7_0[] = { - 1, 3, 3,10,10,10,10,10,10, 4,10,10,10,10,10,10, - 10,10, 4,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44u2__p7_0[] = { - -591.5, -422.5, -253.5, -84.5, 84.5, 253.5, 422.5, 591.5, -}; - -static long _vq_quantmap__44u2__p7_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p7_0 = { - _vq_quantthresh__44u2__p7_0, - _vq_quantmap__44u2__p7_0, - 9, - 9 -}; - -static static_codebook _44u2__p7_0 = { - 2, 81, - _vq_lengthlist__44u2__p7_0, - 1, -516612096, 1626677248, 4, 0, - _vq_quantlist__44u2__p7_0, - NULL, - &_vq_auxt__44u2__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u2__p7_1[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 9,10,10, 4, 7, 6, - 8, 8, 8, 8,10, 9,11,10,12,12, 4, 6, 7, 8, 8, 8, - 8,10,10,11,11,12,12, 7, 8, 8,10, 9,10,10,12,11, - 13,12,13,13, 7, 8, 8, 9, 9,10,10,11,11,13,13,14, - 15, 7, 8, 9,10,10,12,11,14,13,13,14,14,15, 7, 8, - 9,10,10,11,12,13,13,15,14,14,15, 8,10,10,12,11, - 13,13,15,15,15,17,15,15, 8,10,10,11,12,14,13,14, - 15,17,15,15,15,10,11,11,14,13,14,14,15,15,17,17, - 16,17,10,11,12,13,13,14,14,14,15,16,15,15,17,11, - 12,13,14,13,16,16,16,14,17,16,17,17,11,12,13,15, - 15,15,15,16,15,15,15,15,17, -}; - -static float _vq_quantthresh__44u2__p7_1[] = { - -71.5, -58.5, -45.5, -32.5, -19.5, -6.5, 6.5, 19.5, - 32.5, 45.5, 58.5, 71.5, -}; - -static long _vq_quantmap__44u2__p7_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p7_1 = { - _vq_quantthresh__44u2__p7_1, - _vq_quantmap__44u2__p7_1, - 13, - 13 -}; - -static static_codebook _44u2__p7_1 = { - 2, 169, - _vq_lengthlist__44u2__p7_1, - 1, -523010048, 1618608128, 4, 0, - _vq_quantlist__44u2__p7_1, - NULL, - &_vq_auxt__44u2__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u2__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u2__p7_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 5, 6, 6, 7, 7, 8, - 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44u2__p7_2[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap__44u2__p7_2[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u2__p7_2 = { - _vq_quantthresh__44u2__p7_2, - _vq_quantmap__44u2__p7_2, - 13, - 13 -}; - -static static_codebook _44u2__p7_2 = { - 2, 169, - _vq_lengthlist__44u2__p7_2, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist__44u2__p7_2, - NULL, - &_vq_auxt__44u2__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u2__short[] = { - 16,15,15,16,14,16,16,16,16, 9, 8,11,10,10,10,15, - 16, 6, 3, 7, 5, 7, 9,16,16,11, 7,11, 9,10,12,16, - 16, 9, 4, 8, 3, 5, 8,16,16,11, 6, 9, 4, 4, 7,16, - 16,11, 5, 9, 3, 3, 5,12,16,15, 6,11, 5, 5, 6,14, -}; - -static static_codebook _huff_book__44u2__short = { - 2, 64, - _huff_lengthlist__44u2__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u3__long[] = { - 7,11,14,13,14,12,12,12,12, 2, 5, 8, 9, 8, 9,11, - 17, 4, 3, 6, 5, 7, 9,15,14, 6, 6, 7, 7, 7, 8,14, - 17, 8, 5, 7, 4, 5, 7,15,13, 7, 6, 7, 5, 5, 6,14, - 10, 8, 8, 7, 7, 5, 4, 9,10,12,15,14,16,10, 6, 9, -}; - -static static_codebook _huff_book__44u3__long = { - 2, 64, - _huff_lengthlist__44u3__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u3__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,13,14, 7,11,11, - 10,13,11,11,13,14, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,14,14,10,12,14, 8,11,11,11,14,13,11,14, - 13, -}; - -static float _vq_quantthresh__44u3__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u3__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p1_0 = { - _vq_quantthresh__44u3__p1_0, - _vq_quantmap__44u3__p1_0, - 3, - 3 -}; - -static static_codebook _44u3__p1_0 = { - 4, 81, - _vq_lengthlist__44u3__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u3__p1_0, - NULL, - &_vq_auxt__44u3__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u3__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 7, 6, 8, 8, 6, 8, 8, 8, 8, 9, 8, 9, 9, 6, 8, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 8, -}; - -static float _vq_quantthresh__44u3__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u3__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p2_0 = { - _vq_quantthresh__44u3__p2_0, - _vq_quantmap__44u3__p2_0, - 3, - 3 -}; - -static static_codebook _44u3__p2_0 = { - 4, 81, - _vq_lengthlist__44u3__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u3__p2_0, - NULL, - &_vq_auxt__44u3__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u3__p3_0[] = { - 2, 4, 4, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 10, 9,12,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, - 9,11,11, 7, 8, 9,10,11,10,11,10,14,13, 9,10,11, - 13,13, 5, 7, 7,10,10, 7, 9, 8,11,10, 7, 9, 9,11, - 11, 9,10,10,13,12,10,10,11,13,14, 8,10,10,14,13, - 10,11,11,15,13, 9,11,11,14,13,13,14,13,17,15,12, - 13,13,17,14, 8,10,10,14,14, 9,11,11,14,15,10,11, - 12,14,16,12,13,13,14,17,13,13,14,14,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,15, - 14,10,11,11,15,14, 7, 9, 9,12,12, 9,11,11,13,13, - 9,11,11,13,13,11,12,12,15,14,11,12,12,15,16, 7, - 9, 9,12,11, 8,11,10,13,12, 9,11,11,12,13,11,12, - 11,16,14,11,12,13,15,16,10,12,12,17,15,11,12,13, - 16,15,11,12,12,16,16,15,15,15,16,16,13,14,15, 0, - 17, 9,11,11,15,15,10,12,11,16,15,11,12,12,15,17, - 13,15,13,16,15,13,15,14, 0,18, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, - 11,14,15, 7, 9, 9,12,11, 9,11,11,13,12, 8,10,11, - 11,12,11,12,12,16,15,11,11,12,13,14, 7, 9, 9,12, - 12, 9,11,11,13,13, 9,11,11,13,13,11,12,12,16,15, - 12,12,12,15,15, 9,11,11,17,15,11,12,12,17,16,10, - 11,12,15,15,13,14,15,18,17,13,13,14,15,15, 9,12, - 12,15,14,11,13,12,16,16,11,12,12,15,15,13,15,14, - 0, 0,14,15,14,16,18, 8,10,10,15,15,10,12,12,16, - 14,10,11,11,16,16,15,16,16,18,16,13,15,14,17,18, - 9,11,11,16,15,11,12,13,17,17,11,13,13,16,15,15, - 16,16,18,18,14,16,15,18,17, 9,11,11,16,16,10,13, - 12,16,16,11,12,12,16,16,14,16,16,17, 0,14,15,15, - 18,16,12,14,14, 0, 0,14,15,16, 0, 0,14,15,15, 0, - 0,17,17,16, 0, 0,15,16,18,17, 0,11,14,14,18, 0, - 12,15,13, 0,18,13,15,14,18, 0,15,16,15, 0,18,15, - 18,17, 0,18, 8,10,10,15,15,10,12,11,15,15,10,11, - 12,15,15,13,14,15,17, 0,14,15,16,17, 0, 9,11,11, - 15,15,11,12,12,17,15,10,12,13,16,15,13,15,15,18, - 18,15,16,17,18,18, 9,12,11,16,16,11,13,13,16,16, - 11,13,13,18,15,14,15,15,18, 0,16,16,17, 0,17,12, - 13,13,18,18,13,14,14,17,18,13,14,15,18,17,17,18, - 18, 0,18,16,16,18,16, 0,12,15,13,18,18,13,14,15, - 18,18,13,16,14,17,18,15,17,16, 0,18,17, 0,17, 0, - 0, -}; - -static float _vq_quantthresh__44u3__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u3__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p3_0 = { - _vq_quantthresh__44u3__p3_0, - _vq_quantmap__44u3__p3_0, - 5, - 5 -}; - -static static_codebook _44u3__p3_0 = { - 4, 625, - _vq_lengthlist__44u3__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u3__p3_0, - NULL, - &_vq_auxt__44u3__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u3__p4_0[] = { - 4, 6, 6, 9, 9, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 9, - 10, 9,12,11, 9, 9,10,11,12, 6, 7, 7, 9, 9, 7, 7, - 7,10,10, 6, 7, 7, 9,10,10,10,10,12,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 7, 7,10, 9, 7, 7, 7,10, - 10, 9,10, 9,12,11,10,10,10,12,12, 9,10,10,12,12, - 10,10,10,13,12, 9,10,10,12,12,12,12,12,14,14,12, - 12,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10, - 10,12,13,11,12,12,14,13,12,12,12,14,14, 6, 7, 7, - 10, 9, 7, 8, 7,10,10, 7, 7, 7,10,10,10,10,10,12, - 12,10,10,10,12,12, 7, 8, 8,10,10, 8, 8, 8,10,10, - 7, 8, 8,10,10,10,10,11,11,13,10,10,11,12,13, 6, - 7, 7,10,10, 7, 8, 7,10,10, 8, 8, 8,10,10,10,11, - 10,13,11,10,10,10,12,12,10,10,10,13,12,10,10,10, - 12,13,10,10,10,13,12,12,11,13,12,14,12,12,13,14, - 14, 9,10,10,12,13, 9,10,10,12,12,10,10,11,12,13, - 12,12,11,14,12,12,12,13,14,14, 6, 7, 7, 9, 9, 7, - 7, 7,10,10, 7, 7, 8,10,10,10,10,10,12,12,10,10, - 10,12,12, 6, 7, 7,10,10, 8, 8, 8,10,10, 7, 7, 8, - 10,10,10,10,10,12,12,10,10,11,11,13, 7, 8, 8,10, - 10, 7, 8, 8,10,10, 8, 8, 8,10,10,10,10,10,12,12, - 10,11,10,13,11, 9,10,10,13,12,10,11,10,13,12, 9, - 10,10,12,13,12,13,12,14,14,12,11,12,12,14,10,10, - 10,12,13,10,10,11,12,13,10,10,10,12,12,12,13,12, - 14,14,12,12,11,14,12, 9,10, 9,12,12,10,10,10,13, - 13, 9,10,10,13,13,12,13,13,15,14,12,12,13,14,14, - 9,10,10,13,13,10,10,10,12,13,10,10,10,13,12,13, - 12,13,14,15,12,13,13,15,14, 9,10,10,13,12,10,10, - 10,13,12,10,10,10,12,13,12,13,12,14,14,13,12,12, - 14,14,12,12,12,15,14,12,11,12,14,14,12,13,12,14, - 14,14,12,14,12,16,14,14,14,16,16,11,12,12,14,14, - 11,12,11,15,13,12,12,12,14,15,13,14,12,16,13,14, - 14,15,16,16, 9,10,10,12,12, 9,10,10,13,12, 9,10, - 10,13,13,12,12,12,14,14,12,13,13,14,15, 9,10,10, - 13,12,10,11,10,13,12,10,10,10,12,13,12,13,12,14, - 14,12,12,13,14,15, 9,10,10,13,13,10,10,10,12,13, - 10,10,10,13,13,12,13,13,14,15,13,13,12,14,14,11, - 12,12,14,14,12,13,12,15,14,11,11,12,14,15,14,14, - 14,16,16,14,12,14,13,16,12,12,12,14,15,12,12,13, - 14,15,12,12,11,14,14,14,14,14,16,16,14,14,12,16, - 12, -}; - -static float _vq_quantthresh__44u3__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u3__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p4_0 = { - _vq_quantthresh__44u3__p4_0, - _vq_quantmap__44u3__p4_0, - 5, - 5 -}; - -static static_codebook _44u3__p4_0 = { - 4, 625, - _vq_lengthlist__44u3__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u3__p4_0, - NULL, - &_vq_auxt__44u3__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u3__p5_0[] = { - 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 4, 7, 6, 8, 8, - 9, 9, 4, 4, 4, 6, 7, 8, 8, 9, 9, 6, 7, 6, 8, 8, - 9, 9,10,10, 6, 6, 7, 8, 8, 9, 9,10,10, 8, 8, 8, - 9, 9,10,10,11,11, 8, 8, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9,10,10,10,11,11,12, - 12, -}; - -static float _vq_quantthresh__44u3__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u3__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p5_0 = { - _vq_quantthresh__44u3__p5_0, - _vq_quantmap__44u3__p5_0, - 9, - 9 -}; - -static static_codebook _44u3__p5_0 = { - 2, 81, - _vq_lengthlist__44u3__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u3__p5_0, - NULL, - &_vq_auxt__44u3__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u3__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9,10,10,11,13,14, 4, 6, 5, - 8, 8, 9, 9,10,10,11,11,14,14, 4, 5, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 7, 8, 8, 9, 9,10,10,11,11, - 12,12,15,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,14, - 15, 8, 9, 9,10,10,11,11,12,12,13,12,16,16, 8, 9, - 9,10,10,11,11,12,12,12,12,16,16,10,11,10,11,11, - 12,12,13,13,13,13,17,16,10,11,11,11,11,12,12,12, - 12,13,13,17,17,11,11,12,12,12,13,13,13,14,14,14, - 16,17,11,12,11,12,12,13,13,14,14,14,14,19,17,14, - 14,14,16,15,16,16,16,17,17,17,20,19,14,15,15,15, - 15,15,16,16,17,17,17,20,19, -}; - -static float _vq_quantthresh__44u3__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u3__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p6_0 = { - _vq_quantthresh__44u3__p6_0, - _vq_quantmap__44u3__p6_0, - 13, - 13 -}; - -static static_codebook _44u3__p6_0 = { - 2, 169, - _vq_lengthlist__44u3__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u3__p6_0, - NULL, - &_vq_auxt__44u3__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u3__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static float _vq_quantthresh__44u3__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u3__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p6_1 = { - _vq_quantthresh__44u3__p6_1, - _vq_quantmap__44u3__p6_1, - 5, - 5 -}; - -static static_codebook _44u3__p6_1 = { - 2, 25, - _vq_lengthlist__44u3__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u3__p6_1, - NULL, - &_vq_auxt__44u3__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p7_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u3__p7_0[] = { - 1, 4, 4, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, - 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static float _vq_quantthresh__44u3__p7_0[] = { - -892.5, -637.5, -382.5, -127.5, 127.5, 382.5, 637.5, 892.5, -}; - -static long _vq_quantmap__44u3__p7_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p7_0 = { - _vq_quantthresh__44u3__p7_0, - _vq_quantmap__44u3__p7_0, - 9, - 9 -}; - -static static_codebook _44u3__p7_0 = { - 2, 81, - _vq_lengthlist__44u3__p7_0, - 1, -515907584, 1627381760, 4, 0, - _vq_quantlist__44u3__p7_0, - NULL, - &_vq_auxt__44u3__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u3__p7_1[] = { - 1, 4, 4, 6, 5, 7, 7, 9, 8,10,10,11,11,12,13, 4, - 7, 6, 7, 7, 9, 9,10,10,11,11,14,13,14,13, 4, 6, - 7, 7, 8, 9, 9,10,10,12,12,13,13,13,13, 6, 8, 8, - 10, 9,11,11,12,12,13,13,14,14,15,14, 6, 8, 8, 9, - 9,11,11,12,12,14,14,14,15,15,15, 8, 9, 9,11,10, - 13,12,14,14,14,14,15,16,15,15, 8, 9, 9,11,11,12, - 12,14,14,15,14,15,15,14,17, 9,10,10,13,12,14,14, - 15,14,14,17,15,15,16,15, 9,11,11,12,13,14,14,15, - 15,15,16,15,17,16,17,11,12,12,14,14,15,14,16,16, - 16,15,15,17,16,16,11,12,13,14,15,15,15,15,15,16, - 16,17,17,16,17,12,13,13,15,14,15,15,15,15,16,16, - 16,17,17,17,13,12,14,14,15,15,15,15,16,17,17,15, - 17,17,17,12,14,14,16,15,17,16,17,16,17,16,17,17, - 17,17,14,13,14,15,16,17,17,17,15,17,17,17,16,17, - 16, -}; - -static float _vq_quantthresh__44u3__p7_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__44u3__p7_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p7_1 = { - _vq_quantthresh__44u3__p7_1, - _vq_quantmap__44u3__p7_1, - 15, - 15 -}; - -static static_codebook _44u3__p7_1 = { - 2, 225, - _vq_lengthlist__44u3__p7_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__44u3__p7_1, - NULL, - &_vq_auxt__44u3__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u3__p7_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u3__p7_2[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9,10, 9, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9,10,10, 9,10, 9,10,10,10,10,10,10,10,10,10,10, - 9,10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44u3__p7_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u3__p7_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u3__p7_2 = { - _vq_quantthresh__44u3__p7_2, - _vq_quantmap__44u3__p7_2, - 17, - 17 -}; - -static static_codebook _44u3__p7_2 = { - 2, 289, - _vq_lengthlist__44u3__p7_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u3__p7_2, - NULL, - &_vq_auxt__44u3__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u3__short[] = { - 17,17,17,17,17,17,16,16,16,12,11,13,11,12,11,15, - 16, 9, 4, 8, 5, 7, 9,15,16,14, 9,12,10,10,12,16, - 16,11, 4, 9, 3, 4, 8,16,16,12, 6,10, 3, 4, 7,16, - 16,12, 6,11, 3, 3, 4,12,16,16, 7,13, 5, 5, 6,13, -}; - -static static_codebook _huff_book__44u3__short = { - 2, 64, - _huff_lengthlist__44u3__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u4__long[] = { - 3, 7,11,11,12,11,11,12, 5, 3, 5, 7, 8, 8, 9,11, - 9, 4, 4, 6, 6, 7, 9,15,10, 6, 6, 7, 7, 7, 8,14, - 12, 7, 5, 6, 4, 5, 7,15,10, 7, 6, 7, 5, 5, 6,13, - 9, 8, 8, 7, 7, 5, 4, 8,10,12,14,13,14,10, 5, 7, -}; - -static static_codebook _huff_book__44u4__long = { - 2, 64, - _huff_lengthlist__44u4__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u4__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,14,14, 7,11,10, - 10,14,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,14,14,10,12,14, 8,11,11,11,14,14,11,14, - 13, -}; - -static float _vq_quantthresh__44u4__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u4__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p1_0 = { - _vq_quantthresh__44u4__p1_0, - _vq_quantmap__44u4__p1_0, - 3, - 3 -}; - -static static_codebook _44u4__p1_0 = { - 4, 81, - _vq_lengthlist__44u4__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u4__p1_0, - NULL, - &_vq_auxt__44u4__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u4__p2_0[] = { - 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8, - 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10, 9, 8, 8, 9, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static float _vq_quantthresh__44u4__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u4__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p2_0 = { - _vq_quantthresh__44u4__p2_0, - _vq_quantmap__44u4__p2_0, - 3, - 3 -}; - -static static_codebook _44u4__p2_0 = { - 4, 81, - _vq_lengthlist__44u4__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u4__p2_0, - NULL, - &_vq_auxt__44u4__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u4__p3_0[] = { - 2, 4, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 10, 9,12,12, 8, 9, 9,12,12, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 7, 8, 9,10,11,10,11,11,13,13, 9,10,11, - 13,13, 5, 7, 7, 9,10, 7, 9, 9,11,11, 7, 9, 9,11, - 11, 9,11,10,13,12,10,11,11,13,13, 8,10,10,13,13, - 10,11,11,15,13, 9,11,11,14,13,13,15,13,16,15,12, - 13,13,15,15, 8,10,10,13,14, 9,11,11,14,14,10,11, - 12,14,16,12,13,13,14,16,13,14,14,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,15, - 14,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, - 9,11,11,13,13,11,12,13,15,15,11,13,13,16,15, 7, - 9, 9,11,11, 9,11,10,13,12, 9,11,12,13,13,11,13, - 12,16,14,11,13,13,15,16,10,12,12,18,15,11,12,13, - 16,15,11,13,13,17,16,15,15,15,17,17,14,15,16,18, - 19, 9,11,11,15,15,10,12,11,15,16,11,13,13,15,16, - 13,15,13,18,15,14,15,15,17,19, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,12,10,12,11,14,14,10,11, - 12,14,15, 7, 9, 9,11,11, 9,11,11,13,12, 9,10,11, - 12,13,11,13,13,16,17,11,11,13,14,15, 7, 9, 9,12, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,12,15,16, - 11,13,13,16,15, 9,11,11,16,15,11,13,12,16,15,10, - 12,12,16,15,14,15,16,19,17,13,14,15,15,16,10,11, - 12,15,15,11,13,13,16,16,11,13,12,16,17,14,15,15, - 18,17,14,16,14,16,19, 7,10,10,15,14,10,12,12,16, - 15,10,11,11,16,15,14,16,16,19,18,13,15,14,17,17, - 9,11,11,17,16,11,13,14,18,17,11,13,13,16,16,15, - 16,17,19, 0,14,15,18,16,19, 9,11,11,16,15,11,13, - 12,18,16,11,13,13,17,16,14,16,16,17,19,15,16,15, - 18, 0,12,14,15,18,19,13,15,16,19,17,14,16,15,18, - 0,17,16,19, 0,18,16,17,18, 0, 0,11,13,14,18,19, - 13,15,13,19,19,14,15,15,17,17,15,17,15,19,17,16, - 18,18,19, 0, 8,10,10,14,14,10,12,11,15,15,10,11, - 12,15,17,13,15,15,17,16,14,15,15,18, 0, 9,11,11, - 15,15,11,13,13,18,16,10,12,13,16,17,14,15,16,17, - 18,14,15,17,19,19, 9,12,12,15,16,11,13,13,16,17, - 11,14,13,19,16,14,16,15,18,19,15,16,18,19,18,12, - 14,14,19,18,13,15,17,18,17,13,14,15,18, 0,16, 0, - 0,18,18,16,15, 0,17,19,12,15,14,17, 0,13,15,16, - 19,18,13,16,15, 0,19,16,18,16,19,18,17,19,16, 0, - 19, -}; - -static float _vq_quantthresh__44u4__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u4__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p3_0 = { - _vq_quantthresh__44u4__p3_0, - _vq_quantmap__44u4__p3_0, - 5, - 5 -}; - -static static_codebook _44u4__p3_0 = { - 4, 625, - _vq_lengthlist__44u4__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u4__p3_0, - NULL, - &_vq_auxt__44u4__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u4__p4_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 9, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 9, 9, 9,12,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, - 11,12,13,14, 9, 9, 9,11,12, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,14,13,11,12,12,13,13, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 7, 8,10,10, 9,10,10,12, - 12, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,10,11, - 8, 9, 9,11,11,10,10,11,11,13,10,10,11,12,13, 6, - 7, 8,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, - 10,13,11,10,11,11,13,12, 9,10,10,12,12,10,10,11, - 12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14, - 14, 9,10,10,12,12, 9,11,10,13,12,10,11,11,13,13, - 11,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9, 9, 7, - 8, 7,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, - 10,12,12, 6, 8, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,11,11,12,13,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,10,11, 8, 9, 8,11,10,10,11,11,13,12, - 10,11,10,13,11, 9,10,10,13,12,10,11,11,13,13, 9, - 10,10,12,13,12,13,13,15,14,11,11,13,12,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13, - 14,14,12,13,11,15,12, 8, 9, 9,12,12, 9,10,10,13, - 12, 9,10,10,12,12,12,13,12,14,14,11,12,12,14,13, - 9,10,10,12,12,10,10,11,13,13,10,11,11,13,12,12, - 13,13,14,15,12,13,13,15,14, 9,10,10,12,12, 9,11, - 10,13,12,10,10,11,12,13,12,13,12,15,14,12,13,13, - 14,14,11,12,12,14,13,11,11,12,13,14,12,13,13,15, - 14,13,12,14,12,16,14,15,14,16,16,11,12,12,14,14, - 11,12,11,15,13,12,13,13,14,15,13,14,12,16,13,14, - 14,15,16,16, 8, 9, 9,12,12, 9,10,10,12,12, 9,10, - 10,12,13,11,12,12,14,13,12,12,13,14,14, 9,10,10, - 12,12,10,11,11,13,12,10,10,11,12,13,12,13,13,14, - 14,12,12,13,14,15, 9,10,10,12,13,10,11,11,12,13, - 10,11,10,13,13,12,13,13,14,15,12,13,13,15,14,11, - 12,12,14,14,12,13,13,15,14,11,11,12,14,15,14,14, - 14,17,16,13,12,14,13,16,11,12,12,13,15,12,13,13, - 14,15,11,12,11,14,14,14,15,14,15,17,13,14,12,16, - 12, -}; - -static float _vq_quantthresh__44u4__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u4__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p4_0 = { - _vq_quantthresh__44u4__p4_0, - _vq_quantmap__44u4__p4_0, - 5, - 5 -}; - -static static_codebook _44u4__p4_0 = { - 4, 625, - _vq_lengthlist__44u4__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u4__p4_0, - NULL, - &_vq_auxt__44u4__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u4__p5_0[] = { - 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 4, 7, 6, 8, 7, - 10, 9, 4, 4, 5, 6, 7, 7, 8, 9, 9, 6, 7, 6, 8, 8, - 8, 8,10,10, 6, 6, 7, 8, 8, 8, 9,10,10, 7, 8, 7, - 9, 8,10,10,11,11, 7, 7, 8, 8, 9,10,10,11,11, 9, - 10, 9,10,10,11,11,12,12, 9, 9,10,10,10,11,11,12, - 12, -}; - -static float _vq_quantthresh__44u4__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u4__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p5_0 = { - _vq_quantthresh__44u4__p5_0, - _vq_quantmap__44u4__p5_0, - 9, - 9 -}; - -static static_codebook _44u4__p5_0 = { - 2, 81, - _vq_lengthlist__44u4__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u4__p5_0, - NULL, - &_vq_auxt__44u4__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u4__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9,10,10,11,13,13, 4, 6, 5, - 8, 8, 9, 9,10,10,11,11,14,14, 4, 5, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 7, 8, 8, 9, 9,10,10,11,11, - 12,12,15,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, - 15, 8, 9, 9,10,10,11,11,12,12,13,13,16,16, 8, 9, - 9,10,10,11,11,12,12,13,13,16,16,10,10,10,11,11, - 12,12,13,13,14,13,16,16,10,10,11,11,12,12,12,13, - 13,13,14,16,17,11,12,11,12,12,13,13,13,14,14,14, - 17,16,11,11,12,12,12,13,13,14,14,15,14,17,17,14, - 14,14,15,15,16,16,17,17,17,19,19, 0,14,15,15,15, - 15,16,16,16,17,17,19,20,20, -}; - -static float _vq_quantthresh__44u4__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u4__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p6_0 = { - _vq_quantthresh__44u4__p6_0, - _vq_quantmap__44u4__p6_0, - 13, - 13 -}; - -static static_codebook _44u4__p6_0 = { - 2, 169, - _vq_lengthlist__44u4__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u4__p6_0, - NULL, - &_vq_auxt__44u4__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u4__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static float _vq_quantthresh__44u4__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u4__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p6_1 = { - _vq_quantthresh__44u4__p6_1, - _vq_quantmap__44u4__p6_1, - 5, - 5 -}; - -static static_codebook _44u4__p6_1 = { - 2, 25, - _vq_lengthlist__44u4__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u4__p6_1, - NULL, - &_vq_auxt__44u4__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u4__p7_0[] = { - 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4,10, 9, - 11,11,11,11,11,11,11,11,11,11, 4,10,10,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44u4__p7_0[] = { - -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, 382.5, - 637.5, 892.5, 1147.5, 1402.5, -}; - -static long _vq_quantmap__44u4__p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p7_0 = { - _vq_quantthresh__44u4__p7_0, - _vq_quantmap__44u4__p7_0, - 13, - 13 -}; - -static static_codebook _44u4__p7_0 = { - 2, 169, - _vq_lengthlist__44u4__p7_0, - 1, -514332672, 1627381760, 4, 0, - _vq_quantlist__44u4__p7_0, - NULL, - &_vq_auxt__44u4__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u4__p7_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 8,10,10,11,11,12,12, 4, - 7, 6, 8, 7, 9, 9,10,10,11,10,12,11,12,12, 4, 6, - 6, 7, 8, 9, 9,10,10,11,11,12,12,13,13, 6, 8, 8, - 10, 9,11,10,11,11,12,12,14,13,13,13, 6, 8, 8, 9, - 9,11,11,12,12,12,12,13,14,13,14, 8, 9, 9,11,10, - 12,12,13,12,13,14,14,14,14,14, 8, 9, 9,10,11,12, - 11,12,13,13,14,14,13,14,14, 9,10,10,12,12,14,13, - 14,14,15,15,16,15,15,15, 9,10,10,11,12,13,13,13, - 14,15,15,18,16,17,15,10,12,12,13,13,15,14,15,14, - 16,16,16,15,16,15,10,11,11,13,13,14,14,17,16,15, - 16,18,16,15,16,11,12,13,14,13,15,14,15,16,17,15, - 16,16,15,16,11,12,13,14,15,14,16,15,15,16,15,15, - 17,17,17,12,13,13,14,14,14,15,16,14,15,15,16,16, - 16,16,12,13,13,13,14,15,15,15,14,16,16,16,16,16, - 17, -}; - -static float _vq_quantthresh__44u4__p7_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__44u4__p7_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p7_1 = { - _vq_quantthresh__44u4__p7_1, - _vq_quantmap__44u4__p7_1, - 15, - 15 -}; - -static static_codebook _44u4__p7_1 = { - 2, 225, - _vq_lengthlist__44u4__p7_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__44u4__p7_1, - NULL, - &_vq_auxt__44u4__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u4__p7_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u4__p7_2[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 9, 9,10, 9, 9,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, - 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__44u4__p7_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u4__p7_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u4__p7_2 = { - _vq_quantthresh__44u4__p7_2, - _vq_quantmap__44u4__p7_2, - 17, - 17 -}; - -static static_codebook _44u4__p7_2 = { - 2, 289, - _vq_lengthlist__44u4__p7_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u4__p7_2, - NULL, - &_vq_auxt__44u4__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u4__short[] = { - 3, 9,14,12,17,13,13,13, 4, 7, 8, 9,12,10,11,12, - 6, 5, 4, 7, 6, 7, 9,14, 8, 8, 7, 9, 8, 9,10,13, - 9, 8, 5, 7, 3, 5, 8,15, 9, 9, 6, 8, 4, 5, 7,16, - 11,10, 6, 9, 4, 3, 6,15,17,16, 8,11, 5, 5, 7,16, -}; - -static static_codebook _huff_book__44u4__short = { - 2, 64, - _huff_lengthlist__44u4__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u5__long[] = { - 3, 8,13,12,14,13,16,11,12,13, 5, 4, 5, 6, 8, 9, - 10, 9,12,12,10, 5, 4, 6, 6, 8, 9,10,14,16,10, 6, - 6, 6, 6, 7, 9, 8,12,13,13, 7, 5, 6, 4, 6, 6, 7, - 11,16,10, 7, 7, 7, 6, 6, 7, 7,11,14,14, 9, 8, 8, - 5, 6, 6, 7,11,16, 9, 8, 8, 8, 6, 6, 6, 4, 7,12, - 11,10,12,11,10, 9,10, 5, 6,10,10,13,15,15,15,15, - 14, 8, 7, 9, -}; - -static static_codebook _huff_book__44u5__long = { - 2, 100, - _huff_lengthlist__44u5__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u5__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 4, 8, 8, 8,11, - 10, 8,10,10, 8,11,11,10,12,13,10,13,13, 7,10,10, - 9,13,11,10,13,13, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, - 12, -}; - -static float _vq_quantthresh__44u5__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u5__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p1_0 = { - _vq_quantthresh__44u5__p1_0, - _vq_quantmap__44u5__p1_0, - 3, - 3 -}; - -static static_codebook _44u5__p1_0 = { - 4, 81, - _vq_lengthlist__44u5__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u5__p1_0, - NULL, - &_vq_auxt__44u5__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u5__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 7, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 7, 8, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static float _vq_quantthresh__44u5__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u5__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p2_0 = { - _vq_quantthresh__44u5__p2_0, - _vq_quantmap__44u5__p2_0, - 3, - 3 -}; - -static static_codebook _44u5__p2_0 = { - 4, 81, - _vq_lengthlist__44u5__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u5__p2_0, - NULL, - &_vq_auxt__44u5__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u5__p3_0[] = { - 2, 4, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 10, 9,12,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 7, 8, 9,10,11,10,11,11,13,14, 9,10,11, - 13,13, 5, 7, 7, 9, 9, 7, 9, 8,11,10, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,13,14, 8,10,10,13,13, - 10,11,11,15,14, 9,11,11,14,14,13,15,14,18,16,12, - 13,14,16,16, 8,10,10,13,13, 9,11,11,14,14,10,11, - 12,14,15,12,13,13,16,16,13,14,14,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,15, - 14,10,11,11,14,14, 7, 9, 9,12,11, 9,11,11,13,13, - 9,11,11,13,13,12,12,13,15,15,11,12,13,16,15, 6, - 9, 9,11,11, 8,11,10,13,12, 9,10,11,12,14,11,13, - 11,16,14,11,13,13,15,16,10,11,11,15,15,11,12,13, - 16,15,11,13,13,16,16,14,15,15,17,18,14,15,16,17, - 18, 9,11,11,14,15,10,12,11,15,15,11,12,13,15,16, - 13,15,13,17,15,14,15,16,18,19, 5, 7, 7,10,10, 7, - 9, 9,11,11, 7, 9, 9,11,11,10,11,11,15,14,10,11, - 11,14,15, 6, 9, 9,11,11, 9,11,10,13,13, 8,10,11, - 12,13,11,13,13,15,15,11,11,13,13,15, 7, 9, 9,11, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,12,17,16, - 11,13,12,16,15, 9,11,11,15,14,11,13,13,16,16,10, - 11,12,15,15,14,15,15,17,17,13,13,15,15,17,10,11, - 12,15,15,11,13,13,16,19,11,13,12,17,17,14,16,15, - 19,17,14,15,15,18,18, 8,10,10,14,14,10,12,11,16, - 15, 9,11,11,15,16,14,16,15,17,17,13,14,14,18,17, - 9,11,11,16,15,11,13,13,16,18,11,13,13,17,16,15, - 16,17,18, 0,15,15,16, 0,18, 9,11,11,16,15,10,13, - 12,17,15,11,13,13,16,17,14,18,15,19,18,15,16,16, - 19,18,13,15,15,19,17,13,15,15,18,18,14,15,15,19, - 0,17,18, 0,19,19,16,17,17, 0,18,12,14,13,18,17, - 13,15,13,19,18,14,15,15,19,19,16,17,15, 0,17,16, - 19,17,19,18, 8,10,10,14,14,10,11,11,15,15,10,11, - 11,16,16,13,15,15,17,16,14,15,15,18,19, 9,11,11, - 16,15,11,13,13,19,16,10,12,13,15,17,15,15,15,19, - 19,15,16,16,17, 0, 9,11,11,16,16,11,13,13,16,17, - 11,13,13,18,18,14,16,15,18,18,15,17,16,19, 0,12, - 14,14,17,18,13,16,16,18,18,13,14,15,17, 0,16,17, - 17, 0, 0,16,15, 0,19,17,12,15,14,17,18,14,15,16, - 0,18,14,16,16,18, 0,16,17,17, 0, 0,17,19,17,19, - 0, -}; - -static float _vq_quantthresh__44u5__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u5__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p3_0 = { - _vq_quantthresh__44u5__p3_0, - _vq_quantmap__44u5__p3_0, - 5, - 5 -}; - -static static_codebook _44u5__p3_0 = { - 4, 625, - _vq_lengthlist__44u5__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u5__p3_0, - NULL, - &_vq_auxt__44u5__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u5__p4_0[] = { - 4, 6, 6, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10, 9,10,10,11,11, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,12,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,13,11, - 11,12,12,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,13,13,11,12,12,14,13, 6, 7, 7, - 9, 9, 7, 8, 7,10,10, 7, 7, 8, 9,10, 9,10,10,12, - 11, 9,10,10,11,11, 7, 8, 8,10,10, 8, 8, 9,10,11, - 8, 8, 8,11,10,10,10,11,11,12,10,10,11,12,12, 6, - 7, 7,10,10, 7, 8, 8,11,10, 8, 8, 9,10,11,10,11, - 10,13,11,10,10,11,12,12, 9,10,10,12,12,10,10,10, - 12,13,10,11,11,13,13,12,11,12,11,14,12,12,13,13, - 14, 9,10,10,12,12, 9,10,10,12,12,10,10,11,12,13, - 11,12,11,14,12,12,12,12,14,14, 6, 7, 7, 9, 9, 7, - 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,11,11, 9,10, - 10,12,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 8, - 10,11,10,10,11,12,12,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 8, 8,10,11, 8, 9, 8,11,10,10,11,10,12,12, - 10,11,10,12,11, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,12,12,12,12,14,14,11,11,12,12,14, 9,10, - 10,12,12,10,11,11,12,12,10,10,10,12,12,12,13,12, - 14,14,11,12,11,14,11, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,14,14,11,12,12,13,13, - 9,10,10,12,12,10,10,11,12,13,10,11,10,13,12,12, - 12,13,14,14,12,12,12,14,13, 9,10,10,12,12, 9,10, - 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13, - 13,14,11,12,11,14,13,11,11,12,13,14,12,13,12,14, - 14,13,12,14,11,16,13,14,14,16,15,11,11,11,13,13, - 11,12,11,14,13,12,12,13,14,15,12,14,12,16,12,14, - 14,14,16,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,13,13,12,12,12,14,14, 9,10,10, - 12,12,10,11,10,13,12, 9,10,10,12,13,12,12,12,14, - 13,12,12,13,13,15, 9,10,10,12,12,10,10,11,12,13, - 10,11,10,13,12,12,13,12,14,14,12,13,12,14,13,11, - 11,11,13,13,12,13,12,14,14,11,11,12,13,14,13,14, - 14,16,15,13,12,14,12,15,11,12,12,13,14,12,12,13, - 14,14,11,12,11,14,13,13,14,14,15,16,13,14,11,16, - 11, -}; - -static float _vq_quantthresh__44u5__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u5__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p4_0 = { - _vq_quantthresh__44u5__p4_0, - _vq_quantmap__44u5__p4_0, - 5, - 5 -}; - -static static_codebook _44u5__p4_0 = { - 4, 625, - _vq_lengthlist__44u5__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u5__p4_0, - NULL, - &_vq_auxt__44u5__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u5__p5_0[] = { - 2, 4, 3, 6, 6, 8, 7,10,10, 3, 5, 5, 8, 7, 8, 8, - 11,11, 3, 5, 5, 7, 8, 8, 8,10,11, 6, 8, 7, 9, 9, - 10, 9,12,11, 7, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, - 10, 9,11,11,13,12, 8, 8, 8, 9,10,11,12,12,13,10, - 11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14, - 14, -}; - -static float _vq_quantthresh__44u5__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u5__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p5_0 = { - _vq_quantthresh__44u5__p5_0, - _vq_quantmap__44u5__p5_0, - 9, - 9 -}; - -static static_codebook _44u5__p5_0 = { - 2, 81, - _vq_lengthlist__44u5__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u5__p5_0, - NULL, - &_vq_auxt__44u5__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u5__p6_0[] = { - 3, 4, 4, 5, 6, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, - 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,11,11,11, - 11, -}; - -static float _vq_quantthresh__44u5__p6_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u5__p6_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p6_0 = { - _vq_quantthresh__44u5__p6_0, - _vq_quantmap__44u5__p6_0, - 9, - 9 -}; - -static static_codebook _44u5__p6_0 = { - 2, 81, - _vq_lengthlist__44u5__p6_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u5__p6_0, - NULL, - &_vq_auxt__44u5__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u5__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8,11,10, 7, - 10,10, 5, 9, 9, 8,10,10, 8,10,11, 4, 9, 9, 9,11, - 11, 9,12,11, 8,11,11,11,12,12,10,12,12, 7,11,11, - 10,12,12,10,12,12, 4, 9, 9, 9,11,11, 9,11,11, 7, - 11,11,10,12,12,10,11,12, 8,11,11,10,12,12,11,12, - 12, -}; - -static float _vq_quantthresh__44u5__p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44u5__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p7_0 = { - _vq_quantthresh__44u5__p7_0, - _vq_quantmap__44u5__p7_0, - 3, - 3 -}; - -static static_codebook _44u5__p7_0 = { - 4, 81, - _vq_lengthlist__44u5__p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44u5__p7_0, - NULL, - &_vq_auxt__44u5__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u5__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, - 8, 8, 9, 8, 9, 8, 4, 5, 5, 7, 7, 8, 8, 8, 9, 9, - 9, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, - 9, 9, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, - 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, - 9, 9, 9, 9, 9,10,10,10,10, -}; - -static float _vq_quantthresh__44u5__p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u5__p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p7_1 = { - _vq_quantthresh__44u5__p7_1, - _vq_quantmap__44u5__p7_1, - 11, - 11 -}; - -static static_codebook _44u5__p7_1 = { - 2, 121, - _vq_lengthlist__44u5__p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u5__p7_1, - NULL, - &_vq_auxt__44u5__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u5__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, - 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, - 11, 6, 8, 8, 9, 9,10,10,12,11,13,12, 6, 7, 8, 9, - 9,10,10,11,11,12,12, 8, 9, 9,10,10,11,12,12,12, - 14,13, 8, 9, 9,10,10,11,11,12,13,14,13,10,11,10, - 12,12,13,13,14,13,15,14,10,11,11,12,12,12,13,13, - 13,15,15,11,12,12,13,12,13,14,14,14,15,14,11,11, - 12,13,13,13,14,14,14,15,15, -}; - -static float _vq_quantthresh__44u5__p8_0[] = { - -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, 27.5, - 38.5, 49.5, -}; - -static long _vq_quantmap__44u5__p8_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p8_0 = { - _vq_quantthresh__44u5__p8_0, - _vq_quantmap__44u5__p8_0, - 11, - 11 -}; - -static static_codebook _44u5__p8_0 = { - 2, 121, - _vq_lengthlist__44u5__p8_0, - 1, -524582912, 1618345984, 4, 0, - _vq_quantlist__44u5__p8_0, - NULL, - &_vq_auxt__44u5__p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u5__p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, - 8, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u5__p8_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u5__p8_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p8_1 = { - _vq_quantthresh__44u5__p8_1, - _vq_quantmap__44u5__p8_1, - 11, - 11 -}; - -static static_codebook _44u5__p8_1 = { - 2, 121, - _vq_lengthlist__44u5__p8_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u5__p8_1, - NULL, - &_vq_auxt__44u5__p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u5__p9_0[] = { - 1, 3, 3,12,10,12,12,12,12,12,12,12,12, 3, 8, 9, - 12,12,12,12,12,12,12,12,12,12, 4, 9, 9,12,12,12, - 12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12, 9,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static float _vq_quantthresh__44u5__p9_0[] = { - -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, 382.5, - 637.5, 892.5, 1147.5, 1402.5, -}; - -static long _vq_quantmap__44u5__p9_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p9_0 = { - _vq_quantthresh__44u5__p9_0, - _vq_quantmap__44u5__p9_0, - 13, - 13 -}; - -static static_codebook _44u5__p9_0 = { - 2, 169, - _vq_lengthlist__44u5__p9_0, - 1, -514332672, 1627381760, 4, 0, - _vq_quantlist__44u5__p9_0, - NULL, - &_vq_auxt__44u5__p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u5__p9_1[] = { - 1, 4, 4, 7, 7, 8, 9, 7, 7, 8, 8, 9, 9,10,10, 5, - 6, 6, 9, 8,10,10, 9, 8, 9, 9,10, 9,11,10, 4, 6, - 6, 8, 9, 9,10, 8, 9, 9,10,10,10,11,10, 7, 8, 8, - 10,10,11,11,10,10,11,11,11,11,11,11, 7, 8, 8,10, - 10,11,11,10,10,11,11,11,11,11,12, 8, 9,10,11,10, - 12,12,11,11,11,11,12,12,12,13, 8, 9, 9,11,11,11, - 12,11,11,11,11,12,12,12,12, 8, 9, 9,10,10,11,11, - 12,11,12,12,12,13,13,13, 8, 9, 9,10,10,11,11,12, - 11,12,12,13,13,12,13, 9,10,10,11,11,12,11,12,13, - 14,14,15,15,15,14, 9,10,10,11,11,12,12,12,12,13, - 13,14,14,14,14, 9,10,11,12,11,12,13,14,13,14,13, - 14,14,14,14, 9,11,11,11,11,12,13,13,13,14,13,15, - 15,14,14,10,11,11,12,12,13,13,13,13,14,14,14,15, - 15,15,10,11,11,12,12,12,13,13,13,15,14,15,14,14, - 14, -}; - -static float _vq_quantthresh__44u5__p9_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__44u5__p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p9_1 = { - _vq_quantthresh__44u5__p9_1, - _vq_quantmap__44u5__p9_1, - 15, - 15 -}; - -static static_codebook _44u5__p9_1 = { - 2, 225, - _vq_lengthlist__44u5__p9_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__44u5__p9_1, - NULL, - &_vq_auxt__44u5__p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u5__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u5__p9_2[] = { - 3, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10, 9,10,10,10,10, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9,10, - 9, 9, 9, 9, 9, 9, 9,10, 9,10, 9, 9, 9,10,10, 9, - 9, -}; - -static float _vq_quantthresh__44u5__p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u5__p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u5__p9_2 = { - _vq_quantthresh__44u5__p9_2, - _vq_quantmap__44u5__p9_2, - 17, - 17 -}; - -static static_codebook _44u5__p9_2 = { - 2, 289, - _vq_lengthlist__44u5__p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u5__p9_2, - NULL, - &_vq_auxt__44u5__p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u5__short[] = { - 4,11,16,14,18,15,18,15,17,17, 4, 6, 9, 9,12, 9, - 14,10,14,17, 6, 6, 5, 7, 6, 8,10,10,16,17, 7, 8, - 7, 9, 9,10,12,12,14,17, 8, 6, 5, 7, 4, 7, 5, 7, - 14,17, 9, 9, 8, 9, 7,10, 8,10,14,17,11, 9, 7, 9, - 4, 7, 3, 6,15,17,11,10,10,10, 6, 9, 5, 6,14,17, - 17,17,10,15, 4, 8, 3, 5,12,17,17,17,12,16, 7,11, - 6, 8,16,17, -}; - -static static_codebook _huff_book__44u5__short = { - 2, 100, - _huff_lengthlist__44u5__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u6__long[] = { - 3, 9,14,13,15,13,16,12,12,12, 5, 4, 6, 7, 8, 9, - 10,10,13,12,10, 5, 5, 6, 6, 9, 9,10,14,14,10, 6, - 6, 7, 6, 8, 9, 9,13,12,13, 7, 5, 6, 4, 6, 6, 7, - 11,15,10, 8, 7, 7, 6, 7, 7, 7,11,13,16,10, 8, 8, - 5, 6, 4, 6,10,14, 9, 9, 9, 8, 6, 6, 5, 4, 7,11, - 11,11,12,11,10, 9, 9, 5, 5, 9,10,13,14,14,14,14, - 15, 8, 7, 8, -}; - -static static_codebook _huff_book__44u6__long = { - 2, 100, - _huff_lengthlist__44u6__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u6__p1_0[] = { - 1, 4, 4, 4, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,11, - 10, 8,10,10, 8,11,10,10,12,13,10,13,13, 7,10,10, - 10,13,11,10,13,13, 5, 8, 8, 8,11,10, 8,10,10, 7, - 10,10,10,13,13, 9,11,13, 8,10,11,10,13,13,10,13, - 12, -}; - -static float _vq_quantthresh__44u6__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u6__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p1_0 = { - _vq_quantthresh__44u6__p1_0, - _vq_quantmap__44u6__p1_0, - 3, - 3 -}; - -static static_codebook _44u6__p1_0 = { - 4, 81, - _vq_lengthlist__44u6__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u6__p1_0, - NULL, - &_vq_auxt__44u6__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u6__p2_0[] = { - 3, 5, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, - 7, 6, 7, 8, 6, 8, 8, 8, 8, 9, 8, 9, 9, 6, 7, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 7, 8, 6, - 7, 7, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 8, -}; - -static float _vq_quantthresh__44u6__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u6__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p2_0 = { - _vq_quantthresh__44u6__p2_0, - _vq_quantmap__44u6__p2_0, - 3, - 3 -}; - -static static_codebook _44u6__p2_0 = { - 4, 81, - _vq_lengthlist__44u6__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u6__p2_0, - NULL, - &_vq_auxt__44u6__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u6__p3_0[] = { - 2, 4, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 10, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 7, 8, 9,10,11,10,11,11,13,14, 9,10,11, - 13,13, 5, 7, 7, 9, 9, 7, 9, 8,11,10, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,14,13, 8,10,10,14,13, - 10,12,11,15,14, 9,11,11,15,14,13,15,14,20,16,13, - 13,14,16,16, 8,10,10,13,14, 9,11,11,14,15,10,11, - 12,14,15,13,13,14,16,16,13,14,14,16,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,15, - 14,10,11,11,14,14, 7, 9, 9,12,11, 9,11,11,12,13, - 9,11,11,13,13,11,12,13,14,16,11,12,13,16,16, 6, - 9, 8,11,11, 8,11,10,13,12, 9,10,11,12,13,11,13, - 11,15,14,11,13,13,15,15,10,12,11,15,14,11,12,13, - 17,16,11,13,13,16,17,14,15,16,17,17,14,15,16,20, - 0, 9,11,11,14,15,10,13,12,16,16,11,13,13,17,17, - 13,15,14,17,15,15,16,16, 0, 0, 5, 7, 7,10,10, 7, - 9, 9,11,11, 7, 8, 9,11,11,10,11,11,14,14,10,11, - 11,14,14, 6, 9, 9,11,11, 9,11,11,14,12, 8,10,11, - 12,13,11,13,13,16,16,11,11,13,14,16, 7, 9, 9,11, - 12, 9,11,11,13,13, 9,11,11,13,12,11,13,12,16,16, - 12,13,12,16,14, 9,11,11,16,15,11,13,13,17,15,10, - 12,12,15,16,14,16,16, 0,17,13,14,15,15,17,10,11, - 12,15,15,11,13,13,17,17,11,13,13,15,16,14,15,15, - 19,18,14,15,15,19,16, 8,10,10,14,14,10,12,11,15, - 16,10,11,11,15,17,13,16,15,19,19,13,15,14,17,17, - 9,11,12,15,16,11,13,13,18,19,11,13,13,16,17,16, - 16,17, 0, 0,15,15,16, 0,19, 9,11,11,15,16,10,13, - 12,17,15,11,13,13,16,17,14,17,15,18,17,15,16,15, - 18, 0,13,14,15, 0,19,14,16,16, 0,17,15,16,16, 0, - 17,16,17, 0, 0, 0,16,17,19, 0, 0,12,14,14,17,17, - 13,15,13, 0,19,14,16,16,18,19,16,18,15,19,18,17, - 18,17,19, 0, 8,10,10,14,13,10,11,11,16,15,10,11, - 11,15,15,13,15,15,19,18,14,15,16, 0,18, 9,11,11, - 15,14,11,13,13, 0,16,10,12,13,15,17,14,16,16, 0, - 18,15,16,17,17, 0, 9,11,11,16,15,11,13,13,16,16, - 11,14,13,18,18,15,17,15,18,17,15,16,18, 0, 0,12, - 14,14,18,19,14,15,16, 0,18,13,14,15,18, 0,17,17, - 17, 0, 0,16,15,18,17, 0,12,14,15,17,19,14,16,16, - 19, 0,14,17,16, 0,18,17,19,17, 0, 0,16,18,17, 0, - 17, -}; - -static float _vq_quantthresh__44u6__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u6__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p3_0 = { - _vq_quantthresh__44u6__p3_0, - _vq_quantmap__44u6__p3_0, - 5, - 5 -}; - -static static_codebook _44u6__p3_0 = { - 4, 625, - _vq_lengthlist__44u6__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u6__p3_0, - NULL, - &_vq_auxt__44u6__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u6__p4_0[] = { - 4, 6, 6, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, - 9,10,10,12,12, 9, 9,10,12,12,11,12,12,13,13,11, - 11,12,12,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,13,13,11,12,12,13,13, 6, 7, 7, - 9, 9, 7, 8, 7,10, 9, 7, 7, 8, 9,10, 9,10,10,12, - 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 8, 9,10,10, - 8, 8, 8,10,10,10,10,11,12,12,10,10,11,12,12, 6, - 7, 7,10,10, 7, 8, 8,11,10, 8, 8, 9,10,11,10,11, - 10,12,11,10,10,11,12,12, 9,10,10,12,12,10,10,11, - 12,12,10,11,10,13,12,12,12,12,12,14,12,12,12,13, - 14, 9,10,10,12,12, 9,10,10,12,12,10,10,11,12,13, - 11,12,11,14,12,12,12,13,14,14, 6, 7, 7, 9, 9, 7, - 8, 7,10, 9, 7, 7, 8,10,10, 9,10,10,12,11, 9,10, - 10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 8, - 10,10,10,10,11,12,12,10,10,10,11,12, 7, 8, 8,10, - 10, 8, 8, 8,10,10, 8, 8, 8,10,10,10,11,10,12,12, - 10,11,10,12,11, 9,10,10,12,12,10,11,10,13,12, 9, - 10,10,12,12,12,12,12,14,14,11,11,12,12,13, 9,10, - 10,12,12,10,11,11,12,12,10,11,10,12,12,12,12,12, - 14,14,12,12,12,14,12, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,13,13,11,12,12,13,13, - 9,10,10,12,12,10,10,11,12,13,10,11,10,12,12,12, - 12,13,13,14,12,12,12,14,14, 9,10,10,12,12, 9,10, - 10,12,12,10,10,10,12,12,12,12,12,14,13,12,12,12, - 14,14,11,12,12,13,13,11,12,12,14,14,12,12,12,14, - 14,13,12,14,12,15,13,14,14,15,15,11,11,11,13,13, - 11,12,11,14,13,12,12,12,14,14,12,14,12,15,12,13, - 14,14,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,13,13,11,12,12,13,14, 9,10,10, - 12,12,10,11,10,13,12, 9,10,10,12,13,12,12,12,15, - 14,12,12,13,13,14, 9,10,10,12,12,10,10,11,12,12, - 10,11,10,12,12,12,13,12,14,14,12,13,12,14,13,11, - 11,11,13,13,12,12,12,14,13,11,11,12,13,14,13,14, - 14,15,15,12,12,14,12,15,11,12,12,13,14,12,12,12, - 14,14,11,12,12,14,14,13,14,14,15,15,13,14,12,16, - 12, -}; - -static float _vq_quantthresh__44u6__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u6__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p4_0 = { - _vq_quantthresh__44u6__p4_0, - _vq_quantmap__44u6__p4_0, - 5, - 5 -}; - -static static_codebook _44u6__p4_0 = { - 4, 625, - _vq_lengthlist__44u6__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u6__p4_0, - NULL, - &_vq_auxt__44u6__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u6__p5_0[] = { - 2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, - 11,11, 3, 5, 5, 7, 8, 8, 8,11,11, 6, 8, 7,10, 9, - 10, 9,12,12, 6, 7, 8, 9,10, 9,10,12,12, 8, 8, 8, - 10, 9,12,11,13,13, 8, 8, 8, 9,10,11,12,12,13,10, - 11,11,12,11,13,12,14,14,10,10,11,11,12,13,13,14, - 14, -}; - -static float _vq_quantthresh__44u6__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u6__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p5_0 = { - _vq_quantthresh__44u6__p5_0, - _vq_quantmap__44u6__p5_0, - 9, - 9 -}; - -static static_codebook _44u6__p5_0 = { - 2, 81, - _vq_lengthlist__44u6__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u6__p5_0, - NULL, - &_vq_auxt__44u6__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u6__p6_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, - 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,11,11,11, 9, 9, 9,10,10,10,11,11, - 11, -}; - -static float _vq_quantthresh__44u6__p6_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u6__p6_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p6_0 = { - _vq_quantthresh__44u6__p6_0, - _vq_quantmap__44u6__p6_0, - 9, - 9 -}; - -static static_codebook _44u6__p6_0 = { - 2, 81, - _vq_lengthlist__44u6__p6_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u6__p6_0, - NULL, - &_vq_auxt__44u6__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u6__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8,11,10, 8, - 11,10, 5, 8, 9, 7,10,10, 8,10,11, 4, 9, 9, 9,12, - 11, 9,11,12, 8,11,12,11,12,13,10,13,12, 7,12,11, - 10,12,12,10,13,13, 4, 9, 9, 8,11,11, 9,11,12, 7, - 12,12,10,13,13,10,12,13, 8,12,12,10,13,13,11,13, - 12, -}; - -static float _vq_quantthresh__44u6__p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44u6__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p7_0 = { - _vq_quantthresh__44u6__p7_0, - _vq_quantmap__44u6__p7_0, - 3, - 3 -}; - -static static_codebook _44u6__p7_0 = { - 4, 81, - _vq_lengthlist__44u6__p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44u6__p7_0, - NULL, - &_vq_auxt__44u6__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u6__p7_1[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, - 8, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, 7, 8, 8, 8, 8, - 8, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 6, 6, 7, 7, - 7, 8, 8, 9, 9, 9, 9, 7, 8, 7, 8, 8, 9, 9, 9, 9, - 9, 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 8, 8, - 8, 9, 9, 9, 9, 9, 9,10,10, -}; - -static float _vq_quantthresh__44u6__p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u6__p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p7_1 = { - _vq_quantthresh__44u6__p7_1, - _vq_quantmap__44u6__p7_1, - 11, - 11 -}; - -static static_codebook _44u6__p7_1 = { - 2, 121, - _vq_lengthlist__44u6__p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u6__p7_1, - NULL, - &_vq_auxt__44u6__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u6__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, - 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, - 11, 6, 8, 8, 9, 9,10,10,11,11,12,12, 6, 8, 8, 9, - 9,10,10,11,11,12,12, 8, 9, 9,10,10,11,11,12,12, - 13,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,10,10, - 11,11,12,12,13,13,14,14,10,10,10,11,11,12,13,13, - 13,14,14,11,12,12,13,13,13,13,14,14,15,14,11,11, - 11,13,13,14,13,14,14,15,14, -}; - -static float _vq_quantthresh__44u6__p8_0[] = { - -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, 27.5, - 38.5, 49.5, -}; - -static long _vq_quantmap__44u6__p8_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p8_0 = { - _vq_quantthresh__44u6__p8_0, - _vq_quantmap__44u6__p8_0, - 11, - 11 -}; - -static static_codebook _44u6__p8_0 = { - 2, 121, - _vq_lengthlist__44u6__p8_0, - 1, -524582912, 1618345984, 4, 0, - _vq_quantlist__44u6__p8_0, - NULL, - &_vq_auxt__44u6__p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u6__p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 6, - 7, 7, 7, 7, 8, 8, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, - 8, 6, 7, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u6__p8_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u6__p8_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p8_1 = { - _vq_quantthresh__44u6__p8_1, - _vq_quantmap__44u6__p8_1, - 11, - 11 -}; - -static static_codebook _44u6__p8_1 = { - 2, 121, - _vq_lengthlist__44u6__p8_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u6__p8_1, - NULL, - &_vq_auxt__44u6__p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u6__p9_0[] = { - 1, 3, 3,10,12,13,13,13,13,13,13,13,13,13,13, 3, - 9, 9,13,13,13,13,13,13,13,13,13,13,12,12, 4, 9, - 9,12,12,12,12,12,12,12,12,12,12,12,12, 9,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12, 9,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12, -}; - -static float _vq_quantthresh__44u6__p9_0[] = { - -1657.5, -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, - 382.5, 637.5, 892.5, 1147.5, 1402.5, 1657.5, -}; - -static long _vq_quantmap__44u6__p9_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p9_0 = { - _vq_quantthresh__44u6__p9_0, - _vq_quantmap__44u6__p9_0, - 15, - 15 -}; - -static static_codebook _44u6__p9_0 = { - 2, 225, - _vq_lengthlist__44u6__p9_0, - 1, -514071552, 1627381760, 4, 0, - _vq_quantlist__44u6__p9_0, - NULL, - &_vq_auxt__44u6__p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u6__p9_1[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 5, - 6, 6, 8, 8,10,10, 9, 9,10, 9,10, 9,10,10, 4, 6, - 6, 8, 9,10,10, 8, 9, 9,10,10,10,10,10, 7, 9, 8, - 10,10,11,11,10,10,11,11,11,11,12,12, 7, 8, 8,10, - 10,11,11,10,10,10,11,11,11,11,12, 8,10,10,11,11, - 12,12,11,11,11,11,12,12,12,13, 8, 9, 9,11,11,12, - 12,11,11,12,12,12,12,12,12, 8, 9, 9,10,10,11,11, - 13,12,13,12,13,13,13,13, 8, 9, 9,10,10,11,11,12, - 12,12,12,13,12,13,12, 9,10,10,11,11,12,12,13,13, - 14,12,13,13,14,13, 9,10,10,11,11,12,12,12,12,13, - 13,13,13,14,14, 9,11,10,11,11,12,13,13,12,13,13, - 15,13,14,14, 9,10,10,11,12,12,13,13,13,13,13,14, - 14,14,14,10,11,11,12,12,13,12,13,13,14,14,14,14, - 14,15,10,11,11,11,12,13,13,13,13,14,14,14,14,14, - 14, -}; - -static float _vq_quantthresh__44u6__p9_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__44u6__p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p9_1 = { - _vq_quantthresh__44u6__p9_1, - _vq_quantmap__44u6__p9_1, - 15, - 15 -}; - -static static_codebook _44u6__p9_1 = { - 2, 225, - _vq_lengthlist__44u6__p9_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__44u6__p9_1, - NULL, - &_vq_auxt__44u6__p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u6__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u6__p9_2[] = { - 3, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9,10,10, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10, 9, 9, 9,10, - 9, -}; - -static float _vq_quantthresh__44u6__p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u6__p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u6__p9_2 = { - _vq_quantthresh__44u6__p9_2, - _vq_quantmap__44u6__p9_2, - 17, - 17 -}; - -static static_codebook _44u6__p9_2 = { - 2, 289, - _vq_lengthlist__44u6__p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u6__p9_2, - NULL, - &_vq_auxt__44u6__p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u6__short[] = { - 5,11,15,14,17,14,17,15,17,17, 4, 6, 9, 9,14, 9, - 17,10,15,17, 6, 6, 5, 7, 7, 9,11,10,15,17, 6, 8, - 8,10, 9,11,14,13,16,17, 7, 6, 5, 7, 5, 7, 5, 8, - 15,17, 9, 8, 8, 9, 8,10,10,11,14,17,10, 8, 7, 9, - 4, 7, 3, 5,11,17,10,10,10,10, 6, 9, 4, 5,11,17, - 16,16,13,15, 5,10, 4, 3, 9,16,17,17,14,17, 7,11, - 6, 6,11,17, -}; - -static static_codebook _huff_book__44u6__short = { - 2, 100, - _huff_lengthlist__44u6__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u7__long[] = { - 3, 9,15,13,16,13,16,12,12,12, 5, 5, 7, 8, 8,10, - 11,10,13,13,10, 5, 5, 6, 6, 9, 9,10,14,14, 9, 6, - 6, 7, 6, 8, 9,10,13,12,13, 7, 5, 6, 4, 6, 6, 8, - 12,13,11, 8, 7, 8, 6, 7, 7, 7,11,13,15,10, 8, 8, - 5, 6, 4, 5, 9,13, 9, 9, 8, 9, 7, 7, 4, 4, 6,11, - 11,11,12,12,10,10, 8, 5, 5, 9,10,12,13,15,13,13, - 12, 7, 6, 8, -}; - -static static_codebook _huff_book__44u7__long = { - 2, 100, - _huff_lengthlist__44u7__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u7__p1_0[] = { - 1, 4, 4, 5, 7, 7, 4, 7, 7, 5, 8, 8, 8,10,10, 7, - 10,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,11, - 10, 8,10,10, 8,11,10,10,12,13,11,13,13, 7,10,10, - 10,13,11,11,13,13, 5, 8, 8, 8,11,10, 8,10,10, 7, - 10,10,11,13,13,10,11,13, 8,11,11,10,13,13,10,13, - 12, -}; - -static float _vq_quantthresh__44u7__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u7__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p1_0 = { - _vq_quantthresh__44u7__p1_0, - _vq_quantmap__44u7__p1_0, - 3, - 3 -}; - -static static_codebook _44u7__p1_0 = { - 4, 81, - _vq_lengthlist__44u7__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u7__p1_0, - NULL, - &_vq_auxt__44u7__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u7__p2_0[] = { - 3, 5, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 7, 5, 6, 6, 6, 7, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 7, 6, 7, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 7, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 7, 8, 6, - 7, 7, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static float _vq_quantthresh__44u7__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u7__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p2_0 = { - _vq_quantthresh__44u7__p2_0, - _vq_quantmap__44u7__p2_0, - 3, - 3 -}; - -static static_codebook _44u7__p2_0 = { - 4, 81, - _vq_lengthlist__44u7__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u7__p2_0, - NULL, - &_vq_auxt__44u7__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u7__p3_0[] = { - 2, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 9, 9,12,12, 8, 9, 9,12,12, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 6, 8, 9,10,11,10,11,11,13,14, 9,10,11, - 13,13, 5, 7, 7, 9, 9, 6, 9, 8,11,10, 7, 9, 9,11, - 11, 9,11,10,13,13,10,11,11,14,13, 8,10,10,14,13, - 10,11,11,16,14, 9,11,11,14,14,13,15,14,17,16,12, - 13,14,16,15, 8, 9,10,13,14, 9,11,11,14,14,10,11, - 11,14,15,13,13,14,17,17,13,14,15,16,17, 5, 7, 7, - 10,10, 7, 9, 8,11,11, 7, 8, 9,11,11,10,11,11,14, - 14,10,11,11,14,14, 7, 9, 9,11,11, 9,11,11,13,13, - 9,11,11,13,13,11,12,13,15,17,11,12,13,16,18, 6, - 8, 8,11,11, 8,10,10,13,12, 9,11,11,12,13,11,13, - 11,16,14,11,13,12,16,16,10,11,11,15,15,11,13,13, - 16,16,11,13,13,18,16,14,14,15,17,16,14,15,17,19, - 0, 9,11,11,14,15,10,12,12,15,17,11,13,13,15,17, - 14,15,13, 0,15,15,17,16,18, 0, 5, 7, 7, 9,10, 7, - 9, 9,11,11, 7, 8, 9,11,11,10,11,11,14,14,10,11, - 11,14,14, 6, 8, 9,11,11, 9,11,11,14,13, 8,10,10, - 11,14,11,13,13,17,15,11,12,13,14,16, 7, 9, 9,11, - 11, 9,11,11,13,12, 9,11,11,12,13,11,13,12,15,15, - 11,13,12,16,15, 9,11,11,15,15,11,12,13,16,15,10, - 11,12,16,15,15,16,16, 0, 0,14,13,15,16,19, 9,11, - 12,15,15,11,13,13,17,16,11,13,12,15,17,14,16,16, - 18, 0,15,15,16,18,17, 8,10,10,13,14,10,11,11,15, - 16,10,11,11,15,16,14,15,15,17,19,14,14,15,19,19, - 9,11,11,16,15,11,13,13,17,17,11,13,13,17,17,15, - 17,16, 0, 0,15,17,17, 0,17, 9,11,11,15,15,11,13, - 12,16,16,11,13,13,18,17,15,16,15,19,19,14,16,18, - 17,19,13,15,15, 0,18,14,16,17,17,18,14,16,16,19, - 19,18,19,19, 0, 0,16,17,18,19, 0,12,14,14,16,18, - 13,16,14, 0,19,14,16,17,19, 0,16,19,16,19,17,17, - 18,18, 0, 0, 8,10,10,14,13, 9,11,11,15,14,10,11, - 12,14,16,13,15,14,19,19,14,16,16,18,17, 9,11,11, - 16,15,11,13,13, 0,17,10,12,13,15,16,15,18,16,19, - 19,14,15,16,18,18, 9,11,12,15,15,11,13,13,17,19, - 11,13,13,17,17,15,17,16,19,19,15,17,16, 0, 0,12, - 14,14, 0,19,14,16,15, 0,19,13,14,16,19, 0,16,18, - 18, 0, 0,16,16,17,17, 0,13,14,14,17, 0,14,17,16, - 0,19,14,16,16,19,18,17,19,17, 0, 0,18,18,17, 0, - 0, -}; - -static float _vq_quantthresh__44u7__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u7__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p3_0 = { - _vq_quantthresh__44u7__p3_0, - _vq_quantmap__44u7__p3_0, - 5, - 5 -}; - -static static_codebook _44u7__p3_0 = { - 4, 625, - _vq_lengthlist__44u7__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u7__p3_0, - NULL, - &_vq_auxt__44u7__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u7__p4_0[] = { - 5, 6, 6, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 7,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 6, 7, 7,10, 9, 7, 7, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, - 9,10,10,12,12, 9,10,10,11,12,11,12,12,13,13,11, - 11,12,12,13, 8, 9, 9,11,11, 9,10,10,12,11, 9,10, - 10,12,12,11,12,11,13,12,11,12,12,13,14, 6, 7, 7, - 9, 9, 7, 8, 7,10, 9, 7, 7, 8, 9,10, 9,10,10,12, - 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 8, 8,10,10, - 8, 8, 8,10,10,10,10,11,12,12,10,10,11,12,12, 6, - 7, 7,10,10, 7, 8, 8,10,10, 8, 8, 8,10,11, 9,10, - 10,12,11,10,10,11,12,12, 9,10,10,12,12,10,10,10, - 12,12,10,11,10,12,12,12,12,12,13,14,12,12,12,13, - 14, 9,10,10,11,12, 9,10,10,12,12,10,10,11,12,12, - 11,12,11,14,12,12,12,12,14,14, 6, 7, 7, 9, 9, 7, - 8, 7,10, 9, 7, 7, 8, 9,10, 9,10,10,12,11, 9,10, - 10,11,12, 6, 7, 7,10,10, 8, 8, 8,11,10, 7, 8, 8, - 10,10,10,10,10,12,12,10,10,10,11,12, 7, 8, 8,10, - 10, 8, 8, 8,10,10, 8, 8, 8,10,10,10,11,10,12,12, - 10,11,10,12,12, 9,10,10,12,12,10,11,10,13,12, 9, - 10,10,12,12,12,12,12,14,14,11,11,12,12,14, 9,10, - 10,12,12,10,10,10,12,12,10,11,10,12,12,12,12,12, - 14,14,12,12,12,14,13, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,13, - 9,10,10,12,12,10,10,10,12,12,10,11,11,12,12,12, - 12,13,14,14,12,12,12,14,14, 9,10, 9,12,12, 9,10, - 10,12,12,10,10,11,12,12,12,12,11,14,13,12,12,12, - 13,14,11,12,12,13,13,12,12,12,14,14,12,13,12,14, - 14,13,13,14,13,15,14,14,14,15,15,11,11,11,13,13, - 11,12,11,14,13,12,12,12,14,14,12,13,12,15,12,13, - 14,14,15,15, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,13,13,11,12,12,13,14, 9,10,10, - 12,11,10,10,10,12,12, 9,10,10,12,12,12,13,12,14, - 13,11,12,12,13,14, 9,10,10,12,12,10,10,10,12,12, - 10,11,11,12,12,12,12,12,14,14,12,13,12,14,13,11, - 11,11,13,13,12,12,12,14,13,11,11,12,13,14,13,14, - 14,15,15,13,12,13,12,15,11,12,12,13,14,12,12,12, - 14,14,11,12,12,14,14,13,14,14,15,15,13,14,13,15, - 13, -}; - -static float _vq_quantthresh__44u7__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u7__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p4_0 = { - _vq_quantthresh__44u7__p4_0, - _vq_quantmap__44u7__p4_0, - 5, - 5 -}; - -static static_codebook _44u7__p4_0 = { - 4, 625, - _vq_lengthlist__44u7__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u7__p4_0, - NULL, - &_vq_auxt__44u7__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u7__p5_0[] = { - 2, 3, 3, 6, 6, 8, 8,10,10, 3, 5, 5, 8, 7, 8, 8, - 11,11, 4, 5, 5, 7, 8, 8, 8,11,11, 6, 8, 7, 9, 9, - 10, 9,12,12, 6, 7, 8, 9,10, 9,10,12,12, 8, 8, 8, - 10, 9,12,11,13,13, 8, 8, 8, 9,10,11,12,13,13,10, - 11,11,12,11,13,13,14,14,10,11,11,12,12,13,13,14, - 14, -}; - -static float _vq_quantthresh__44u7__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u7__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p5_0 = { - _vq_quantthresh__44u7__p5_0, - _vq_quantmap__44u7__p5_0, - 9, - 9 -}; - -static static_codebook _44u7__p5_0 = { - 2, 81, - _vq_lengthlist__44u7__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u7__p5_0, - NULL, - &_vq_auxt__44u7__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u7__p6_0[] = { - 4, 4, 4, 5, 5, 7, 7, 9, 9, 4, 4, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 5, 6, 6, 6, 7, 8, 8, 9, 9, 7, 7, 7, - 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,10, 9, - 9, 9,10, 9,10,10,11,11, 9, 9, 9, 9,10,10,10,11, - 11, -}; - -static float _vq_quantthresh__44u7__p6_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u7__p6_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p6_0 = { - _vq_quantthresh__44u7__p6_0, - _vq_quantmap__44u7__p6_0, - 9, - 9 -}; - -static static_codebook _44u7__p6_0 = { - 2, 81, - _vq_lengthlist__44u7__p6_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u7__p6_0, - NULL, - &_vq_auxt__44u7__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u7__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8,10,10, 8, - 10,10, 5, 8, 9, 8,10,10, 8,10,10, 4, 9, 9, 9,11, - 12, 8,12,11, 8,12,11,11,12,13,10,13,13, 7,12,11, - 10,13,12,10,13,13, 4, 9, 9, 8,11,12, 9,11,12, 7, - 11,12,10,13,13,10,12,13, 8,11,12,10,13,13,10,13, - 12, -}; - -static float _vq_quantthresh__44u7__p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44u7__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p7_0 = { - _vq_quantthresh__44u7__p7_0, - _vq_quantmap__44u7__p7_0, - 3, - 3 -}; - -static static_codebook _44u7__p7_0 = { - 4, 81, - _vq_lengthlist__44u7__p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44u7__p7_0, - NULL, - &_vq_auxt__44u7__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u7__p7_1[] = { - 3, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8, 6, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 6, 6, 6, 7, - 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 8, 7, 8, 8, 9, 9, - 9, 9, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__44u7__p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u7__p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p7_1 = { - _vq_quantthresh__44u7__p7_1, - _vq_quantmap__44u7__p7_1, - 11, - 11 -}; - -static static_codebook _44u7__p7_1 = { - 2, 121, - _vq_lengthlist__44u7__p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u7__p7_1, - NULL, - &_vq_auxt__44u7__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u7__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, - 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, - 11, 6, 8, 8, 9, 9,10,10,11,11,12,12, 6, 8, 8, 9, - 9,10,10,11,11,12,12, 8, 9, 9,10,10,11,11,12,12, - 14,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,10,10, - 11,11,12,12,13,13,14,14,10,10,10,11,11,12,13,13, - 13,14,14,11,12,11,13,12,13,14,14,14,15,15,11,11, - 12,13,13,13,13,14,14,15,15, -}; - -static float _vq_quantthresh__44u7__p8_0[] = { - -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, 27.5, - 38.5, 49.5, -}; - -static long _vq_quantmap__44u7__p8_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p8_0 = { - _vq_quantthresh__44u7__p8_0, - _vq_quantmap__44u7__p8_0, - 11, - 11 -}; - -static static_codebook _44u7__p8_0 = { - 2, 121, - _vq_lengthlist__44u7__p8_0, - 1, -524582912, 1618345984, 4, 0, - _vq_quantlist__44u7__p8_0, - NULL, - &_vq_auxt__44u7__p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u7__p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 6, - 7, 7, 7, 7, 8, 8, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, - 8, 6, 7, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u7__p8_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u7__p8_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p8_1 = { - _vq_quantthresh__44u7__p8_1, - _vq_quantmap__44u7__p8_1, - 11, - 11 -}; - -static static_codebook _44u7__p8_1 = { - 2, 121, - _vq_lengthlist__44u7__p8_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u7__p8_1, - NULL, - &_vq_auxt__44u7__p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p9_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u7__p9_0[] = { - 1, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 5, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u7__p9_0[] = { - -2866.5, -2229.5, -1592.5, -955.5, -318.5, 318.5, 955.5, 1592.5, - 2229.5, 2866.5, -}; - -static long _vq_quantmap__44u7__p9_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p9_0 = { - _vq_quantthresh__44u7__p9_0, - _vq_quantmap__44u7__p9_0, - 11, - 11 -}; - -static static_codebook _44u7__p9_0 = { - 2, 121, - _vq_lengthlist__44u7__p9_0, - 1, -512171520, 1630791680, 4, 0, - _vq_quantlist__44u7__p9_0, - NULL, - &_vq_auxt__44u7__p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u7__p9_1[] = { - 1, 4, 4, 5, 5, 7, 7,10, 9,11,11,12,12, 4, 7, 6, - 8, 8, 9, 9,11,10,13,12,13,13, 4, 6, 7, 8, 8, 9, - 9,10,11,13,13,12,13, 5, 8, 8,10, 9,12,11,12,12, - 13,13,15,14, 6, 8, 8,10,10,11,11,13,12,13,14,14, - 15, 8,10,10,12,11,13,13,14,15,15,16,15,16, 8, 9, - 10,12,12,13,13,16,15,15,15,15,15,10,11,11,14,13, - 14,14,16,16,15,16,16,16,10,12,12,12,14,14,14,15, - 16,15,16,15,16,11,12,12,14,14,16,16,15,16,16,16, - 16,16,12,12,13,13,15,15,14,15,16,16,16,16,16,12, - 14,14,15,14,16,16,16,16,16,16,16,16,13,14,13,14, - 15,16,15,16,16,16,16,16,16, -}; - -static float _vq_quantthresh__44u7__p9_1[] = { - -269.5, -220.5, -171.5, -122.5, -73.5, -24.5, 24.5, 73.5, - 122.5, 171.5, 220.5, 269.5, -}; - -static long _vq_quantmap__44u7__p9_1[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p9_1 = { - _vq_quantthresh__44u7__p9_1, - _vq_quantmap__44u7__p9_1, - 13, - 13 -}; - -static static_codebook _44u7__p9_1 = { - 2, 169, - _vq_lengthlist__44u7__p9_1, - 1, -518889472, 1622704128, 4, 0, - _vq_quantlist__44u7__p9_1, - NULL, - &_vq_auxt__44u7__p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u7__p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44u7__p9_2[] = { - 2, 4, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static float _vq_quantthresh__44u7__p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44u7__p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44u7__p9_2 = { - _vq_quantthresh__44u7__p9_2, - _vq_quantmap__44u7__p9_2, - 49, - 49 -}; - -static static_codebook _44u7__p9_2 = { - 1, 49, - _vq_lengthlist__44u7__p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44u7__p9_2, - NULL, - &_vq_auxt__44u7__p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u7__short[] = { - 6,14,18,18,18,18,17,17,17,17, 4, 8,11,12,13,11, - 13,11,16,17, 6, 7, 8, 9, 8, 9,12, 9,14,17, 6, 9, - 11,12,12,12,15,12,17,17, 6, 6, 6, 8, 5, 7, 7, 8, - 14,17, 7, 9, 9,11, 8,10,10,11,14,16, 8, 7, 7, 8, - 5, 7, 4, 5,11,17, 9, 8,10, 9, 7, 9, 4, 2, 9,16, - 15,14,16,14, 8,14, 4, 3, 7,16,17,17,16,17, 9,15, - 6, 5,10,17, -}; - -static static_codebook _huff_book__44u7__short = { - 2, 100, - _huff_lengthlist__44u7__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u8__long[] = { - 3, 9,13,13,14,13,13,13,13,14, 5, 4, 6, 8,10,12, - 13,15,13,14, 9, 5, 3, 5, 8,10,12,14,13,13,11, 7, - 4, 3, 5, 7,10,11,12,14,11, 9, 7, 4, 4, 6, 8,10, - 13,14,10,11, 9, 7, 6, 6, 7, 9,12,15,12,11,11, 8, - 7, 6, 6, 7,11,14,12,12,12,10, 8, 7, 6, 7, 9,13, - 11,12,13,12,11, 8, 8, 7, 9,12,11,14,16,16,15,11, - 10, 9, 9,11, -}; - -static static_codebook _huff_book__44u8__long = { - 2, 100, - _huff_lengthlist__44u8__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u8__short[] = { - 7,15,18,18,18,18,18,18,18,18, 4, 6, 9,10,10,11, - 16,15,18,18, 5, 6, 6, 6, 8,10,15,15,18,18, 5, 6, - 5, 4, 6, 9,12,15,17,18, 7, 6, 6, 5, 6, 5, 8,11, - 15,18,10, 9, 9, 7, 4, 3, 6,10,16,17,13,12,12, 6, - 6, 4, 5, 9,14,16,16,17,13, 5, 5, 4, 5, 8,13,16, - 17,17,14, 7, 7, 6, 7,10,15,17,17,17,17,11,12,12, - 12,14,17,17, -}; - -static static_codebook _huff_book__44u8__short = { - 2, 100, - _huff_lengthlist__44u8__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u8_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7, - 8, 9, 5, 7, 7, 7, 9, 8, 8, 9, 9, 5, 7, 7, 7, 9, - 9, 7, 9, 9, 8, 9, 9, 9,10,11, 9,10,10, 7, 9, 9, - 9,10, 9, 9,10,11, 5, 7, 7, 7, 9, 9, 8, 9, 9, 7, - 9, 9, 9,11,10, 9, 9,10, 8, 9, 9, 9,10,10, 9,11, - 10, -}; - -static float _vq_quantthresh__44u8_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u8_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p1_0 = { - _vq_quantthresh__44u8_p1_0, - _vq_quantmap__44u8_p1_0, - 3, - 3 -}; - -static static_codebook _44u8_p1_0 = { - 4, 81, - _vq_lengthlist__44u8_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u8_p1_0, - NULL, - &_vq_auxt__44u8_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u8_p2_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 7, 8, 9,10, 9,10,10,12,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,12, 8, 9, 9,11,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,13,11, - 11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,13,13,11,12,12,14,13, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, - 12, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, - 8, 9, 9,10,11,10,11,11,12,12,10,10,11,12,13, 6, - 8, 8,10,10, 7, 8, 8,11,10, 8, 8, 9,10,11,10,11, - 10,12,11,10,11,11,12,12, 9,10,10,12,12,10,11,11, - 13,13,10,11,11,13,13,12,12,13,13,14,12,12,13,14, - 14, 9,10,10,12,12, 9,10,10,12,12,10,11,11,12,13, - 11,12,11,14,12,12,12,12,14,14, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,11, 9,10, - 10,12,12, 6, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 8, - 10,11,10,11,11,13,12,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,11,10, 8, 9, 9,11,11,10,11,10,13,12, - 10,11,11,12,12, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,12,12,13,13,14,14,11,11,12,12,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,11,13,12,12,13,12, - 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,14, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, - 13,13,14,15,12,12,13,14,14, 9,10,10,12,12, 9,11, - 10,13,12,10,11,11,12,13,12,13,12,14,13,12,12,13, - 14,14,11,12,12,14,14,12,12,12,14,14,12,13,13,14, - 14,13,13,14,14,16,14,14,14,15,15,11,12,12,14,14, - 11,12,11,14,13,12,12,13,14,14,13,14,12,15,13,14, - 14,14,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,13,11,12,12,13,14, 9,10,10, - 12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, - 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, - 10,11,11,13,13,12,12,12,14,14,12,13,12,15,14,11, - 12,11,14,13,12,13,12,14,14,11,11,12,13,14,13,14, - 14,16,15,13,12,14,13,15,11,12,12,13,14,12,13,13, - 14,14,12,13,12,14,14,14,14,14,15,16,13,14,13,15, - 14, -}; - -static float _vq_quantthresh__44u8_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u8_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p2_0 = { - _vq_quantthresh__44u8_p2_0, - _vq_quantmap__44u8_p2_0, - 5, - 5 -}; - -static static_codebook _44u8_p2_0 = { - 4, 625, - _vq_lengthlist__44u8_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u8_p2_0, - NULL, - &_vq_auxt__44u8_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u8_p3_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 7, 7, - 8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,10,12,12, 9, 9, 9,10,10,10,11,12, - 12, -}; - -static float _vq_quantthresh__44u8_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u8_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p3_0 = { - _vq_quantthresh__44u8_p3_0, - _vq_quantmap__44u8_p3_0, - 9, - 9 -}; - -static static_codebook _44u8_p3_0 = { - 2, 81, - _vq_lengthlist__44u8_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u8_p3_0, - NULL, - &_vq_auxt__44u8_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u8_p4_0[] = { - 4, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,11,11,11, - 11, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, - 12,12, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,11,12, 6, 6, 6, 7, 7, 8, 7, 9, 9, 9, 9,10,10, - 11,11,12,12, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9,10, - 10,11,11,12,12, 7, 7, 7, 8, 7, 9, 8, 9, 9,10, 9, - 11,10,11,11,12,12, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, - 10,10,10,11,11,12,12, 8, 8, 8, 9, 9, 9, 9,10,10, - 10,10,11,11,11,11,12,12, 8, 8, 8, 8, 9, 9, 9,10, - 10,10,10,11,11,11,12,12,12, 9, 9, 9, 9, 9,10, 9, - 10,10,11,10,11,11,12,12,12,12, 9, 9, 9, 9, 9, 9, - 10,10,10,11,11,11,11,12,12,12,13,10,10,10,10,10, - 11,10,11,11,11,11,12,12,12,12,12,13,10,10,10,10, - 10,10,11,11,11,11,11,12,12,12,12,13,12,11,11,11, - 11,11,11,11,12,12,12,12,12,12,12,13,13,13,11,11, - 11,11,11,11,11,12,12,12,12,12,12,13,12,13,13,11, - 12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13, - 12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13, - 13, -}; - -static float _vq_quantthresh__44u8_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u8_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p4_0 = { - _vq_quantthresh__44u8_p4_0, - _vq_quantmap__44u8_p4_0, - 17, - 17 -}; - -static static_codebook _44u8_p4_0 = { - 2, 289, - _vq_lengthlist__44u8_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u8_p4_0, - NULL, - &_vq_auxt__44u8_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u8_p5_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 8, 7, 9, 9, 7, 9, 8, 5, 7, 7, 8, 9, - 9, 7, 9, 9, 7, 9, 9, 8, 9,11, 9,11,11, 7, 9, 9, - 9,11,10, 9,11,11, 5, 7, 8, 7, 9, 9, 8, 9, 9, 7, - 9, 9, 9,11,11, 9,10,11, 7, 9, 9, 9,11,11, 8,11, - 9, -}; - -static float _vq_quantthresh__44u8_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44u8_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p5_0 = { - _vq_quantthresh__44u8_p5_0, - _vq_quantmap__44u8_p5_0, - 3, - 3 -}; - -static static_codebook _44u8_p5_0 = { - 4, 81, - _vq_lengthlist__44u8_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44u8_p5_0, - NULL, - &_vq_auxt__44u8_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u8_p5_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, 5, 6, 6, 6, 6, - 7, 7, 7, 7, 8, 8, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, - 8, 6, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 6, 6, 6, 7, - 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u8_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u8_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p5_1 = { - _vq_quantthresh__44u8_p5_1, - _vq_quantmap__44u8_p5_1, - 11, - 11 -}; - -static static_codebook _44u8_p5_1 = { - 2, 121, - _vq_lengthlist__44u8_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u8_p5_1, - NULL, - &_vq_auxt__44u8_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u8_p6_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9,10,10,10, 5, 6, 6, - 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 8, - 9, 9, 9,10,10,11,11, 7, 7, 7, 8, 8, 9, 9,10,10, - 11,11,11,11, 7, 7, 7, 8, 8, 9, 9,10,10,10,11,11, - 11, 8, 9, 9, 9, 9,10,10,10,10,11,11,12,12, 8, 9, - 9, 9, 9,10,10,10,11,11,11,12,12, 8, 9, 9,10,10, - 11,10,11,11,12,12,12,12, 9, 9, 9,10,10,11,11,11, - 11,12,12,12,12,10,10,10,11,11,11,11,12,12,12,12, - 13,13,10,10,10,11,11,11,11,12,12,12,12,13,13,11, - 11,11,12,12,12,12,12,12,13,13,13,13,11,11,11,12, - 12,12,12,12,12,13,13,13,13, -}; - -static float _vq_quantthresh__44u8_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u8_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p6_0 = { - _vq_quantthresh__44u8_p6_0, - _vq_quantmap__44u8_p6_0, - 13, - 13 -}; - -static static_codebook _44u8_p6_0 = { - 2, 169, - _vq_lengthlist__44u8_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u8_p6_0, - NULL, - &_vq_auxt__44u8_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u8_p6_1[] = { - 3, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static float _vq_quantthresh__44u8_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u8_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p6_1 = { - _vq_quantthresh__44u8_p6_1, - _vq_quantmap__44u8_p6_1, - 5, - 5 -}; - -static static_codebook _44u8_p6_1 = { - 2, 25, - _vq_lengthlist__44u8_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u8_p6_1, - NULL, - &_vq_auxt__44u8_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u8_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, - 8, 8, 9, 8, 9, 9,10,10,11,11, 4, 6, 6, 8, 8, 8, - 9, 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12, 7, 8, 8, 9, 9,10,10,10,10,11,11,12, - 12, 8, 9, 9,10,10,10,10,11,11,12,12,13,13, 8, 9, - 9,10,10,10,11,11,11,12,13,13,13, 9, 9, 9,10,10, - 11,11,12,12,13,13,14,14, 9, 9, 9,10,10,11,11,12, - 12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,14, - 14,14,10,10,11,11,12,12,12,13,13,13,14,14,15,11, - 11,11,12,12,13,13,14,14,14,14,16,15,11,11,11,12, - 12,13,13,14,14,14,14,16,15, -}; - -static float _vq_quantthresh__44u8_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44u8_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p7_0 = { - _vq_quantthresh__44u8_p7_0, - _vq_quantmap__44u8_p7_0, - 13, - 13 -}; - -static static_codebook _44u8_p7_0 = { - 2, 169, - _vq_lengthlist__44u8_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44u8_p7_0, - NULL, - &_vq_auxt__44u8_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u8_p7_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u8_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u8_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p7_1 = { - _vq_quantthresh__44u8_p7_1, - _vq_quantmap__44u8_p7_1, - 11, - 11 -}; - -static static_codebook _44u8_p7_1 = { - 2, 121, - _vq_lengthlist__44u8_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u8_p7_1, - NULL, - &_vq_auxt__44u8_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u8_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8,10,10,11,11, 4, - 6, 6, 8, 8,10,10, 9, 9,10,10,11,10,12,12, 4, 6, - 6, 8, 8, 9,10, 9, 9,10,10,11,11,11,12, 7, 8, 8, - 10,10,11,11,11,10,11,11,13,12,13,12, 7, 8, 8,10, - 10,11,11,10,11,11,11,12,12,13,13, 8,10, 9,11,11, - 12,12,11,11,12,12,13,13,14,14, 8, 9, 9,11,11,12, - 12,11,11,12,12,14,13,13,13, 8, 9, 9,11,10,12,11, - 12,12,13,13,14,13,14,13, 8, 9, 9,11,11,11,12,12, - 12,13,13,13,14,14,14, 9,10,10,12,11,12,12,13,13, - 14,14,15,13,14,14, 9,10,10,11,12,12,12,13,13,14, - 14,15,14,14,14,10,11,11,12,12,13,13,14,13,14,14, - 15,14,15,15,10,11,11,12,12,13,13,13,14,14,14,14, - 15,16,15,11,12,12,13,12,14,14,14,13,15,14,16,15, - 16,15,11,12,12,13,13,13,14,14,15,15,15,15,16,15, - 15, -}; - -static float _vq_quantthresh__44u8_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44u8_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p8_0 = { - _vq_quantthresh__44u8_p8_0, - _vq_quantmap__44u8_p8_0, - 15, - 15 -}; - -static static_codebook _44u8_p8_0 = { - 2, 225, - _vq_lengthlist__44u8_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44u8_p8_0, - NULL, - &_vq_auxt__44u8_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44u8_p8_1[] = { - 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 7, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9,10, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10, 9,10,10, 9,10, 9,10, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10, 9,10,10, 9,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10, 9, 9,10,10,10,10,10,10,10,10, - 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44u8_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44u8_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p8_1 = { - _vq_quantthresh__44u8_p8_1, - _vq_quantmap__44u8_p8_1, - 21, - 21 -}; - -static static_codebook _44u8_p8_1 = { - 2, 441, - _vq_lengthlist__44u8_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44u8_p8_1, - NULL, - &_vq_auxt__44u8_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p9_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u8_p9_0[] = { - 1, 4, 4, 9, 9, 9, 9, 9, 9, 5, 9, 9, 8, 8, 8, 8, - 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static float _vq_quantthresh__44u8_p9_0[] = { - -3258.5, -2327.5, -1396.5, -465.5, 465.5, 1396.5, 2327.5, 3258.5, -}; - -static long _vq_quantmap__44u8_p9_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p9_0 = { - _vq_quantthresh__44u8_p9_0, - _vq_quantmap__44u8_p9_0, - 9, - 9 -}; - -static static_codebook _44u8_p9_0 = { - 2, 81, - _vq_lengthlist__44u8_p9_0, - 1, -511895552, 1631393792, 4, 0, - _vq_quantlist__44u8_p9_0, - NULL, - &_vq_auxt__44u8_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static long _vq_lengthlist__44u8_p9_1[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 8, 9, 9,10,10,11,11,12, - 12,12,12, 4, 7, 6, 9, 9, 9, 9, 9, 8, 9, 9,11,10, - 12,11,13,12,13,14, 4, 6, 6, 9, 9, 9, 9, 8, 9, 9, - 10,10,11,12,12,12,12,13,12, 7, 9, 8,11,10,10,10, - 10,10,11,11,12,11,14,12,13,14,14,13, 7, 8, 9,10, - 10,10,10,10,10,11,11,12,13,13,13,14,15,15,13, 8, - 9, 9,11,11,11,11,11,12,13,12,14,14,14,14,14,14, - 15,13, 8, 9, 9,10,11,11,11,12,12,13,12,13,14,13, - 15,14,15,15,15, 8, 9, 9,10,10,12,11,13,12,13,13, - 14,14,13,15,14,15,14,14, 8, 9, 9,10,11,12,12,13, - 13,14,14,14,14,15,15,15,12,14,14, 9,11,10,11,11, - 14,12,13,14,15,14,14,14,14,15,15,15,15,15, 9,10, - 11,11,12,12,13,13,14,14,14,14,15,15,14,15,15,15, - 15,10,11,11,12,12,14,14,13,14,14,15,15,15,15,15, - 15,15,15,15,10,11,11,12,13,13,13,14,14,15,15,14, - 14,15,15,15,15,14,15,11,12,13,15,13,14,15,15,15, - 15,14,15,15,15,15,15,15,15,15,11,12,12,14,14,14, - 13,14,15,15,14,15,15,15,15,15,15,15,15,13,13,14, - 13,13,14,14,15,14,15,15,15,15,15,15,15,15,15,15, - 11,14,13,14,14,15,14,14,15,15,15,15,15,15,15,15, - 15,15,15,12,12,13,14,13,13,14,15,14,15,15,15,15, - 15,15,15,15,15,15,13,13,14,14,13,15,14,14,15,15, - 14,15,15,15,15,15,15,15,15, -}; - -static float _vq_quantthresh__44u8_p9_1[] = { - -416.5, -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, - -24.5, 24.5, 73.5, 122.5, 171.5, 220.5, 269.5, 318.5, - 367.5, 416.5, -}; - -static long _vq_quantmap__44u8_p9_1[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p9_1 = { - _vq_quantthresh__44u8_p9_1, - _vq_quantmap__44u8_p9_1, - 19, - 19 -}; - -static static_codebook _44u8_p9_1 = { - 2, 361, - _vq_lengthlist__44u8_p9_1, - 1, -518287360, 1622704128, 5, 0, - _vq_quantlist__44u8_p9_1, - NULL, - &_vq_auxt__44u8_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u8_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44u8_p9_2[] = { - 2, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44u8_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44u8_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44u8_p9_2 = { - _vq_quantthresh__44u8_p9_2, - _vq_quantmap__44u8_p9_2, - 49, - 49 -}; - -static static_codebook _44u8_p9_2 = { - 1, 49, - _vq_lengthlist__44u8_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44u8_p9_2, - NULL, - &_vq_auxt__44u8_p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__44u9__long[] = { - 3, 9,13,13,14,14,13,14,14,13, 5, 5, 9,10,12,13, - 13,14,14,14, 9, 5, 6, 6, 8,11,12,14,14,14,11, 7, - 5, 3, 5, 8,10,12,13,12,12,10, 7, 4, 3, 5, 8,10, - 12,13,10,12, 9, 7, 4, 4, 6, 8,11,13,12,12,11, 9, - 7, 5, 6, 7, 9,13,12,12,12,11, 8, 7, 6, 6, 8,12, - 12,12,13,12,10, 9, 7, 7, 8,11,11,13,15,15,14,12, - 10, 9, 9,10, -}; - -static static_codebook _huff_book__44u9__long = { - 2, 100, - _huff_lengthlist__44u9__long, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _huff_lengthlist__44u9__short[] = { - 10,17,18,18,18,18,18,18,18,18, 5, 8,12,13,14,13, - 16,17,16,17, 5, 6, 8, 8,10, 9,12,16,16,17, 5, 6, - 7, 5, 6, 9,12,15,16,16, 7, 6, 6, 4, 5, 7, 9,14, - 15,17,10, 8, 8, 6, 6, 3, 5, 9,13,18,14,11,11,10, - 6, 3, 4, 7,13,17,15,16,16,10, 5, 6, 4, 4, 9,13, - 18,18,18,11, 6, 8, 5, 6,10,15,18,18,18,14,10,11, - 9,10,16,18, -}; - -static static_codebook _huff_book__44u9__short = { - 2, 100, - _huff_lengthlist__44u9__short, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u9_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 7, 9, - 9, 7, 9, 9, 8, 9, 9, 9,10,11, 9,11,10, 7, 9, 9, - 9,11,10, 9,10,11, 5, 7, 7, 7, 9, 9, 7, 9, 9, 7, - 9, 9, 9,11,11, 9,10,11, 8, 9, 9, 9,10,10, 9,11, - 10, -}; - -static float _vq_quantthresh__44u9_p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__44u9_p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p1_0 = { - _vq_quantthresh__44u9_p1_0, - _vq_quantmap__44u9_p1_0, - 3, - 3 -}; - -static static_codebook _44u9_p1_0 = { - 4, 81, - _vq_lengthlist__44u9_p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__44u9_p1_0, - NULL, - &_vq_auxt__44u9_p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u9_p2_0[] = { - 3, 6, 5, 8, 8, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 9, 9,11,10, 8, 9, 9,10,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 8, 8, 9,10, 9,10,10,11,11, 9, 9,10, - 11,11, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,11,11, 9,10,10,11,11, 8, 9, 9,11,11, - 9,10,10,12,11, 9,10,10,11,11,11,12,12,13,13,11, - 11,11,12,13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10, - 10,12,12,11,11,11,13,12,11,11,11,13,13, 6, 7, 7, - 9, 9, 7, 8, 8,10, 9, 7, 8, 8, 9,10, 9,10,10,11, - 11, 9,10,10,11,11, 7, 8, 8,10,10, 8, 9, 9,10,10, - 8, 9, 9,10,10,10,10,10,12,12,10,10,10,11,12, 7, - 8, 8,10,10, 8, 9, 8,10,10, 8, 9, 9,10,10, 9,10, - 10,12,11,10,10,10,12,12, 9,10,10,12,11,10,10,10, - 12,12,10,10,10,12,12,12,12,12,12,13,11,12,12,13, - 13, 9,10,10,11,11, 9,10,10,12,11,10,10,10,12,12, - 11,12,11,13,12,12,12,12,13,13, 6, 7, 7, 9, 9, 7, - 8, 8,10, 9, 7, 8, 8, 9,10, 9,10,10,12,11, 9,10, - 10,11,11, 7, 8, 8,10, 9, 8, 9, 9,11,10, 8, 8, 9, - 10,10,10,10,10,12,12,10,10,10,11,12, 7, 8, 8,10, - 10, 8, 9, 9,10,10, 8, 9, 9,10,10,10,10,10,12,12, - 10,10,10,12,12, 9,10,10,11,11,10,11,10,12,12, 9, - 10,10,11,12,11,12,12,13,13,11,11,12,11,13, 9,10, - 10,11,12,10,10,10,12,12,10,10,10,12,12,11,12,12, - 13,13,12,12,12,13,13, 8, 9, 9,11,11, 9,10,10,12, - 11, 9,10,10,11,12,11,12,12,13,13,11,11,12,13,13, - 9,10,10,12,12,10,10,10,12,12,10,11,10,12,12,12, - 12,12,13,13,12,12,12,13,13, 9,10,10,12,11,10,10, - 10,12,11,10,10,10,12,12,11,12,12,13,13,12,12,12, - 13,14,11,12,12,13,13,11,12,12,13,13,11,12,12,13, - 13,13,13,14,13,15,13,13,13,14,14,11,11,11,13,13, - 11,12,11,13,13,11,12,12,13,13,12,13,12,14,12,13, - 13,13,15,14, 8, 9, 9,11,11, 9,10,10,11,11, 9,10, - 10,11,12,11,12,11,13,13,11,12,12,13,13, 9,10,10, - 11,11,10,11,10,12,12, 9,10,10,12,12,12,12,12,13, - 13,11,11,12,12,13, 9,10,10,12,12,10,10,11,12,12, - 10,11,10,12,12,11,12,12,13,13,12,12,12,13,13,11, - 11,11,13,13,11,12,12,13,13,11,11,12,13,13,13,13, - 13,14,14,12,12,13,12,14,11,11,12,13,13,12,12,12, - 14,13,11,12,12,13,13,13,13,13,14,14,13,13,13,14, - 13, -}; - -static float _vq_quantthresh__44u9_p2_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u9_p2_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p2_0 = { - _vq_quantthresh__44u9_p2_0, - _vq_quantmap__44u9_p2_0, - 5, - 5 -}; - -static static_codebook _44u9_p2_0 = { - 4, 625, - _vq_lengthlist__44u9_p2_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u9_p2_0, - NULL, - &_vq_auxt__44u9_p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__44u9_p3_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 8, 4, 5, 5, 6, 6, 7, 7, - 9, 9, 4, 5, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 6, - 8, 7, 9, 9, 5, 6, 6, 6, 7, 7, 8, 9, 9, 7, 7, 7, - 8, 7, 9, 8,10,10, 7, 7, 7, 7, 8, 8, 9,10,10, 9, - 9, 9, 9, 9,10,10,11,11, 9, 9, 9, 9, 9,10,10,11, - 11, -}; - -static float _vq_quantthresh__44u9_p3_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__44u9_p3_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p3_0 = { - _vq_quantthresh__44u9_p3_0, - _vq_quantmap__44u9_p3_0, - 9, - 9 -}; - -static static_codebook _44u9_p3_0 = { - 2, 81, - _vq_lengthlist__44u9_p3_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__44u9_p3_0, - NULL, - &_vq_auxt__44u9_p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__44u9_p4_0[] = { - 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,10, 9,11,10, - 12,11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9,10,10, - 11,11,11, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 9, 8, 9, 9, - 10,10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, - 9,10,10,11,11,12,12, 8, 8, 8, 8, 8, 9, 8, 9, 9, - 10,10,11,10,12,11,12,12, 8, 8, 8, 8, 8, 8, 9, 9, - 9,10,10,10,11,11,12,12,13, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,10,11,11,12,12,13,12, 8, 8, 9, 9, 9, 9, - 9,10,10,10,11,11,11,12,12,12,13, 9,10, 9,10,10, - 10,10,11,10,11,11,12,11,13,12,13,13, 9, 9,10,10, - 10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10, - 11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10, - 11,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11, - 12,11,12,12,12,12,12,12,13,13,13,13,14,13,14,14, - 11,11,12,12,12,12,12,12,12,12,13,13,13,13,14,14, - 14, -}; - -static float _vq_quantthresh__44u9_p4_0[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__44u9_p4_0[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p4_0 = { - _vq_quantthresh__44u9_p4_0, - _vq_quantmap__44u9_p4_0, - 17, - 17 -}; - -static static_codebook _44u9_p4_0 = { - 2, 289, - _vq_lengthlist__44u9_p4_0, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__44u9_p4_0, - NULL, - &_vq_auxt__44u9_p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p5_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__44u9_p5_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7, 8, 9, 7, - 8, 9, 5, 7, 8, 7, 9, 8, 7, 9, 8, 5, 8, 8, 8, 9, - 9, 7, 9, 9, 7, 9, 9, 8, 9,11, 9,11,10, 7, 9, 9, - 9,11, 9, 9,10,11, 5, 7, 8, 7, 9, 9, 8, 9, 9, 7, - 9, 9, 9,11,10, 9, 9,11, 7, 9, 9, 9,10,11, 8,11, - 9, -}; - -static float _vq_quantthresh__44u9_p5_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__44u9_p5_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p5_0 = { - _vq_quantthresh__44u9_p5_0, - _vq_quantmap__44u9_p5_0, - 3, - 3 -}; - -static static_codebook _44u9_p5_0 = { - 4, 81, - _vq_lengthlist__44u9_p5_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__44u9_p5_0, - NULL, - &_vq_auxt__44u9_p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u9_p5_1[] = { - 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, - 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 8, -}; - -static float _vq_quantthresh__44u9_p5_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u9_p5_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p5_1 = { - _vq_quantthresh__44u9_p5_1, - _vq_quantmap__44u9_p5_1, - 11, - 11 -}; - -static static_codebook _44u9_p5_1 = { - 2, 121, - _vq_lengthlist__44u9_p5_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u9_p5_1, - NULL, - &_vq_auxt__44u9_p5_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u9_p6_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 5, 5, - 7, 7, 8, 8, 8, 8,10,10,11,11, 4, 5, 5, 7, 7, 8, - 8, 8, 8,10,10,11,11, 6, 7, 7, 8, 7, 8, 8, 9, 9, - 10,10,11,11, 6, 7, 7, 8, 7, 8, 8, 9, 9,10,10,11, - 11, 7, 8, 8, 8, 8, 9, 9, 9,10,11,11,12,12, 7, 8, - 8, 8, 8, 9, 9,10, 9,11,11,12,12, 8, 9, 8, 9, 9, - 10,10,10,10,11,11,12,12, 8, 8, 8, 9, 9,10, 9,10, - 10,11,11,12,12, 9,10,10,10,10,11,11,11,11,12,12, - 13,13, 9,10,10,10,10,11,11,11,11,12,12,13,12,10, - 11,11,11,11,12,12,12,12,12,12,13,13,10,11,11,11, - 11,12,12,12,12,13,12,13,13, -}; - -static float _vq_quantthresh__44u9_p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__44u9_p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p6_0 = { - _vq_quantthresh__44u9_p6_0, - _vq_quantmap__44u9_p6_0, - 13, - 13 -}; - -static static_codebook _44u9_p6_0 = { - 2, 169, - _vq_lengthlist__44u9_p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__44u9_p6_0, - NULL, - &_vq_auxt__44u9_p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__44u9_p6_1[] = { - 4, 4, 4, 5, 5, 4, 5, 4, 5, 5, 4, 4, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static float _vq_quantthresh__44u9_p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__44u9_p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p6_1 = { - _vq_quantthresh__44u9_p6_1, - _vq_quantmap__44u9_p6_1, - 5, - 5 -}; - -static static_codebook _44u9_p6_1 = { - 2, 25, - _vq_lengthlist__44u9_p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__44u9_p6_1, - NULL, - &_vq_auxt__44u9_p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__44u9_p7_0[] = { - 1, 5, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 5, 6, 6, - 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 8, - 8, 9, 9,10,10,11,11, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12, 7, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12, 8, 8, 8, 9, 9,10,10,11,10,12,12,13,12, 8, 8, - 8, 9, 9,10,10,11,11,12,12,12,13, 9, 9, 9,10,10, - 11,11,12,11,13,13,13,14, 9, 9, 9,10,10,11,11,11, - 12,13,12,13,13,10,10,10,11,11,12,12,13,12,13,13, - 14,14,10,10,10,11,11,11,12,12,12,13,13,14,14,11, - 11,11,12,12,13,13,13,13,14,14,15,14,11,11,11,12, - 12,13,13,13,14,14,15,15,15, -}; - -static float _vq_quantthresh__44u9_p7_0[] = { - -60.5, -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, - 27.5, 38.5, 49.5, 60.5, -}; - -static long _vq_quantmap__44u9_p7_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p7_0 = { - _vq_quantthresh__44u9_p7_0, - _vq_quantmap__44u9_p7_0, - 13, - 13 -}; - -static static_codebook _44u9_p7_0 = { - 2, 169, - _vq_lengthlist__44u9_p7_0, - 1, -523206656, 1618345984, 4, 0, - _vq_quantlist__44u9_p7_0, - NULL, - &_vq_auxt__44u9_p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__44u9_p7_1[] = { - 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 8, 8, -}; - -static float _vq_quantthresh__44u9_p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__44u9_p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p7_1 = { - _vq_quantthresh__44u9_p7_1, - _vq_quantmap__44u9_p7_1, - 11, - 11 -}; - -static static_codebook _44u9_p7_1 = { - 2, 121, - _vq_lengthlist__44u9_p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__44u9_p7_1, - NULL, - &_vq_auxt__44u9_p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u9_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 9,10,10,11,11, 4, - 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,10,12,11, 4, 6, - 6, 8, 8, 9,10, 9, 9,10,10,11,11,12,12, 7, 8, 8, - 10,10,11,11,11,10,11,11,12,12,13,12, 7, 8, 8,10, - 10,11,11,10,10,11,12,12,12,13,13, 8,10, 9,11,11, - 12,12,11,12,12,12,13,13,14,14, 8, 9, 9,11,11,12, - 12,11,12,12,13,13,13,14,14, 8, 9, 9,10,10,11,11, - 13,12,13,13,14,14,15,14, 8, 9, 9,10,10,11,12,12, - 13,13,13,14,14,14,15, 9,10,10,11,11,13,12,13,13, - 14,14,15,15,15,15, 9,10,10,11,12,12,12,13,13,14, - 15,14,15,15,15,10,11,11,12,12,13,13,14,14,15,15, - 15,16,16,15,10,11,11,12,12,13,14,14,14,15,14,15, - 16,16,17,11,12,12,13,13,14,14,15,14,16,15,15,16, - 16,16,11,12,12,13,13,14,14,14,15,15,15,16,16,17, - 16, -}; - -static float _vq_quantthresh__44u9_p8_0[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__44u9_p8_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p8_0 = { - _vq_quantthresh__44u9_p8_0, - _vq_quantmap__44u9_p8_0, - 15, - 15 -}; - -static static_codebook _44u9_p8_0 = { - 2, 225, - _vq_lengthlist__44u9_p8_0, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__44u9_p8_0, - NULL, - &_vq_auxt__44u9_p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__44u9_p8_1[] = { - 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 8, 8, - 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, - 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, - 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static float _vq_quantthresh__44u9_p8_1[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__44u9_p8_1[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p8_1 = { - _vq_quantthresh__44u9_p8_1, - _vq_quantmap__44u9_p8_1, - 21, - 21 -}; - -static static_codebook _44u9_p8_1 = { - 2, 441, - _vq_lengthlist__44u9_p8_1, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__44u9_p8_1, - NULL, - &_vq_auxt__44u9_p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__44u9_p9_0[] = { - 1, 5, 5,10,10,10,10,10,10,10,10,10,10,10,10, 5, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 5,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static float _vq_quantthresh__44u9_p9_0[] = { - -6051.5, -5120.5, -4189.5, -3258.5, -2327.5, -1396.5, -465.5, 465.5, - 1396.5, 2327.5, 3258.5, 4189.5, 5120.5, 6051.5, -}; - -static long _vq_quantmap__44u9_p9_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p9_0 = { - _vq_quantthresh__44u9_p9_0, - _vq_quantmap__44u9_p9_0, - 15, - 15 -}; - -static static_codebook _44u9_p9_0 = { - 2, 225, - _vq_lengthlist__44u9_p9_0, - 1, -510036736, 1631393792, 4, 0, - _vq_quantlist__44u9_p9_0, - NULL, - &_vq_auxt__44u9_p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static long _vq_lengthlist__44u9_p9_1[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 7, 9, 9,10,10,12,11,12, - 11,12,12, 4, 7, 6, 9, 9, 9, 9, 9, 9,10, 9,11, 9, - 11,11,13,12,14,12, 4, 6, 6, 9, 9, 9, 9, 8, 9,10, - 10,11,11,12,12,12,13,13,13, 7, 9, 8,11,11,11,11, - 10,10,11,11,12,12,14,13,14,14,15,13, 7, 9, 9,10, - 10,10,10,10,10,11,11,12,13,13,13,14,14,15,13, 8, - 9, 9,12,10,11,11,12,11,12,12,13,13,14,14,15,16, - 15,14, 8, 9, 9,10,11,12,11,11,12,13,12,14,14,13, - 15,16,15,14,16, 7, 9, 9,10,10,12,11,12,13,16,13, - 14,16,14,15,15,15,15,15, 7, 9, 9,10,11,11,12,12, - 13,14,16,14,14,16,16,14,14,14,15, 9,10,11,12,12, - 12,13,13,13,16,15,16,15,14,15,15,15,16,16, 9,10, - 11,12,13,13,14,13,14,15,14,14,16,16,16,16,16,16, - 16,10,11,11,13,13,15,13,15,13,14,16,16,16,16,16, - 16,15,14,16,11,11,12,12,13,13,15,13,15,14,15,16, - 16,16,16,16,16,16,16,12,13,13,13,13,15,14,15,16, - 16,16,16,14,16,16,16,16,16,16,13,12,12,14,14,13, - 15,14,16,15,16,16,16,16,16,16,16,16,15,12,12,13, - 13,14,16,15,16,15,16,16,16,16,16,16,16,16,16,16, - 12,13,13,14,15,14,14,16,16,15,16,16,16,16,16,16, - 15,16,16,13,14,14,13,14,14,15,16,15,16,16,16,16, - 16,16,16,16,15,16,12,13,13,14,14,14,14,16,16,16, - 16,16,16,15,16,16,16,16,16, -}; - -static float _vq_quantthresh__44u9_p9_1[] = { - -416.5, -367.5, -318.5, -269.5, -220.5, -171.5, -122.5, -73.5, - -24.5, 24.5, 73.5, 122.5, 171.5, 220.5, 269.5, 318.5, - 367.5, 416.5, -}; - -static long _vq_quantmap__44u9_p9_1[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p9_1 = { - _vq_quantthresh__44u9_p9_1, - _vq_quantmap__44u9_p9_1, - 19, - 19 -}; - -static static_codebook _44u9_p9_1 = { - 2, 361, - _vq_lengthlist__44u9_p9_1, - 1, -518287360, 1622704128, 5, 0, - _vq_quantlist__44u9_p9_1, - NULL, - &_vq_auxt__44u9_p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__44u9_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist__44u9_p9_2[] = { - 2, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__44u9_p9_2[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap__44u9_p9_2[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt__44u9_p9_2 = { - _vq_quantthresh__44u9_p9_2, - _vq_quantmap__44u9_p9_2, - 49, - 49 -}; - -static static_codebook _44u9_p9_2 = { - 1, 49, - _vq_lengthlist__44u9_p9_2, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist__44u9_p9_2, - NULL, - &_vq_auxt__44u9_p9_2, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u0__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 10,10, 5, 8, 8, 7,10,10, 8,10,10, 4, 9, 8, 8,11, - 11, 8,11,11, 7,11,11,10,11,13,10,13,13, 7,11,11, - 10,13,12,10,13,13, 5, 9, 8, 8,11,11, 8,11,11, 7, - 11,11, 9,13,13,10,12,13, 7,11,11,10,13,13,10,13, - 11, -}; - -static float _vq_quantthresh__8u0__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8u0__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p1_0 = { - _vq_quantthresh__8u0__p1_0, - _vq_quantmap__8u0__p1_0, - 3, - 3 -}; - -static static_codebook _8u0__p1_0 = { - 4, 81, - _vq_lengthlist__8u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8u0__p1_0, - NULL, - &_vq_auxt__8u0__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 6, 7, 8, 6, - 7, 8, 5, 7, 7, 6, 8, 8, 7, 9, 7, 5, 7, 7, 7, 9, - 9, 7, 8, 8, 6, 9, 8, 7, 7,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 9, 8,10,10, 7,10, - 8, -}; - -static float _vq_quantthresh__8u0__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8u0__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p2_0 = { - _vq_quantthresh__8u0__p2_0, - _vq_quantmap__8u0__p2_0, - 3, - 3 -}; - -static static_codebook _8u0__p2_0 = { - 4, 81, - _vq_lengthlist__8u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8u0__p2_0, - NULL, - &_vq_auxt__8u0__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8u0__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 10, 9,11,11, 8, 9, 9,11,11, 6, 8, 8,10,10, 8,10, - 10,11,11, 8,10,10,11,11,10,11,11,12,12,10,11,11, - 12,13, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, - 11, 9,10,11,12,12,10,11,11,12,12, 8,11,11,14,13, - 10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12, - 14,12,16,15, 8,11,11,13,14,10,11,12,13,15,10,11, - 12,13,15,11,12,13,14,15,12,12,14,14,16, 5, 8, 8, - 11,11, 9,11,11,12,12, 8,10,11,12,12,11,12,12,15, - 14,11,12,12,14,14, 7,11,10,13,12,10,11,12,13,14, - 10,12,12,14,13,12,13,13,14,15,12,13,13,15,15, 7, - 10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13, - 12,14,14,11,13,13,15,16, 9,12,12,15,14,11,13,13, - 15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17, - 16, 9,12,12,14,15,11,13,13,15,16,11,13,13,16,18, - 13,14,14,17,16,13,15,15,17,18, 5, 8, 9,11,11, 8, - 11,11,12,12, 8,10,11,12,12,11,12,12,14,14,11,12, - 12,14,15, 7,11,10,12,13,10,12,12,14,13,10,11,12, - 13,14,11,13,13,15,14,12,13,13,14,15, 7,10,11,13, - 13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16, - 12,13,13,15,14, 9,12,12,16,15,10,13,13,15,15,11, - 13,13,17,15,12,15,15,18,17,13,14,14,15,16, 9,12, - 12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15, - 16,16,13,15,14,17,15, 7,11,11,15,15,10,13,13,16, - 15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18, - 9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15, - 15,16,17,19,13,15,16, 0,18, 9,12,12,16,15,11,14, - 13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15, - 17,19,11,14,14,19,16,12,14,15, 0,18,12,16,15,18, - 17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19, - 13,15,14,19,19,12,16,15,18,17,15,17,15, 0,16,14, - 17,16,19, 0, 7,11,11,14,14,10,12,12,15,15,10,13, - 13,16,15,13,15,15,17, 0,14,15,15,16,19, 9,12,12, - 16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19, - 0,14,18,17,17,19, 9,12,12,15,16,11,13,13,15,17, - 12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11, - 14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16, - 17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15, - 19, 0,12,14,15,19,19,14,16,16, 0,18,15,19,14,18, - 16, -}; - -static float _vq_quantthresh__8u0__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8u0__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p3_0 = { - _vq_quantthresh__8u0__p3_0, - _vq_quantmap__8u0__p3_0, - 5, - 5 -}; - -static static_codebook _8u0__p3_0 = { - 4, 625, - _vq_lengthlist__8u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8u0__p3_0, - NULL, - &_vq_auxt__8u0__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8u0__p4_0[] = { - 3, 5, 5, 8, 8, 5, 6, 7, 9, 9, 6, 7, 6, 9, 9, 9, - 9, 9,10,11, 9, 9, 9,11,10, 6, 7, 7,10,10, 7, 7, - 8,10,10, 7, 8, 8,10,10,10,10,10,10,11, 9,10,10, - 11,12, 6, 7, 7,10,10, 7, 8, 8,10,10, 7, 8, 7,10, - 10, 9,10,10,12,11,10,10,10,11,10, 9,10,10,12,11, - 10,10,10,13,11, 9,10,10,12,12,11,11,12,12,13,11, - 11,11,12,13, 9,10,10,12,12,10,10,11,12,12,10,10, - 11,12,12,11,11,11,13,13,11,12,12,13,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,11,12, - 12,10,11,10,12,12, 7, 8, 8,11,11, 7, 8, 9,10,11, - 8, 9, 9,11,11,11,10,11,10,12,10,11,11,12,13, 7, - 8, 8,10,11, 8, 9, 8,12,10, 8, 9, 9,11,12,10,11, - 10,13,11,10,11,11,13,12, 9,11,10,13,12,10,10,11, - 12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15, - 13, 9,11,11,13,13,10,11,11,13,12,10,11,11,12,14, - 12,13,11,14,12,12,12,12,14,14, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,11,10,10,11,11,12,12,10,11, - 10,12,12, 7, 8, 8,10,11, 8, 9, 9,12,11, 8, 8, 9, - 10,11,10,11,11,12,13,11,10,11,11,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,11,11,12,12, - 10,11,10,13,10, 9,11,10,13,12,10,12,11,13,13,10, - 10,11,12,13,11,12,13,15,14,11,11,13,12,13, 9,10, - 11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13, - 13,14,12,12,11,14,11, 8,10,10,12,13,10,11,11,13, - 13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13, - 9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12, - 12,13,15,14,12,13,13,15,13, 9,10,11,12,13,10,12, - 10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12, - 15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14, - 13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14, - 11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13, - 15,14,16,15, 8,10,10,12,12,10,10,10,12,13,10,11, - 11,13,13,12,12,12,13,14,13,13,13,15,15, 9,10,10, - 12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14, - 14,12,12,13,15,14, 9,10,10,13,12,10,10,12,12,13, - 10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11, - 12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14, - 14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13, - 14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14, - 12, -}; - -static float _vq_quantthresh__8u0__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8u0__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p4_0 = { - _vq_quantthresh__8u0__p4_0, - _vq_quantmap__8u0__p4_0, - 5, - 5 -}; - -static static_codebook _8u0__p4_0 = { - 4, 625, - _vq_lengthlist__8u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8u0__p4_0, - NULL, - &_vq_auxt__8u0__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8u0__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 7, 8, 8, - 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 6, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, - 9, 9,10,10,12,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,11,11,12,12,12, 9,10,10,11,11,12,12,12, - 12, -}; - -static float _vq_quantthresh__8u0__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8u0__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p5_0 = { - _vq_quantthresh__8u0__p5_0, - _vq_quantmap__8u0__p5_0, - 9, - 9 -}; - -static static_codebook _8u0__p5_0 = { - 2, 81, - _vq_lengthlist__8u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8u0__p5_0, - NULL, - &_vq_auxt__8u0__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist__8u0__p6_0[] = { - 1, 4, 4, 7, 7, 9, 9,11,11,12,12,16,16, 3, 6, 6, - 9, 9,11,11,12,12,13,14,18,16, 3, 6, 7, 9, 9,11, - 11,13,12,14,14,17,16, 7, 9, 9,11,11,12,12,14,14, - 14,14,17,16, 7, 9, 9,11,11,13,12,13,13,14,14,17, - 0, 9,11,11,12,13,14,14,14,13,15,14,17,17, 9,11, - 11,12,12,14,14,13,14,14,15, 0, 0,11,12,12,15,14, - 15,14,15,14,15,16,17, 0,11,12,13,13,13,14,14,15, - 14,15,15, 0, 0,12,14,14,15,15,14,16,15,15,17,16, - 0,18,13,14,14,15,14,15,14,15,16,17,16, 0, 0,17, - 17,18, 0,16,18,16, 0, 0, 0,17, 0, 0,16, 0, 0,16, - 16, 0,15, 0,17, 0, 0, 0, 0, -}; - -static float _vq_quantthresh__8u0__p6_0[] = { - -27.5, -22.5, -17.5, -12.5, -7.5, -2.5, 2.5, 7.5, - 12.5, 17.5, 22.5, 27.5, -}; - -static long _vq_quantmap__8u0__p6_0[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p6_0 = { - _vq_quantthresh__8u0__p6_0, - _vq_quantmap__8u0__p6_0, - 13, - 13 -}; - -static static_codebook _8u0__p6_0 = { - 2, 169, - _vq_lengthlist__8u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - _vq_quantlist__8u0__p6_0, - NULL, - &_vq_auxt__8u0__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8u0__p6_1[] = { - 1, 4, 4, 6, 6, 4, 6, 5, 7, 7, 4, 5, 6, 7, 7, 6, - 7, 7, 7, 7, 6, 7, 7, 7, 7, -}; - -static float _vq_quantthresh__8u0__p6_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8u0__p6_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p6_1 = { - _vq_quantthresh__8u0__p6_1, - _vq_quantmap__8u0__p6_1, - 5, - 5 -}; - -static static_codebook _8u0__p6_1 = { - 2, 25, - _vq_lengthlist__8u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8u0__p6_1, - NULL, - &_vq_auxt__8u0__p6_1, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u0__p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static float _vq_quantthresh__8u0__p7_0[] = { - -157.5, 157.5, -}; - -static long _vq_quantmap__8u0__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p7_0 = { - _vq_quantthresh__8u0__p7_0, - _vq_quantmap__8u0__p7_0, - 3, - 3 -}; - -static static_codebook _8u0__p7_0 = { - 4, 81, - _vq_lengthlist__8u0__p7_0, - 1, -518803456, 1628680192, 2, 0, - _vq_quantlist__8u0__p7_0, - NULL, - &_vq_auxt__8u0__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__8u0__p7_1[] = { - 1, 5, 5, 5, 5,10,10,11,11,11,11,11,11,11,11, 5, - 7, 6, 8, 8, 9,10,11,11,11,11,11,11,11,11, 6, 6, - 7, 9, 7,11,10,11,11,11,11,11,11,11,11, 5, 6, 6, - 11, 8,11,11,11,11,11,11,11,11,11,11, 5, 6, 6, 9, - 10,11,10,11,11,11,11,11,11,11,11, 7,10,10,11,11, - 11,11,11,11,11,11,11,11,11,11, 7,11, 8,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__8u0__p7_1[] = { - -136.5, -115.5, -94.5, -73.5, -52.5, -31.5, -10.5, 10.5, - 31.5, 52.5, 73.5, 94.5, 115.5, 136.5, -}; - -static long _vq_quantmap__8u0__p7_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p7_1 = { - _vq_quantthresh__8u0__p7_1, - _vq_quantmap__8u0__p7_1, - 15, - 15 -}; - -static static_codebook _8u0__p7_1 = { - 2, 225, - _vq_lengthlist__8u0__p7_1, - 1, -520986624, 1620377600, 4, 0, - _vq_quantlist__8u0__p7_1, - NULL, - &_vq_auxt__8u0__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__8u0__p7_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist__8u0__p7_2[] = { - 1, 6, 5, 7, 7, 9, 9, 9, 9,10,12,12,10,11,11,10, - 11,11,11,10,11, 6, 8, 8, 9, 9,10,10, 9,10,11,11, - 10,11,11,11,11,10,11,11,11,11, 6, 7, 8, 9, 9, 9, - 10,11,10,11,12,11,10,11,11,11,11,11,11,12,10, 8, - 9, 9,10, 9,10,10, 9,10,10,10,10,10, 9,10,10,10, - 10, 9,10,10, 9, 9, 9, 9,10,10, 9, 9,10,10,11,10, - 9,12,10,11,10, 9,10,10,10, 8, 9, 9,10, 9,10, 9, - 9,10,10, 9,10, 9,11,10,10,10,10,10, 9,10, 8, 8, - 9, 9,10, 9,11, 9, 8, 9, 9,10,11,10,10,10,11,12, - 9, 9,11, 8, 9, 8,11,10,11,10,10, 9,11,10,10,10, - 10,10,10,10,11,11,11,11, 8, 9, 9, 9,10,10,10,11, - 11,12,11,12,11,10,10,10,12,11,11,11,10, 8,10, 9, - 11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11, - 11,10, 9, 9,10,11,12,10,10,10,11,10,11,11,10,12, - 12,10,11,10,11,12,10, 9,10,10,11,10,11,11,11,11, - 11,12,11,11,11, 9,11,10,11,10,11,10, 9, 9,10,11, - 11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12, - 11, 9,11,11,12,10,11,11,11,11,11,11,12,11,11,12, - 11,11,11,10,11,11, 9,11,10,11,11,11,10,10,10,11, - 11,11,12,10,11,10,11,11,11,11,12, 9,11,10,11,11, - 10,10,11,11, 9,11,11,12,10,10,10,10,10,11,11,10, - 9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11, - 10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11, - 10,10,11,11,11,11,10,10,10,12,11,11,11,11,10, 9, - 10,11,11,11,12,11,11,11,12,10,11,11,11, 9,10,11, - 11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10, - 10,11, 9,10,11,11,11,11,11,10,11,11,10,12,11,11, - 11,12,11,11,11,10,10,11,11, -}; - -static float _vq_quantthresh__8u0__p7_2[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap__8u0__p7_2[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt__8u0__p7_2 = { - _vq_quantthresh__8u0__p7_2, - _vq_quantmap__8u0__p7_2, - 21, - 21 -}; - -static static_codebook _8u0__p7_2 = { - 2, 441, - _vq_lengthlist__8u0__p7_2, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist__8u0__p7_2, - NULL, - &_vq_auxt__8u0__p7_2, - NULL, - 0 -}; - -static long _huff_lengthlist__8u0__single[] = { - 4, 7,11, 9,12, 8, 7,10, 6, 4, 5, 5, 7, 5, 6,16, - 9, 5, 5, 6, 7, 7, 9,16, 7, 4, 6, 5, 7, 5, 7,17, - 10, 7, 7, 8, 7, 7, 8,18, 7, 5, 6, 4, 5, 4, 5,15, - 7, 6, 7, 5, 6, 4, 5,15,12,13,18,12,17,11, 9,17, -}; - -static static_codebook _huff_book__8u0__single = { - 2, 64, - _huff_lengthlist__8u0__single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p1_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u1__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9,10, 7, - 9, 9, 5, 8, 8, 7,10, 9, 7, 9, 9, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10, 9,10,12,10,12,12, 7,10,10, - 9,12,11,10,12,12, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10,10,12,12, 9,11,12, 7,10,10,10,12,12, 9,12, - 10, -}; - -static float _vq_quantthresh__8u1__p1_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8u1__p1_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p1_0 = { - _vq_quantthresh__8u1__p1_0, - _vq_quantmap__8u1__p1_0, - 3, - 3 -}; - -static static_codebook _8u1__p1_0 = { - 4, 81, - _vq_lengthlist__8u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8u1__p1_0, - NULL, - &_vq_auxt__8u1__p1_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p2_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u1__p2_0[] = { - 3, 4, 5, 5, 6, 6, 5, 6, 6, 5, 7, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 7, 8, - 8, 6, 7, 7, 6, 8, 7, 7, 7, 9, 8, 9, 9, 6, 7, 8, - 7, 9, 7, 8, 9, 9, 5, 6, 6, 6, 7, 7, 7, 8, 8, 6, - 8, 7, 8, 9, 9, 7, 7, 9, 6, 7, 8, 8, 9, 9, 7, 9, - 7, -}; - -static float _vq_quantthresh__8u1__p2_0[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap__8u1__p2_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p2_0 = { - _vq_quantthresh__8u1__p2_0, - _vq_quantmap__8u1__p2_0, - 3, - 3 -}; - -static static_codebook _8u1__p2_0 = { - 4, 81, - _vq_lengthlist__8u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist__8u1__p2_0, - NULL, - &_vq_auxt__8u1__p2_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8u1__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 10, 9,11,11, 9, 9, 9,11,11, 6, 8, 8,10,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,11,11,12,12,10,11,11, - 12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, - 11,10,11,11,12,12,10,11,11,12,12, 9,11,11,14,13, - 10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12, - 13,13,15,14, 8,11,11,13,14,10,11,12,13,15,10,11, - 12,14,14,12,13,13,14,15,12,13,13,14,15, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, - 13,11,12,12,13,14, 8,10,10,12,12, 9,11,12,13,14, - 10,12,12,13,13,12,12,13,14,14,11,13,13,15,15, 7, - 10,10,12,12, 9,12,11,14,12,10,11,12,13,14,12,13, - 12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13, - 15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17, - 15, 9,12,12,14,15,11,13,12,15,15,11,13,13,15,15, - 13,14,13,15,14,13,14,14,17, 0, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, - 12,14,14, 7,10,10,12,12,10,12,12,13,13, 9,11,12, - 12,13,11,12,13,15,15,11,12,13,14,15, 8,10,10,12, - 12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14, - 12,13,12,15,13, 9,12,12,14,14,11,13,13,16,15,11, - 12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12, - 12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15, - 16,17,13,15,14,16,15, 8,11,11,14,15,10,12,12,15, - 15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16, - 9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14, - 15,16,19,17,13,15,15, 0,17, 9,12,12,15,15,11,14, - 13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15, - 17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18, - 18,15,15,16,15,19,14,16,16, 0, 0,11,14,14,16,17, - 12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14, - 16,16,18,18, 7,11,11,14,14,10,12,12,15,15,10,12, - 13,15,15,13,14,15,16,16,14,15,15,18,18, 9,12,12, - 15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17, - 16,15,16,16,17,17, 9,12,12,15,15,11,13,13,15,17, - 11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11, - 14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16, - 16,19,18,16,15,17,17, 0,11,14,14,17,17,12,15,15, - 18, 0,12,15,14,18,16,14,17,17,19, 0,16,18,15, 0, - 16, -}; - -static float _vq_quantthresh__8u1__p3_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8u1__p3_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p3_0 = { - _vq_quantthresh__8u1__p3_0, - _vq_quantmap__8u1__p3_0, - 5, - 5 -}; - -static static_codebook _8u1__p3_0 = { - 4, 625, - _vq_lengthlist__8u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8u1__p3_0, - NULL, - &_vq_auxt__8u1__p3_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist__8u1__p4_0[] = { - 4, 5, 5, 9, 9, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, - 8, 9,10, 7, 7, 8, 9,10, 9, 9,10,10,11, 9, 9,10, - 10,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 7,10, - 9, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, - 9,10,10,12,11, 9,10,10,12,12,11,11,12,12,13,11, - 11,12,12,13, 9, 9,10,12,11, 9,10,10,12,12,10,10, - 10,12,12,11,12,11,13,12,11,12,11,13,12, 6, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 7,10, 9,10,10,10,12, - 12,10,10,10,12,11, 7, 8, 7,10,10, 7, 7, 9,10,11, - 8, 9, 9,11,10,10,10,11,10,12,10,10,11,12,12, 7, - 8, 8,10,10, 7, 9, 8,11,10, 8, 8, 9,11,11,10,11, - 10,12,11,10,11,11,12,12, 9,10,10,12,12, 9,10,10, - 12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13, - 14, 9,10,10,12,12, 9,11,10,12,12,10,11,11,12,12, - 11,12,11,14,12,12,12,12,14,14, 5, 7, 7, 9, 9, 7, - 7, 7, 9,10, 7, 8, 8,10,10,10,10,10,11,11,10,10, - 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,10,10,11,12,10,10,11,11,13, 6, 7, 8,10, - 10, 8, 9, 9,10,10, 7, 9, 7,11,10,10,11,10,12,12, - 10,11,10,12,10, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,12,12,12,12,14,13,11,11,12,11,14, 9,10, - 10,11,12,10,11,11,12,13, 9,10,10,12,12,12,12,12, - 14,13,11,12,10,14,11, 9, 9,10,11,12, 9,10,10,12, - 12, 9,10,10,12,12,12,12,12,14,14,11,12,12,13,12, - 9,10, 9,12,12, 9,10,11,12,13,10,11,10,13,11,12, - 12,13,13,14,12,12,12,13,13, 9,10,10,12,12,10,11, - 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12, - 13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14, - 13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14, - 10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13, - 13,14,14,14, 9,10, 9,12,12, 9,10,10,12,12,10,10, - 10,12,12,11,11,12,12,13,12,12,12,14,14, 9,10,10, - 12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14, - 13,12,12,13,13,14, 9,10,10,12,13,10,10,11,11,12, - 9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11, - 12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13, - 13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12, - 13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15, - 10, -}; - -static float _vq_quantthresh__8u1__p4_0[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap__8u1__p4_0[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p4_0 = { - _vq_quantthresh__8u1__p4_0, - _vq_quantmap__8u1__p4_0, - 5, - 5 -}; - -static static_codebook _8u1__p4_0 = { - 4, 625, - _vq_lengthlist__8u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist__8u1__p4_0, - NULL, - &_vq_auxt__8u1__p4_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8u1__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 5, 8, 7, 8, 8, - 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, - 9, 9,10,10,12,11, 8, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,11,11,11,13,12, 9,10,10,11,11,12,12,12, - 13, -}; - -static float _vq_quantthresh__8u1__p5_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8u1__p5_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p5_0 = { - _vq_quantthresh__8u1__p5_0, - _vq_quantmap__8u1__p5_0, - 9, - 9 -}; - -static static_codebook _8u1__p5_0 = { - 2, 81, - _vq_lengthlist__8u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8u1__p5_0, - NULL, - &_vq_auxt__8u1__p5_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist__8u1__p6_0[] = { - 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 5, 6, 6, 7, 7, - 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, - 8, 8, 9, 9, 6, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, - 8, 8, 8, 9,10,10, 7, 7, 7, 8, 8, 9, 8,10,10, 9, - 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, - 10, -}; - -static float _vq_quantthresh__8u1__p6_0[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap__8u1__p6_0[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p6_0 = { - _vq_quantthresh__8u1__p6_0, - _vq_quantmap__8u1__p6_0, - 9, - 9 -}; - -static static_codebook _8u1__p6_0 = { - 2, 81, - _vq_lengthlist__8u1__p6_0, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist__8u1__p6_0, - NULL, - &_vq_auxt__8u1__p6_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p7_0[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist__8u1__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,10,10, 8, - 10,10, 5, 9, 9, 7,10,10, 8,10,10, 4,10,10, 9,12, - 12, 9,11,11, 7,12,11,10,11,13,10,13,13, 7,12,12, - 10,13,12,10,13,13, 4,10,10, 9,12,12, 9,12,12, 7, - 12,12,10,13,13,10,12,13, 7,11,12,10,13,13,10,13, - 11, -}; - -static float _vq_quantthresh__8u1__p7_0[] = { - -5.5, 5.5, -}; - -static long _vq_quantmap__8u1__p7_0[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p7_0 = { - _vq_quantthresh__8u1__p7_0, - _vq_quantmap__8u1__p7_0, - 3, - 3 -}; - -static static_codebook _8u1__p7_0 = { - 4, 81, - _vq_lengthlist__8u1__p7_0, - 1, -529137664, 1618345984, 2, 0, - _vq_quantlist__8u1__p7_0, - NULL, - &_vq_auxt__8u1__p7_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__8u1__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, - 8, 8, 9, 9, 9, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 9, - 9, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 9, 9, - 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, - 9, 9, 9, 9, 9,10,10,10,10, -}; - -static float _vq_quantthresh__8u1__p7_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__8u1__p7_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p7_1 = { - _vq_quantthresh__8u1__p7_1, - _vq_quantmap__8u1__p7_1, - 11, - 11 -}; - -static static_codebook _8u1__p7_1 = { - 2, 121, - _vq_lengthlist__8u1__p7_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__8u1__p7_1, - NULL, - &_vq_auxt__8u1__p7_1, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__8u1__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, - 9, 9,11,11,13,12, 4, 6, 6, 7, 7, 9, 9,11,11,12, - 12, 6, 7, 7, 9, 9,11,11,12,12,13,13, 6, 7, 7, 9, - 9,11,11,12,12,13,13, 8, 9, 9,11,11,12,12,13,13, - 14,14, 8, 9, 9,11,11,12,12,13,13,14,14, 9,11,11, - 12,12,13,13,14,14,15,15, 9,11,11,12,12,13,13,14, - 14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static float _vq_quantthresh__8u1__p8_0[] = { - -49.5, -38.5, -27.5, -16.5, -5.5, 5.5, 16.5, 27.5, - 38.5, 49.5, -}; - -static long _vq_quantmap__8u1__p8_0[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p8_0 = { - _vq_quantthresh__8u1__p8_0, - _vq_quantmap__8u1__p8_0, - 11, - 11 -}; - -static static_codebook _8u1__p8_0 = { - 2, 121, - _vq_lengthlist__8u1__p8_0, - 1, -524582912, 1618345984, 4, 0, - _vq_quantlist__8u1__p8_0, - NULL, - &_vq_auxt__8u1__p8_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static long _vq_lengthlist__8u1__p8_1[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, - 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, - 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, -}; - -static float _vq_quantthresh__8u1__p8_1[] = { - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, -}; - -static long _vq_quantmap__8u1__p8_1[] = { - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p8_1 = { - _vq_quantthresh__8u1__p8_1, - _vq_quantmap__8u1__p8_1, - 11, - 11 -}; - -static static_codebook _8u1__p8_1 = { - 2, 121, - _vq_lengthlist__8u1__p8_1, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist__8u1__p8_1, - NULL, - &_vq_auxt__8u1__p8_1, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__8u1__p9_0[] = { - 1, 4, 4,11,11,11,11,11,11,11,11,11,11,11,11, 3, - 11, 8,11,11,11,11,11,11,11,11,11,11,11,11, 3, 9, - 9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__8u1__p9_0[] = { - -1657.5, -1402.5, -1147.5, -892.5, -637.5, -382.5, -127.5, 127.5, - 382.5, 637.5, 892.5, 1147.5, 1402.5, 1657.5, -}; - -static long _vq_quantmap__8u1__p9_0[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p9_0 = { - _vq_quantthresh__8u1__p9_0, - _vq_quantmap__8u1__p9_0, - 15, - 15 -}; - -static static_codebook _8u1__p9_0 = { - 2, 225, - _vq_lengthlist__8u1__p9_0, - 1, -514071552, 1627381760, 4, 0, - _vq_quantlist__8u1__p9_0, - NULL, - &_vq_auxt__8u1__p9_0, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static long _vq_lengthlist__8u1__p9_1[] = { - 1, 4, 4, 7, 7, 9, 9, 7, 7, 8, 8,10,10,11,11, 4, - 7, 7, 9, 9,10,10, 8, 8,10,10,10,11,10,11, 4, 7, - 7, 9, 9,10,10, 8, 8,10, 9,11,11,11,11, 7, 9, 9, - 12,12,11,12,10,10,11,10,12,11,11,11, 7, 9, 9,11, - 11,13,12, 9, 9,11,10,11,11,12,11, 9,10,10,12,12, - 14,14,10,10,11,12,12,11,11,11, 9,10,11,11,13,14, - 13,10,11,11,11,12,11,12,12, 7, 8, 8,10, 9,11,10, - 11,12,12,11,12,14,12,13, 7, 8, 8, 9,10,10,11,12, - 12,12,11,12,12,12,13, 9, 9, 9,11,11,13,12,12,12, - 12,11,12,12,13,12, 8,10,10,11,10,11,12,12,12,12, - 12,12,14,12,12, 9,11,11,11,12,12,12,12,13,13,12, - 12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12, - 12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12, - 12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14, - 13, -}; - -static float _vq_quantthresh__8u1__p9_1[] = { - -110.5, -93.5, -76.5, -59.5, -42.5, -25.5, -8.5, 8.5, - 25.5, 42.5, 59.5, 76.5, 93.5, 110.5, -}; - -static long _vq_quantmap__8u1__p9_1[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p9_1 = { - _vq_quantthresh__8u1__p9_1, - _vq_quantmap__8u1__p9_1, - 15, - 15 -}; - -static static_codebook _8u1__p9_1 = { - 2, 225, - _vq_lengthlist__8u1__p9_1, - 1, -522338304, 1620115456, 4, 0, - _vq_quantlist__8u1__p9_1, - NULL, - &_vq_auxt__8u1__p9_1, - NULL, - 0 -}; - -static long _vq_quantlist__8u1__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static long _vq_lengthlist__8u1__p9_2[] = { - 2, 5, 4, 6, 6, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10, 8, 8, 8, 9, 9, 9, 9,10,10,10, 9, - 10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh__8u1__p9_2[] = { - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, -}; - -static long _vq_quantmap__8u1__p9_2[] = { - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, -}; - -static encode_aux_threshmatch _vq_auxt__8u1__p9_2 = { - _vq_quantthresh__8u1__p9_2, - _vq_quantmap__8u1__p9_2, - 17, - 17 -}; - -static static_codebook _8u1__p9_2 = { - 2, 289, - _vq_lengthlist__8u1__p9_2, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist__8u1__p9_2, - NULL, - &_vq_auxt__8u1__p9_2, - NULL, - 0 -}; - -static long _huff_lengthlist__8u1__single[] = { - 4, 7,13, 9,15, 9,16, 8,10,13, 7, 5, 8, 6, 9, 7, - 10, 7,10,11,11, 6, 7, 8, 8, 9, 9, 9,12,16, 8, 5, - 8, 6, 8, 6, 9, 7,10,12,11, 7, 7, 7, 6, 7, 7, 7, - 11,15, 7, 5, 8, 6, 7, 5, 7, 6, 9,13,13, 9, 9, 8, - 6, 6, 5, 5, 9,14, 8, 6, 8, 6, 6, 4, 5, 3, 5,13, - 9, 9,11, 8,10, 7, 8, 4, 5,12,11,16,17,15,17,12, - 13, 8, 8,15, -}; - -static static_codebook _huff_book__8u1__single = { - 2, 100, - _huff_lengthlist__8u1__single, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - NULL, - 0 -}; - diff --git a/libvorbis-1.0.1/lib/lookup_data.h b/libvorbis-1.0.1/lib/lookup_data.h deleted file mode 100644 index ea4ab73..0000000 --- a/libvorbis-1.0.1/lib/lookup_data.h +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: lookup data; generated by lookups.pl; edit there - last mod: $Id: lookup_data.h,v 1.10 2003/01/18 08:09:28 msmith Exp $ - - ********************************************************************/ - -#ifndef _V_LOOKUP_DATA_H_ - -#ifdef FLOAT_LOOKUP -#define COS_LOOKUP_SZ 128 -static float COS_LOOKUP[COS_LOOKUP_SZ+1]={ - +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f, - +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f, - +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f, - +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f, - +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f, - +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f, - +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f, - +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f, - +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f, - +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f, - +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f, - +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f, - +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f, - +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f, - +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f, - +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f, - +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f, - -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f, - -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f, - -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f, - -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f, - -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f, - -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f, - -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f, - -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f, - -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f, - -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f, - -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f, - -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f, - -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f, - -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f, - -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f, - -1.0000000000000f, -}; - -#define INVSQ_LOOKUP_SZ 32 -static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ - 1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f, - 1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f, - 1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f, - 1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f, - 1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f, - 1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f, - 1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f, - 1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f, - 1.000000000000f, -}; - -#define INVSQ2EXP_LOOKUP_MIN (-32) -#define INVSQ2EXP_LOOKUP_MAX 32 -static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ - INVSQ2EXP_LOOKUP_MIN+1]={ - 65536.f, 46340.95001f, 32768.f, 23170.47501f, - 16384.f, 11585.2375f, 8192.f, 5792.618751f, - 4096.f, 2896.309376f, 2048.f, 1448.154688f, - 1024.f, 724.0773439f, 512.f, 362.038672f, - 256.f, 181.019336f, 128.f, 90.50966799f, - 64.f, 45.254834f, 32.f, 22.627417f, - 16.f, 11.3137085f, 8.f, 5.656854249f, - 4.f, 2.828427125f, 2.f, 1.414213562f, - 1.f, 0.7071067812f, 0.5f, 0.3535533906f, - 0.25f, 0.1767766953f, 0.125f, 0.08838834765f, - 0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f, - 0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f, - 0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f, - 0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f, - 0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f, - 6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f, - 1.525878906e-05f, -}; - -#endif - -#define FROMdB_LOOKUP_SZ 35 -#define FROMdB2_LOOKUP_SZ 32 -#define FROMdB_SHIFT 5 -#define FROMdB2_SHIFT 3 -#define FROMdB2_MASK 31 -static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ - 1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f, - 0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f, - 0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f, - 0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f, - 0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f, - 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f, - 1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f, - 2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f, - 3.981071706e-07f,2.511886432e-07f,1.584893192e-07f, -}; - -static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ - 0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f, - 0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f, - 0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f, - 0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f, - 0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f, - 0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f, - 0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f, - 0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f, -}; - -#ifdef INT_LOOKUP - -#define INVSQ_LOOKUP_I_SHIFT 10 -#define INVSQ_LOOKUP_I_MASK 1023 -static long INVSQ_LOOKUP_I[64+1]={ - 92682l, 91966l, 91267l, 90583l, - 89915l, 89261l, 88621l, 87995l, - 87381l, 86781l, 86192l, 85616l, - 85051l, 84497l, 83953l, 83420l, - 82897l, 82384l, 81880l, 81385l, - 80899l, 80422l, 79953l, 79492l, - 79039l, 78594l, 78156l, 77726l, - 77302l, 76885l, 76475l, 76072l, - 75674l, 75283l, 74898l, 74519l, - 74146l, 73778l, 73415l, 73058l, - 72706l, 72359l, 72016l, 71679l, - 71347l, 71019l, 70695l, 70376l, - 70061l, 69750l, 69444l, 69141l, - 68842l, 68548l, 68256l, 67969l, - 67685l, 67405l, 67128l, 66855l, - 66585l, 66318l, 66054l, 65794l, - 65536l, -}; - -#define COS_LOOKUP_I_SHIFT 9 -#define COS_LOOKUP_I_MASK 511 -#define COS_LOOKUP_I_SZ 128 -static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ - 16384l, 16379l, 16364l, 16340l, - 16305l, 16261l, 16207l, 16143l, - 16069l, 15986l, 15893l, 15791l, - 15679l, 15557l, 15426l, 15286l, - 15137l, 14978l, 14811l, 14635l, - 14449l, 14256l, 14053l, 13842l, - 13623l, 13395l, 13160l, 12916l, - 12665l, 12406l, 12140l, 11866l, - 11585l, 11297l, 11003l, 10702l, - 10394l, 10080l, 9760l, 9434l, - 9102l, 8765l, 8423l, 8076l, - 7723l, 7366l, 7005l, 6639l, - 6270l, 5897l, 5520l, 5139l, - 4756l, 4370l, 3981l, 3590l, - 3196l, 2801l, 2404l, 2006l, - 1606l, 1205l, 804l, 402l, - 0l, -401l, -803l, -1204l, - -1605l, -2005l, -2403l, -2800l, - -3195l, -3589l, -3980l, -4369l, - -4755l, -5138l, -5519l, -5896l, - -6269l, -6638l, -7004l, -7365l, - -7722l, -8075l, -8422l, -8764l, - -9101l, -9433l, -9759l, -10079l, - -10393l, -10701l, -11002l, -11296l, - -11584l, -11865l, -12139l, -12405l, - -12664l, -12915l, -13159l, -13394l, - -13622l, -13841l, -14052l, -14255l, - -14448l, -14634l, -14810l, -14977l, - -15136l, -15285l, -15425l, -15556l, - -15678l, -15790l, -15892l, -15985l, - -16068l, -16142l, -16206l, -16260l, - -16304l, -16339l, -16363l, -16378l, - -16383l, -}; - -#endif - -#endif diff --git a/libvorbis-1.0.1/lib/mapping0.c b/libvorbis-1.0.1/lib/mapping0.c deleted file mode 100644 index 148d087..0000000 --- a/libvorbis-1.0.1/lib/mapping0.c +++ /dev/null @@ -1,763 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: channel mapping 0 implementation - last mod: $Id: mapping0.c,v 1.60 2003/09/01 23:05:49 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "window.h" -#include "registry.h" -#include "psy.h" -#include "misc.h" - -/* simplistic, wasteful way of doing this (unique lookup for each - mode/submapping); there should be a central repository for - identical lookups. That will require minor work, so I'm putting it - off as low priority. - - Why a lookup for each backend in a given mode? Because the - blocksize is set by the mode, and low backend lookups may require - parameters from other areas of the mode/mapping */ - -static void mapping0_free_info(vorbis_info_mapping *i){ - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i; - if(info){ - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -static int ilog(unsigned int v){ - int ret=0; - if(v)--v; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm, - oggpack_buffer *opb){ - int i; - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; - - /* another 'we meant to do it this way' hack... up to beta 4, we - packed 4 binary zeros here to signify one submapping in use. We - now redefine that to mean four bitflags that indicate use of - deeper features; bit0:submappings, bit1:coupling, - bit2,3:reserved. This is backward compatable with all actual uses - of the beta code. */ - - if(info->submaps>1){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->submaps-1,4); - }else - oggpack_write(opb,0,1); - - if(info->coupling_steps>0){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->coupling_steps-1,8); - - for(i=0;icoupling_steps;i++){ - oggpack_write(opb,info->coupling_mag[i],ilog(vi->channels)); - oggpack_write(opb,info->coupling_ang[i],ilog(vi->channels)); - } - }else - oggpack_write(opb,0,1); - - oggpack_write(opb,0,2); /* 2,3:reserved */ - - /* we don't write the channel submappings if we only have one... */ - if(info->submaps>1){ - for(i=0;ichannels;i++) - oggpack_write(opb,info->chmuxlist[i],4); - } - for(i=0;isubmaps;i++){ - oggpack_write(opb,0,8); /* time submap unused */ - oggpack_write(opb,info->floorsubmap[i],8); - oggpack_write(opb,info->residuesubmap[i],8); - } -} - -/* also responsible for range checking */ -static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ - int i; - vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info)); - codec_setup_info *ci=vi->codec_setup; - memset(info,0,sizeof(*info)); - - if(oggpack_read(opb,1)) - info->submaps=oggpack_read(opb,4)+1; - else - info->submaps=1; - - if(oggpack_read(opb,1)){ - info->coupling_steps=oggpack_read(opb,8)+1; - - for(i=0;icoupling_steps;i++){ - int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels)); - int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels)); - - if(testM<0 || - testA<0 || - testM==testA || - testM>=vi->channels || - testA>=vi->channels) goto err_out; - } - - } - - if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */ - - if(info->submaps>1){ - for(i=0;ichannels;i++){ - info->chmuxlist[i]=oggpack_read(opb,4); - if(info->chmuxlist[i]>=info->submaps)goto err_out; - } - } - for(i=0;isubmaps;i++){ - oggpack_read(opb,8); /* time submap unused */ - info->floorsubmap[i]=oggpack_read(opb,8); - if(info->floorsubmap[i]>=ci->floors)goto err_out; - info->residuesubmap[i]=oggpack_read(opb,8); - if(info->residuesubmap[i]>=ci->residues)goto err_out; - } - - return info; - - err_out: - mapping0_free_info(info); - return(NULL); -} - -#include "os.h" -#include "lpc.h" -#include "lsp.h" -#include "envelope.h" -#include "mdct.h" -#include "psy.h" -#include "scales.h" - -#if 0 -static long seq=0; -static ogg_int64_t total=0; -static float FLOOR1_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, -}; - -#endif - -extern int *floor1_fit(vorbis_block *vb,vorbis_look_floor *look, - const float *logmdct, /* in */ - const float *logmask); -extern int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor *look, - int *A,int *B, - int del); -extern int floor1_encode(vorbis_block *vb,vorbis_look_floor *look, - int *post,int *ilogmask); - - -static int mapping0_forward(vorbis_block *vb){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=vb->vd->backend_state; - vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; - int n=vb->pcmend; - int i,j,k; - - int *nonzero = alloca(sizeof(*nonzero)*vi->channels); - float **gmdct = _vorbis_block_alloc(vb,vi->channels*sizeof(*gmdct)); - int **ilogmaskch= _vorbis_block_alloc(vb,vi->channels*sizeof(*ilogmaskch)); - int ***floor_posts = _vorbis_block_alloc(vb,vi->channels*sizeof(*floor_posts)); - - float global_ampmax=vbi->ampmax; - float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels); - int blocktype=vbi->blocktype; - - int modenumber=vb->W; - vorbis_info_mapping0 *info=ci->map_param[modenumber]; - vorbis_look_psy *psy_look= - b->psy+blocktype+(vb->W?2:0); - - vb->mode=modenumber; - - for(i=0;ichannels;i++){ - float scale=4.f/n; - float scale_dB; - - float *pcm =vb->pcm[i]; - float *logfft =pcm; - - gmdct[i]=_vorbis_block_alloc(vb,n/2*sizeof(**gmdct)); - - scale_dB=todB(&scale); - -#if 0 - if(vi->channels==2) - if(i==0) - _analysis_output("pcmL",seq,pcm,n,0,0,total-n/2); - else - _analysis_output("pcmR",seq,pcm,n,0,0,total-n/2); -#endif - - /* window the PCM data */ - _vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW); - -#if 0 - if(vi->channels==2) - if(i==0) - _analysis_output("windowedL",seq,pcm,n,0,0,total-n/2); - else - _analysis_output("windowedR",seq,pcm,n,0,0,total-n/2); -#endif - - /* transform the PCM data */ - /* only MDCT right now.... */ - mdct_forward(b->transform[vb->W][0],pcm,gmdct[i]); - - /* FFT yields more accurate tonal estimation (not phase sensitive) */ - drft_forward(&b->fft_look[vb->W],pcm); - logfft[0]=scale_dB+todB(pcm); - local_ampmax[i]=logfft[0]; - for(j=1;j>1]=scale_dB+.5f*todB(&temp); - if(temp>local_ampmax[i])local_ampmax[i]=temp; - } - - if(local_ampmax[i]>0.f)local_ampmax[i]=0.f; - if(local_ampmax[i]>global_ampmax)global_ampmax=local_ampmax[i]; - -#if 0 - if(vi->channels==2) - if(i==0) - _analysis_output("fftL",seq,logfft,n/2,1,0,0); - else - _analysis_output("fftR",seq,logfft,n/2,1,0,0); -#endif - - } - - { - float *noise = _vorbis_block_alloc(vb,n/2*sizeof(*noise)); - float *tone = _vorbis_block_alloc(vb,n/2*sizeof(*tone)); - - for(i=0;ichannels;i++){ - /* the encoder setup assumes that all the modes used by any - specific bitrate tweaking use the same floor */ - - int submap=info->chmuxlist[i]; - - /* the following makes things clearer to *me* anyway */ - float *mdct =gmdct[i]; - float *logfft =vb->pcm[i]; - - float *logmdct =logfft+n/2; - float *logmask =logfft; - - vb->mode=modenumber; - - floor_posts[i]=_vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts)); - memset(floor_posts[i],0,sizeof(**floor_posts)*PACKETBLOBS); - - for(j=0;jchannels==2){ - if(i==0) - _analysis_output("mdctL",seq,logmdct,n/2,1,0,0); - else - _analysis_output("mdctR",seq,logmdct,n/2,1,0,0); - }else{ - _analysis_output("mdct",seq,logmdct,n/2,1,0,0); - } -#endif - - /* first step; noise masking. Not only does 'noise masking' - give us curves from which we can decide how much resolution - to give noise parts of the spectrum, it also implicitly hands - us a tonality estimate (the larger the value in the - 'noise_depth' vector, the more tonal that area is) */ - - _vp_noisemask(psy_look, - logmdct, - noise); /* noise does not have by-frequency offset - bias applied yet */ -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("noiseL",seq,noise,n/2,1,0,0); - else - _analysis_output("noiseR",seq,noise,n/2,1,0,0); - } -#endif - - /* second step: 'all the other crap'; all the stuff that isn't - computed/fit for bitrate management goes in the second psy - vector. This includes tone masking, peak limiting and ATH */ - - _vp_tonemask(psy_look, - logfft, - tone, - global_ampmax, - local_ampmax[i]); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("toneL",seq,tone,n/2,1,0,0); - else - _analysis_output("toneR",seq,tone,n/2,1,0,0); - } -#endif - - /* third step; we offset the noise vectors, overlay tone - masking. We then do a floor1-specific line fit. If we're - performing bitrate management, the line fit is performed - multiple times for up/down tweakage on demand. */ - - _vp_offset_and_mix(psy_look, - noise, - tone, - 1, - logmask); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("mask1L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask1R",seq,logmask,n/2,1,0,0); - } -#endif - - /* this algorithm is hardwired to floor 1 for now; abort out if - we're *not* floor1. This won't happen unless someone has - broken the encode setup lib. Guard it anyway. */ - if(ci->floor_type[info->floorsubmap[submap]]!=1)return(-1); - - floor_posts[i][PACKETBLOBS/2]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* are we managing bitrate? If so, perform two more fits for - later rate tweaking (fits represent hi/lo) */ - if(vorbis_bitrate_managed(vb) && floor_posts[i][PACKETBLOBS/2]){ - /* higher rate by way of lower noise curve */ - - _vp_offset_and_mix(psy_look, - noise, - tone, - 2, - logmask); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("mask2L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask2R",seq,logmask,n/2,1,0,0); - } -#endif - - floor_posts[i][PACKETBLOBS-1]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* lower rate by way of higher noise curve */ - _vp_offset_and_mix(psy_look, - noise, - tone, - 0, - logmask); - -#if 0 - if(vi->channels==2) - if(i==0) - _analysis_output("mask0L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask0R",seq,logmask,n/2,1,0,0); -#endif - - floor_posts[i][0]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* we also interpolate a range of intermediate curves for - intermediate rates */ - for(k=1;kflr[info->floorsubmap[submap]], - floor_posts[i][0], - floor_posts[i][PACKETBLOBS/2], - k*65536/(PACKETBLOBS/2)); - for(k=PACKETBLOBS/2+1;kflr[info->floorsubmap[submap]], - floor_posts[i][PACKETBLOBS/2], - floor_posts[i][PACKETBLOBS-1], - (k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2)); - } - } - } - vbi->ampmax=global_ampmax; - - /* - the next phases are performed once for vbr-only and PACKETBLOB - times for bitrate managed modes. - - 1) encode actual mode being used - 2) encode the floor for each channel, compute coded mask curve/res - 3) normalize and couple. - 4) encode residue - 5) save packet bytes to the packetblob vector - - */ - - /* iterate over the many masking curve fits we've created */ - - { - float **res_bundle=alloca(sizeof(*res_bundle)*vi->channels); - float **couple_bundle=alloca(sizeof(*couple_bundle)*vi->channels); - int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); - int **sortindex=alloca(sizeof(*sortindex)*vi->channels); - float **mag_memo; - int **mag_sort; - - if(info->coupling_steps){ - mag_memo=_vp_quantize_couple_memo(vb, - &ci->psy_g_param, - psy_look, - info, - gmdct); - - mag_sort=_vp_quantize_couple_sort(vb, - psy_look, - info, - mag_memo); - } - - memset(sortindex,0,sizeof(*sortindex)*vi->channels); - if(psy_look->vi->normal_channel_p){ - for(i=0;ichannels;i++){ - float *mdct =gmdct[i]; - sortindex[i]=alloca(sizeof(**sortindex)*n/2); - _vp_noise_normalize_sort(psy_look,mdct,sortindex[i]); - } - } - - for(k=(vorbis_bitrate_managed(vb)?0:PACKETBLOBS/2); - k<=(vorbis_bitrate_managed(vb)?PACKETBLOBS-1:PACKETBLOBS/2); - k++){ - - /* start out our new packet blob with packet type and mode */ - /* Encode the packet type */ - oggpack_write(&vb->opb,0,1); - /* Encode the modenumber */ - /* Encode frame mode, pre,post windowsize, then dispatch */ - oggpack_write(&vb->opb,modenumber,b->modebits); - if(vb->W){ - oggpack_write(&vb->opb,vb->lW,1); - oggpack_write(&vb->opb,vb->nW,1); - } - - /* encode floor, compute masking curve, sep out residue */ - for(i=0;ichannels;i++){ - int submap=info->chmuxlist[i]; - float *mdct =gmdct[i]; - float *res =vb->pcm[i]; - int *ilogmask=ilogmaskch[i]= - _vorbis_block_alloc(vb,n/2*sizeof(**gmdct)); - - nonzero[i]=floor1_encode(vb,b->flr[info->floorsubmap[submap]], - floor_posts[i][k], - ilogmask); -#if 0 - { - char buf[80]; - sprintf(buf,"maskI%c%d",i?'R':'L',k); - float work[n/2]; - for(j=0;jpsy_g_param.sliding_lowpass[vb->W][k]); - - _vp_noise_normalize(psy_look,res,res+n/2,sortindex[i]); - - -#if 0 - { - char buf[80]; - float work[n/2]; - for(j=0;jcoupling_steps){ - _vp_couple(k, - &ci->psy_g_param, - psy_look, - info, - vb->pcm, - mag_memo, - mag_sort, - ilogmaskch, - nonzero, - ci->psy_g_param.sliding_lowpass[vb->W][k]); - } - - /* classify and encode by submap */ - for(i=0;isubmaps;i++){ - int ch_in_bundle=0; - long **classifications; - int resnum=info->residuesubmap[i]; - - for(j=0;jchannels;j++){ - if(info->chmuxlist[j]==i){ - zerobundle[ch_in_bundle]=0; - if(nonzero[j])zerobundle[ch_in_bundle]=1; - res_bundle[ch_in_bundle]=vb->pcm[j]; - couple_bundle[ch_in_bundle++]=vb->pcm[j]+n/2; - } - } - - classifications=_residue_P[ci->residue_type[resnum]]-> - class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle); - - _residue_P[ci->residue_type[resnum]]-> - forward(vb,b->residue[resnum], - couple_bundle,NULL,zerobundle,ch_in_bundle,classifications); - } - - /* ok, done encoding. Mark this protopacket and prepare next. */ - oggpack_writealign(&vb->opb); - vbi->packetblob_markers[k]=oggpack_bytes(&vb->opb); - - } - - } - -#if 0 - seq++; - total+=ci->blocksizes[vb->W]/4+ci->blocksizes[vb->nW]/4; -#endif - return(0); -} - -static int mapping0_inverse(vorbis_block *vb,vorbis_info_mapping *l){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=vd->backend_state; - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)l; - int hs=ci->halfrate_flag; - - int i,j; - long n=vb->pcmend=ci->blocksizes[vb->W]; - - float **pcmbundle=alloca(sizeof(*pcmbundle)*vi->channels); - int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); - - int *nonzero =alloca(sizeof(*nonzero)*vi->channels); - void **floormemo=alloca(sizeof(*floormemo)*vi->channels); - - /* recover the spectral envelope; store it in the PCM vector for now */ - for(i=0;ichannels;i++){ - int submap=info->chmuxlist[i]; - floormemo[i]=_floor_P[ci->floor_type[info->floorsubmap[submap]]]-> - inverse1(vb,b->flr[info->floorsubmap[submap]]); - if(floormemo[i]) - nonzero[i]=1; - else - nonzero[i]=0; - memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2); - } - - /* channel coupling can 'dirty' the nonzero listing */ - for(i=0;icoupling_steps;i++){ - if(nonzero[info->coupling_mag[i]] || - nonzero[info->coupling_ang[i]]){ - nonzero[info->coupling_mag[i]]=1; - nonzero[info->coupling_ang[i]]=1; - } - } - - /* recover the residue into our working vectors */ - for(i=0;isubmaps;i++){ - int ch_in_bundle=0; - for(j=0;jchannels;j++){ - if(info->chmuxlist[j]==i){ - if(nonzero[j]) - zerobundle[ch_in_bundle]=1; - else - zerobundle[ch_in_bundle]=0; - pcmbundle[ch_in_bundle++]=vb->pcm[j]; - } - } - - _residue_P[ci->residue_type[info->residuesubmap[i]]]-> - inverse(vb,b->residue[info->residuesubmap[i]], - pcmbundle,zerobundle,ch_in_bundle); - } - - /* channel coupling */ - for(i=info->coupling_steps-1;i>=0;i--){ - float *pcmM=vb->pcm[info->coupling_mag[i]]; - float *pcmA=vb->pcm[info->coupling_ang[i]]; - - for(j=0;j0) - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag-ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag+ang; - } - else - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag+ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag-ang; - } - } - } - - /* compute and apply spectral envelope */ - for(i=0;ichannels;i++){ - float *pcm=vb->pcm[i]; - int submap=info->chmuxlist[i]; - _floor_P[ci->floor_type[info->floorsubmap[submap]]]-> - inverse2(vb,b->flr[info->floorsubmap[submap]], - floormemo[i],pcm); - } - - /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ - /* only MDCT right now.... */ - for(i=0;ichannels;i++){ - float *pcm=vb->pcm[i]; - mdct_backward(b->transform[vb->W][0],pcm,pcm); - } - - /* all done! */ - return(0); -} - -/* export hooks */ -vorbis_func_mapping mapping0_exportbundle={ - &mapping0_pack, - &mapping0_unpack, - &mapping0_free_info, - &mapping0_forward, - &mapping0_inverse -}; - diff --git a/libvorbis-1.0.1/lib/masking.h b/libvorbis-1.0.1/lib/masking.h deleted file mode 100644 index 30cbbde..0000000 --- a/libvorbis-1.0.1/lib/masking.h +++ /dev/null @@ -1,785 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: masking curve data for psychoacoustics - last mod: $Id: masking.h,v 1.24 2002/07/01 11:20:11 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MASKING_H_ -#define _V_MASKING_H_ - -/* more detailed ATH; the bass if flat to save stressing the floor - overly for only a bin or two of savings. */ - -#define MAX_ATH 88 -static float ATH[]={ - /*15*/ -51, -52, -53, -54, -55, -56, -57, -58, - /*31*/ -59, -60, -61, -62, -63, -64, -65, -66, - /*63*/ -67, -68, -69, -70, -71, -72, -73, -74, - /*125*/ -75, -76, -77, -78, -80, -81, -82, -83, - /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, - /*500*/ -90, -91, -91, -92, -93, -94, -95, -96, - /*1k*/ -96, -97, -98, -98, -99, -99,-100,-100, - /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107, - /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96, - /*8k*/ -95, -95, -96, -97, -96, -95, -93, -90, - /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30 -}; - -/* The tone masking curves from Ehmer's and Fielder's papers have been - replaced by an empirically collected data set. The previously - published values were, far too often, simply on crack. */ - -#define EHMER_OFFSET 16 -#define EHMER_MAX 56 - -/* masking tones from -50 to 0dB, 62.5 through 16kHz at half octaves - test tones from -2 octaves to +5 octaves sampled at eighth octaves */ -/* (Vorbis 0dB, the loudest possible tone, is assumed to be ~100dB SPL - for collection of these curves) */ - -static float tonemasks[P_BANDS][6][EHMER_MAX]={ - /* 62.5 Hz */ - {{ -60, -60, -60, -60, -60, -60, -60, -60, - -60, -60, -60, -60, -62, -62, -65, -73, - -69, -68, -68, -67, -70, -70, -72, -74, - -75, -79, -79, -80, -83, -88, -93, -100, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -53, -61, -66, - -66, -68, -67, -70, -76, -76, -72, -73, - -75, -76, -78, -79, -83, -88, -93, -100, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -37, -37, -37, -37, -37, -37, -37, -37, - -38, -40, -42, -46, -48, -53, -55, -62, - -65, -58, -56, -56, -61, -60, -65, -67, - -69, -71, -77, -77, -78, -80, -82, -84, - -88, -93, -98, -106, -112, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -25, -25, -25, -25, -25, -25, -25, -25, - -25, -26, -27, -29, -32, -38, -48, -52, - -52, -50, -48, -48, -51, -52, -54, -60, - -67, -67, -66, -68, -69, -73, -73, -76, - -80, -81, -81, -85, -85, -86, -88, -93, - -100, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -16, -16, -16, -16, -16, -16, -16, -16, - -17, -19, -20, -22, -26, -28, -31, -40, - -47, -39, -39, -40, -42, -43, -47, -51, - -57, -52, -55, -55, -60, -58, -62, -63, - -70, -67, -69, -72, -73, -77, -80, -82, - -83, -87, -90, -94, -98, -104, -115, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -8, -8, -8, -8, -8, -8, -8, -8, - -8, -8, -10, -11, -15, -19, -25, -30, - -34, -31, -30, -31, -29, -32, -35, -42, - -48, -42, -44, -46, -50, -50, -51, -52, - -59, -54, -55, -55, -58, -62, -63, -66, - -72, -73, -76, -75, -78, -80, -80, -81, - -84, -88, -90, -94, -98, -101, -106, -110}}, - /* 88Hz */ - {{ -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -67, -67, -67, - -76, -72, -71, -74, -76, -76, -75, -78, - -79, -79, -81, -83, -86, -89, -93, -97, - -100, -105, -110, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -47, -47, -47, -47, -47, -47, -47, -47, - -47, -47, -47, -48, -51, -55, -59, -66, - -66, -66, -67, -66, -68, -69, -70, -74, - -79, -77, -77, -78, -80, -81, -82, -84, - -86, -88, -91, -95, -100, -108, -116, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -36, -36, -36, -36, -36, -36, -36, -36, - -36, -37, -37, -41, -44, -48, -51, -58, - -62, -60, -57, -59, -59, -60, -63, -65, - -72, -71, -70, -72, -74, -77, -76, -78, - -81, -81, -80, -83, -86, -91, -96, -100, - -105, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -28, -28, -28, -28, -28, -28, -28, -28, - -28, -30, -32, -32, -33, -35, -41, -49, - -50, -49, -47, -48, -48, -52, -51, -57, - -65, -61, -59, -61, -64, -69, -70, -74, - -77, -77, -78, -81, -84, -85, -87, -90, - -92, -96, -100, -107, -112, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -19, -19, -19, -19, -19, -19, -19, -19, - -20, -21, -23, -27, -30, -35, -36, -41, - -46, -44, -42, -40, -41, -41, -43, -48, - -55, -53, -52, -53, -56, -59, -58, -60, - -67, -66, -69, -71, -72, -75, -79, -81, - -84, -87, -90, -93, -97, -101, -107, -114, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -9, -9, -9, -9, -9, -9, -9, -9, - -11, -12, -12, -15, -16, -20, -23, -30, - -37, -34, -33, -34, -31, -32, -32, -38, - -47, -44, -41, -40, -47, -49, -46, -46, - -58, -50, -50, -54, -58, -62, -64, -67, - -67, -70, -72, -76, -79, -83, -87, -91, - -96, -100, -104, -110, -999, -999, -999, -999}}, - /* 125 Hz */ - {{ -62, -62, -62, -62, -62, -62, -62, -62, - -62, -62, -63, -64, -66, -67, -66, -68, - -75, -72, -76, -75, -76, -78, -79, -82, - -84, -85, -90, -94, -101, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -60, -60, -61, -63, -66, - -71, -68, -70, -70, -71, -72, -72, -75, - -81, -78, -79, -82, -83, -86, -90, -97, - -103, -113, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -53, -53, -53, -53, -53, -53, -53, -53, - -53, -54, -55, -57, -56, -57, -55, -61, - -65, -60, -60, -62, -63, -63, -66, -68, - -74, -73, -75, -75, -78, -80, -80, -82, - -85, -90, -96, -101, -108, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -46, -46, -46, -46, -46, -46, -46, -46, - -46, -46, -47, -47, -47, -47, -48, -51, - -57, -51, -49, -50, -51, -53, -54, -59, - -66, -60, -62, -67, -67, -70, -72, -75, - -76, -78, -81, -85, -88, -94, -97, -104, - -112, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -36, -36, -36, -36, -36, -36, -36, -36, - -39, -41, -42, -42, -39, -38, -41, -43, - -52, -44, -40, -39, -37, -37, -40, -47, - -54, -50, -48, -50, -55, -61, -59, -62, - -66, -66, -66, -69, -69, -73, -74, -74, - -75, -77, -79, -82, -87, -91, -95, -100, - -108, -115, -999, -999, -999, -999, -999, -999}, - { -28, -26, -24, -22, -20, -20, -23, -29, - -30, -31, -28, -27, -28, -28, -28, -35, - -40, -33, -32, -29, -30, -30, -30, -37, - -45, -41, -37, -38, -45, -47, -47, -48, - -53, -49, -48, -50, -49, -49, -51, -52, - -58, -56, -57, -56, -60, -61, -62, -70, - -72, -74, -78, -83, -88, -93, -100, -106}}, - /* 177 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -110, -105, -100, -95, -91, -87, -83, - -80, -78, -76, -78, -78, -81, -83, -85, - -86, -85, -86, -87, -90, -97, -107, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -110, -105, -100, -95, -90, - -85, -81, -77, -73, -70, -67, -67, -68, - -75, -73, -70, -69, -70, -72, -75, -79, - -84, -83, -84, -86, -88, -89, -89, -93, - -98, -105, -112, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-105, -100, -95, -90, -85, -80, -76, -71, - -68, -68, -65, -63, -63, -62, -62, -64, - -65, -64, -61, -62, -63, -64, -66, -68, - -73, -73, -74, -75, -76, -81, -83, -85, - -88, -89, -92, -95, -100, -108, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -80, -75, -71, -68, -65, -63, -62, -61, - -61, -61, -61, -59, -56, -57, -53, -50, - -58, -52, -50, -50, -52, -53, -54, -58, - -67, -63, -67, -68, -72, -75, -78, -80, - -81, -81, -82, -85, -89, -90, -93, -97, - -101, -107, -114, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -65, -61, -59, -57, -56, -55, -55, -56, - -56, -57, -55, -53, -52, -47, -44, -44, - -50, -44, -41, -39, -39, -42, -40, -46, - -51, -49, -50, -53, -54, -63, -60, -61, - -62, -66, -66, -66, -70, -73, -74, -75, - -76, -75, -79, -85, -89, -91, -96, -102, - -110, -999, -999, -999, -999, -999, -999, -999}, - { -52, -50, -49, -49, -48, -48, -48, -49, - -50, -50, -49, -46, -43, -39, -35, -33, - -38, -36, -32, -29, -32, -32, -32, -35, - -44, -39, -38, -38, -46, -50, -45, -46, - -53, -50, -50, -50, -54, -54, -53, -53, - -56, -57, -59, -66, -70, -72, -74, -79, - -83, -85, -90, -97, -114, -999, -999, -999}}, - /* 250 Hz */ - {{-999, -999, -999, -999, -999, -999, -110, -105, - -100, -95, -90, -86, -80, -75, -75, -79, - -80, -79, -80, -81, -82, -88, -95, -103, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -108, -103, -98, -93, - -88, -83, -79, -78, -75, -71, -67, -68, - -73, -73, -72, -73, -75, -77, -80, -82, - -88, -93, -100, -107, -114, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -110, -105, -101, -96, -90, - -86, -81, -77, -73, -69, -66, -61, -62, - -66, -64, -62, -65, -66, -70, -72, -76, - -81, -80, -84, -90, -95, -102, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -107, -103, -97, -92, -88, - -83, -79, -74, -70, -66, -59, -53, -58, - -62, -55, -54, -54, -54, -58, -61, -62, - -72, -70, -72, -75, -78, -80, -81, -80, - -83, -83, -88, -93, -100, -107, -115, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -105, -100, -95, -90, -85, - -80, -75, -70, -66, -62, -56, -48, -44, - -48, -46, -46, -43, -46, -48, -48, -51, - -58, -58, -59, -60, -62, -62, -61, -61, - -65, -64, -65, -68, -70, -74, -75, -78, - -81, -86, -95, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -105, -100, -95, -90, -85, -80, - -75, -70, -65, -61, -55, -49, -39, -33, - -40, -35, -32, -38, -40, -33, -35, -37, - -46, -41, -45, -44, -46, -42, -45, -46, - -52, -50, -50, -50, -54, -54, -55, -57, - -62, -64, -66, -68, -70, -76, -81, -90, - -100, -110, -999, -999, -999, -999, -999, -999}}, - /* 354 hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -85, -82, -83, -80, -78, - -84, -79, -80, -83, -87, -89, -91, -93, - -99, -106, -117, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -85, -80, -75, -70, -68, - -74, -72, -74, -77, -80, -82, -85, -87, - -92, -89, -91, -95, -100, -106, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -83, -75, -71, -63, -64, - -67, -62, -64, -67, -70, -73, -77, -81, - -84, -83, -85, -89, -90, -93, -98, -104, - -109, -114, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -103, -96, -88, -81, -75, -68, -58, -54, - -56, -54, -56, -56, -58, -60, -63, -66, - -74, -69, -72, -72, -75, -74, -77, -81, - -81, -82, -84, -87, -93, -96, -99, -104, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -108, -102, -96, - -91, -85, -80, -74, -68, -60, -51, -46, - -48, -46, -43, -45, -47, -47, -49, -48, - -56, -53, -55, -58, -57, -63, -58, -60, - -66, -64, -67, -70, -70, -74, -77, -84, - -86, -89, -91, -93, -94, -101, -109, -118, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -108, -103, -98, -93, -88, - -83, -78, -73, -68, -60, -53, -44, -35, - -38, -38, -34, -34, -36, -40, -41, -44, - -51, -45, -46, -47, -46, -54, -50, -49, - -50, -50, -50, -51, -54, -57, -58, -60, - -66, -66, -66, -64, -65, -68, -77, -82, - -87, -95, -110, -999, -999, -999, -999, -999}}, - /* 500 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -107, -102, -97, -92, -87, -83, -78, -75, - -82, -79, -83, -85, -89, -92, -95, -98, - -101, -105, -109, -113, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -106, - -100, -95, -90, -86, -81, -78, -74, -69, - -74, -74, -76, -79, -83, -84, -86, -89, - -92, -97, -93, -100, -103, -107, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -100, - -95, -90, -87, -83, -80, -75, -69, -60, - -66, -66, -68, -70, -74, -78, -79, -81, - -81, -83, -84, -87, -93, -96, -99, -103, - -107, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -108, -103, -98, - -93, -89, -85, -82, -78, -71, -62, -55, - -58, -58, -54, -54, -55, -59, -61, -62, - -70, -66, -66, -67, -70, -72, -75, -78, - -84, -84, -84, -88, -91, -90, -95, -98, - -102, -103, -106, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -108, -103, -98, -94, - -90, -87, -82, -79, -73, -67, -58, -47, - -50, -45, -41, -45, -48, -44, -44, -49, - -54, -51, -48, -47, -49, -50, -51, -57, - -58, -60, -63, -69, -70, -69, -71, -74, - -78, -82, -90, -95, -101, -105, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -105, -101, -97, -93, -90, - -85, -80, -77, -72, -65, -56, -48, -37, - -40, -36, -34, -40, -50, -47, -38, -41, - -47, -38, -35, -39, -38, -43, -40, -45, - -50, -45, -44, -47, -50, -55, -48, -48, - -52, -66, -70, -76, -82, -90, -97, -105, - -110, -999, -999, -999, -999, -999, -999, -999}}, - /* 707 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -108, -103, -98, -93, -86, -79, -76, - -83, -81, -85, -87, -89, -93, -98, -102, - -107, -112, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -108, -103, -98, -93, -86, -79, -71, - -77, -74, -77, -79, -81, -84, -85, -90, - -92, -93, -92, -98, -101, -108, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -108, -103, -98, -93, -87, -78, -68, -65, - -66, -62, -65, -67, -70, -73, -75, -78, - -82, -82, -83, -84, -91, -93, -98, -102, - -106, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -100, -95, -90, -82, -74, -62, -57, - -58, -56, -51, -52, -52, -54, -54, -58, - -66, -59, -60, -63, -66, -69, -73, -79, - -83, -84, -80, -81, -81, -82, -88, -92, - -98, -105, -113, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -102, -97, -92, -84, -79, -69, -57, -47, - -52, -47, -44, -45, -50, -52, -42, -42, - -53, -43, -43, -48, -51, -56, -55, -52, - -57, -59, -61, -62, -67, -71, -78, -83, - -86, -94, -98, -103, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -105, -100, - -95, -90, -84, -78, -70, -61, -51, -41, - -40, -38, -40, -46, -52, -51, -41, -40, - -46, -40, -38, -38, -41, -46, -41, -46, - -47, -43, -43, -45, -41, -45, -56, -67, - -68, -83, -87, -90, -95, -102, -107, -113, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 1000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -109, -105, -101, -96, -91, -84, -77, - -82, -82, -85, -89, -94, -100, -106, -110, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -106, -103, -98, -92, -85, -80, -71, - -75, -72, -76, -80, -84, -86, -89, -93, - -100, -107, -113, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -104, -101, -97, -92, -88, -84, -80, -64, - -66, -63, -64, -66, -69, -73, -77, -83, - -83, -86, -91, -98, -104, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -104, -101, -97, -92, -90, -84, -74, -57, - -58, -52, -55, -54, -50, -52, -50, -52, - -63, -62, -69, -76, -77, -78, -78, -79, - -82, -88, -94, -100, -106, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -102, - -98, -95, -90, -85, -83, -78, -70, -50, - -50, -41, -44, -49, -47, -50, -50, -44, - -55, -46, -47, -48, -48, -54, -49, -49, - -58, -62, -71, -81, -87, -92, -97, -102, - -108, -114, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -102, - -98, -95, -90, -85, -83, -78, -70, -45, - -43, -41, -47, -50, -51, -50, -49, -45, - -47, -41, -44, -41, -39, -43, -38, -37, - -40, -41, -44, -50, -58, -65, -73, -79, - -85, -92, -97, -101, -105, -109, -113, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 1414 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -107, -100, -95, -87, -81, - -85, -83, -88, -93, -100, -107, -114, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -107, -101, -95, -88, -83, -76, - -73, -72, -79, -84, -90, -95, -100, -105, - -110, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -104, -98, -92, -87, -81, -70, - -65, -62, -67, -71, -74, -80, -85, -91, - -95, -99, -103, -108, -111, -114, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -103, -97, -90, -85, -76, -60, - -56, -54, -60, -62, -61, -56, -63, -65, - -73, -74, -77, -75, -78, -81, -86, -87, - -88, -91, -94, -98, -103, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -105, - -100, -97, -92, -86, -81, -79, -70, -57, - -51, -47, -51, -58, -60, -56, -53, -50, - -58, -52, -50, -50, -53, -55, -64, -69, - -71, -85, -82, -78, -81, -85, -95, -102, - -112, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -105, - -100, -97, -92, -85, -83, -79, -72, -49, - -40, -43, -43, -54, -56, -51, -50, -40, - -43, -38, -36, -35, -37, -38, -37, -44, - -54, -60, -57, -60, -70, -75, -84, -92, - -103, -112, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 2000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -102, -95, -89, -82, - -83, -84, -90, -92, -99, -107, -113, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -107, -101, -95, -89, -83, -72, - -74, -78, -85, -88, -88, -90, -92, -98, - -105, -111, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -109, -103, -97, -93, -87, -81, -70, - -70, -67, -75, -73, -76, -79, -81, -83, - -88, -89, -97, -103, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -107, -100, -94, -88, -83, -75, -63, - -59, -59, -63, -66, -60, -62, -67, -67, - -77, -76, -81, -88, -86, -92, -96, -102, - -109, -116, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -105, -98, -92, -86, -81, -73, -56, - -52, -47, -55, -60, -58, -52, -51, -45, - -49, -50, -53, -54, -61, -71, -70, -69, - -78, -79, -87, -90, -96, -104, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -103, -96, -90, -86, -78, -70, -51, - -42, -47, -48, -55, -54, -54, -53, -42, - -35, -28, -33, -38, -37, -44, -47, -49, - -54, -63, -68, -78, -82, -89, -94, -99, - -104, -109, -114, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 2828 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -100, -90, -79, - -85, -81, -82, -82, -89, -94, -99, -103, - -109, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -105, -97, -85, -72, - -74, -70, -70, -70, -76, -85, -91, -93, - -97, -103, -109, -115, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -112, -93, -81, -68, - -62, -60, -60, -57, -63, -70, -77, -82, - -90, -93, -98, -104, -109, -113, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -113, -100, -93, -84, -63, - -58, -48, -53, -54, -52, -52, -57, -64, - -66, -76, -83, -81, -85, -85, -90, -95, - -98, -101, -103, -106, -108, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -105, -95, -86, -74, -53, - -50, -38, -43, -49, -43, -42, -39, -39, - -46, -52, -57, -56, -72, -69, -74, -81, - -87, -92, -94, -97, -99, -102, -105, -108, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -108, -99, -90, -76, -66, -45, - -43, -41, -44, -47, -43, -47, -40, -30, - -31, -31, -39, -33, -40, -41, -43, -53, - -59, -70, -73, -77, -79, -82, -84, -87, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 4000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -91, -76, - -75, -85, -93, -98, -104, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -91, -70, - -70, -75, -86, -89, -94, -98, -101, -106, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -60, - -65, -64, -74, -83, -88, -91, -95, -99, - -103, -107, -110, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -58, - -55, -49, -66, -68, -71, -78, -78, -80, - -88, -85, -89, -97, -100, -105, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -53, - -52, -41, -59, -59, -49, -58, -56, -63, - -86, -79, -90, -93, -98, -103, -107, -112, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -97, -91, -73, -45, - -40, -33, -53, -61, -49, -54, -50, -50, - -60, -52, -67, -74, -81, -92, -96, -100, - -105, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 5657 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -113, -106, -99, -92, -77, - -80, -88, -97, -106, -115, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -116, -109, -102, -95, -89, -74, - -72, -88, -87, -95, -102, -109, -116, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -116, -109, -102, -95, -89, -75, - -66, -74, -77, -78, -86, -87, -90, -96, - -105, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -115, -108, -101, -94, -88, -66, - -56, -61, -70, -65, -78, -72, -83, -84, - -93, -98, -105, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -110, -105, -95, -89, -82, -57, - -52, -52, -59, -56, -59, -58, -69, -67, - -88, -82, -82, -89, -94, -100, -108, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -110, -101, -96, -90, -83, -77, -54, - -43, -38, -50, -48, -52, -48, -42, -42, - -51, -52, -53, -59, -65, -71, -78, -85, - -95, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 8000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -120, -105, -86, -68, - -78, -79, -90, -100, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -120, -105, -86, -66, - -73, -77, -88, -96, -105, -115, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -120, -105, -92, -80, -61, - -64, -68, -80, -87, -92, -100, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -120, -104, -91, -79, -52, - -60, -54, -64, -69, -77, -80, -82, -84, - -85, -87, -88, -90, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -118, -100, -87, -77, -49, - -50, -44, -58, -61, -61, -67, -65, -62, - -62, -62, -65, -68, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -115, -98, -84, -62, -49, - -44, -38, -46, -49, -49, -46, -39, -37, - -39, -40, -42, -43, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 11314 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -74, - -77, -82, -82, -85, -90, -94, -99, -104, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -66, - -70, -81, -80, -81, -84, -88, -91, -93, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -61, - -63, -70, -71, -74, -77, -80, -83, -85, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -86, -62, - -63, -62, -62, -58, -52, -50, -50, -52, - -54, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -118, -108, -84, -53, - -50, -50, -50, -55, -47, -45, -40, -40, - -40, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -118, -100, -73, -43, - -37, -42, -43, -53, -38, -37, -35, -35, - -38, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 16000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -91, -84, -74, - -80, -80, -80, -80, -80, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -91, -84, -74, - -68, -68, -68, -68, -68, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -86, -78, -70, - -60, -45, -30, -21, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -87, -78, -67, - -48, -38, -29, -21, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -86, -69, -56, - -45, -35, -33, -29, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -83, -71, -48, - -27, -38, -37, -34, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}} -}; - -#endif diff --git a/libvorbis-1.0.1/lib/modes/Makefile.in b/libvorbis-1.0.1/lib/modes/Makefile.in deleted file mode 100644 index 3b78e72..0000000 --- a/libvorbis-1.0.1/lib/modes/Makefile.in +++ /dev/null @@ -1,212 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = floor_all.h psych_44.h residue_44.h setup_11.h setup_32.h setup_8.h psych_11.h psych_8.h residue_44u.h setup_16.h setup_44.h setup_X.h psych_16.h residue_16.h residue_8.h setup_22.h setup_44u.h - -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps lib/modes/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = lib/modes - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/lib/modes/setup_32.h b/libvorbis-1.0.1/lib/modes/setup_32.h deleted file mode 100644 index dfdf3f4..0000000 --- a/libvorbis-1.0.1/lib/modes/setup_32.h +++ /dev/null @@ -1,246 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 32kHz - last mod: $Id: setup_32.h,v 1.4 2002/07/13 06:12:49 xiphmont Exp $ - - ********************************************************************/ - -static double rate_mapping_32[11]={ - 28000.,35000.,45000.,56000.,60000., - 75000.,90000.,100000.,115000.,150000.,190000., -}; - -static double rate_mapping_32_un[11]={ - 42000.,52000.,64000.,72000.,78000., - 86000.,92000.,110000.,120000.,140000.,190000., -}; - -static double rate_mapping_32_low[2]={ - 20000.,28000. -}; - -static double rate_mapping_32_un_low[2]={ - 24000.,42000., -}; - -static double _psy_lowpass_32_low[2]={ - 13.,13., -}; -static double _psy_lowpass_32[11]={ - 13.,13.,14.,15.,99.,99.,99.,99.,99.,99.,99. -}; - -ve_setup_data_template ve_setup_32_stereo={ - 10, - rate_mapping_32, - quality_mapping_44, - 2, - 26000, - 40000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - _floor_short_mapping_44, - _floor_long_mapping_44, - - _mapres_template_44_stereo -}; - -ve_setup_data_template ve_setup_32_uncoupled={ - 10, - rate_mapping_32_un, - quality_mapping_44, - -1, - 26000, - 40000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44_2, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32, - - _psy_global_44, - _global_mapping_44, - NULL, - - _floor_books, - _floor, - _floor_short_mapping_44, - _floor_long_mapping_44, - - _mapres_template_44_uncoupled -}; - -ve_setup_data_template ve_setup_32_stereo_low={ - 1, - rate_mapping_32_low, - quality_mapping_44_stereo_low, - 2, - 26000, - 40000, - - blocksize_short_44_low, - blocksize_long_44_low, - - _psy_tone_masteratt_44_low, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_long_low, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44_low,_noise_start_long_44_low}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32_low, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44_low, - - _floor_books, - _floor, - _floor_short_mapping_44_low, - _floor_long_mapping_44_low, - - _mapres_template_44_stereo -}; - - -ve_setup_data_template ve_setup_32_uncoupled_low={ - 1, - rate_mapping_32_un_low, - quality_mapping_44_stereo_low, - -1, - 26000, - 40000, - - blocksize_short_44_low, - blocksize_long_44_low, - - _psy_tone_masteratt_44_low, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_long_low, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44_low,_noise_start_long_44_low}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44_2, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32_low, - - _psy_global_44, - _global_mapping_44, - NULL, - - _floor_books, - _floor, - _floor_short_mapping_44_low, - _floor_long_mapping_44_low, - - _mapres_template_44_uncoupled -}; diff --git a/libvorbis-1.0.1/lib/modes/setup_44.h b/libvorbis-1.0.1/lib/modes/setup_44.h deleted file mode 100644 index 2342539..0000000 --- a/libvorbis-1.0.1/lib/modes/setup_44.h +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 44.1/48kHz - last mod: $Id: setup_44.h,v 1.9 2002/07/11 08:57:29 xiphmont Exp $ - - ********************************************************************/ - -#include "modes/floor_all.h" -#include "modes/residue_44.h" -#include "modes/psych_44.h" - -static double rate_mapping_44_stereo_low[2]={ - 22500.,32000. -}; - -static double rate_mapping_44_stereo[11]={ - 32000.,40000.,48000.,56000.,64000., - 80000.,96000.,112000.,128000.,160000.,250001. -}; -static double quality_mapping_44_stereo_low[2]={ - -.1,.0, -}; -static double quality_mapping_44[11]={ - .0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0 -}; - -static int blocksize_short_44_low[1]={ - 512 -}; -static int blocksize_long_44_low[1]={ - 4096 -}; - -static int blocksize_short_44[10]={ - 256,256,256,256,256,256,256,256,256,256 -}; -static int blocksize_long_44[10]={ - 2048,2048,2048,2048,2048,2048,2048,2048,2048,2048 -}; -static double _psy_compand_short_mapping[11]={ - 1., 1., 1.3, 1.6, 2., 2., 2., 2., 2., 2., 2. -}; -static double _psy_compand_long_mapping[11]={ - 4., 4., 4.3, 4.6, 5., 5., 5., 5., 5., 5., 5. -}; -static double _global_mapping_44[11]={ - 1., 1., 1.5, 2., 2., 2.5, 2.7, 3.0, 3.5, 4., 4. -}; -static double _global_mapping_44_low[2]={ - 0., 1., -}; -static int _floor_short_mapping_44_low[1]={ - 1, -}; -static int _floor_long_mapping_44_low[1]={ - 8 -}; -static int _floor_short_mapping_44[10]={ - 0,0,2,2,4,5,5,5,5,5 -}; -static int _floor_long_mapping_44[10]={ - 7,7,7,7,7,7,7,7,7,7 -}; - -ve_setup_data_template ve_setup_44_stereo={ - 10, - rate_mapping_44_stereo, - quality_mapping_44, - 2, - 40000, - 50000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - _floor_short_mapping_44, - _floor_long_mapping_44, - - _mapres_template_44_stereo -}; - -ve_setup_data_template ve_setup_44_stereo_low={ - 1, - rate_mapping_44_stereo_low, - quality_mapping_44_stereo_low, - 2, - 40000, - 50000, - - blocksize_short_44_low, - blocksize_long_44_low, - - _psy_tone_masteratt_44_low, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_trans_low, - _psy_noisebias_long_low, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44_low,_noise_start_long_44_low}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44_low, - - _psy_global_44, - _global_mapping_44_low, - _psy_stereo_modes_44_low, - - _floor_books, - _floor, - _floor_short_mapping_44_low, - _floor_long_mapping_44_low, - - _mapres_template_44_stereo -}; - diff --git a/libvorbis-1.0.1/lib/psy.c b/libvorbis-1.0.1/lib/psy.c deleted file mode 100644 index a0debbd..0000000 --- a/libvorbis-1.0.1/lib/psy.c +++ /dev/null @@ -1,1148 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: psychoacoustics not including preecho - last mod: $Id: psy.c,v 1.81 2002/10/21 07:00:11 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "masking.h" -#include "psy.h" -#include "os.h" -#include "lpc.h" -#include "smallft.h" -#include "scales.h" -#include "misc.h" - -#define NEGINF -9999.f -static double stereo_threshholds[]={0.0, .5, 1.0, 1.5, 2.5, 4.5, 8.5, 16.5, 9e10}; - -vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - vorbis_look_psy_global *look=_ogg_calloc(1,sizeof(*look)); - - look->channels=vi->channels; - - look->ampmax=-9999.; - look->gi=gi; - return(look); -} - -void _vp_global_free(vorbis_look_psy_global *look){ - if(look){ - memset(look,0,sizeof(*look)); - _ogg_free(look); - } -} - -void _vi_gpsy_free(vorbis_info_psy_global *i){ - if(i){ - memset(i,0,sizeof(*i)); - _ogg_free(i); - } -} - -void _vi_psy_free(vorbis_info_psy *i){ - if(i){ - memset(i,0,sizeof(*i)); - _ogg_free(i); - } -} - -static void min_curve(float *c, - float *c2){ - int i; - for(i=0;ic[i])c[i]=c2[i]; -} - -static void attenuate_curve(float *c,float att){ - int i; - for(i=0;iATH[j+k+ath_offset])min=ATH[j+k+ath_offset]; - }else{ - if(min>ATH[MAX_ATH-1])min=ATH[MAX_ATH-1]; - } - ath[j]=min; - } - - /* copy curves into working space, replicate the 50dB curve to 30 - and 40, replicate the 100dB curve to 110 */ - for(j=0;j<6;j++) - memcpy(workc[i][j+2],tonemasks[i][j],EHMER_MAX*sizeof(*tonemasks[i][j])); - memcpy(workc[i][0],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); - memcpy(workc[i][1],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); - - /* apply centered curve boost/decay */ - for(j=0;j0)adj=0.; - if(adj>0. && center_boost<0)adj=0.; - workc[i][j][k]+=adj; - } - } - - /* normalize curves so the driving amplitude is 0dB */ - /* make temp curves with the ATH overlayed */ - for(j=0;j an eighth of an octave and that the eighth - octave values may also be composited. */ - - /* which octave curves will we be compositing? */ - bin=floor(fromOC(i*.5)/binHz); - lo_curve= ceil(toOC(bin*binHz+1)*2); - hi_curve= floor(toOC((bin+1)*binHz)*2); - if(lo_curve>i)lo_curve=i; - if(lo_curve<0)lo_curve=0; - if(hi_curve>=P_BANDS)hi_curve=P_BANDS-1; - - for(m=0;mn)lo_bin=n; - if(lo_binn)hi_bin=n; - - for(;lworkc[k][m][j]) - brute_buffer[l]=workc[k][m][j]; - } - - for(;lworkc[k][m][EHMER_MAX-1]) - brute_buffer[l]=workc[k][m][EHMER_MAX-1]; - - } - - /* be equally paranoid about being valid up to next half ocatve */ - if(i+1n)lo_bin=n; - if(lo_binn)hi_bin=n; - - for(;lworkc[k][m][j]) - brute_buffer[l]=workc[k][m][j]; - } - - for(;lworkc[k][m][EHMER_MAX-1]) - brute_buffer[l]=workc[k][m][EHMER_MAX-1]; - - } - - - for(j=0;j=n){ - ret[i][m][j+2]=-999.; - }else{ - ret[i][m][j+2]=brute_buffer[bin]; - } - } - } - - /* add fenceposts */ - for(j=0;j-200.f)break; - ret[i][m][0]=j; - - for(j=EHMER_MAX-1;j>EHMER_OFFSET+1;j--) - if(ret[i][m][j+2]>-200.f) - break; - ret[i][m][1]=j; - - } - } - - return(ret); -} - -void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, - vorbis_info_psy_global *gi,int n,long rate){ - long i,j,lo=-99,hi=1; - long maxoc; - memset(p,0,sizeof(*p)); - - p->eighth_octave_lines=gi->eighth_octave_lines; - p->shiftoc=rint(log(gi->eighth_octave_lines*8.f)/log(2.f))-1; - - p->firstoc=toOC(.25f*rate*.5/n)*(1<<(p->shiftoc+1))-gi->eighth_octave_lines; - maxoc=toOC((n+.25f)*rate*.5/n)*(1<<(p->shiftoc+1))+.5f; - p->total_octave_lines=maxoc-p->firstoc+1; - p->ath=_ogg_malloc(n*sizeof(*p->ath)); - - p->octave=_ogg_malloc(n*sizeof(*p->octave)); - p->bark=_ogg_malloc(n*sizeof(*p->bark)); - p->vi=vi; - p->n=n; - p->rate=rate; - - /* set up the lookups for a given blocksize and sample rate */ - - for(i=0,j=0;iath[j]=base+100.; - base+=delta; - } - } - } - - for(i=0;inoisewindowlominnoisewindowlo);lo++); - - for(;hi<=n && (hinoisewindowhimin || - toBARK(rate/(2*n)*hi)<(bark+vi->noisewindowhi));hi++); - - p->bark[i]=((lo-1)<<16)+(hi-1); - - } - - for(i=0;ioctave[i]=toOC((i+.25f)*.5*rate/n)*(1<<(p->shiftoc+1))+.5f; - - p->tonecurves=setup_tone_curves(vi->toneatt,rate*.5/n,n, - vi->tone_centerboost,vi->tone_decay); - - /* set up rolling noise median */ - p->noiseoffset=_ogg_malloc(P_NOISECURVES*sizeof(*p->noiseoffset)); - for(i=0;inoiseoffset[i]=_ogg_malloc(n*sizeof(**p->noiseoffset)); - - for(i=0;i=P_BANDS-1)halfoc=P_BANDS-1; - inthalfoc=(int)halfoc; - del=halfoc-inthalfoc; - - for(j=0;jnoiseoffset[j][i]= - p->vi->noiseoff[j][inthalfoc]*(1.-del) + - p->vi->noiseoff[j][inthalfoc+1]*del; - - } -#if 0 - { - static int ls=0; - _analysis_output_always("noiseoff0",ls,p->noiseoffset[0],n,1,0,0); - _analysis_output_always("noiseoff1",ls,p->noiseoffset[1],n,1,0,0); - _analysis_output_always("noiseoff2",ls++,p->noiseoffset[2],n,1,0,0); - } -#endif -} - -void _vp_psy_clear(vorbis_look_psy *p){ - int i,j; - if(p){ - if(p->ath)_ogg_free(p->ath); - if(p->octave)_ogg_free(p->octave); - if(p->bark)_ogg_free(p->bark); - if(p->tonecurves){ - for(i=0;itonecurves[i][j]); - } - _ogg_free(p->tonecurves[i]); - } - _ogg_free(p->tonecurves); - } - if(p->noiseoffset){ - for(i=0;inoiseoffset[i]); - } - _ogg_free(p->noiseoffset); - } - memset(p,0,sizeof(*p)); - } -} - -/* octave/(8*eighth_octave_lines) x scale and dB y scale */ -static void seed_curve(float *seed, - const float **curves, - float amp, - int oc, int n, - int linesper,float dBoffset){ - int i,post1; - int seedptr; - const float *posts,*curve; - - int choice=(int)((amp+dBoffset-P_LEVEL_0)*.1f); - choice=max(choice,0); - choice=min(choice,P_LEVELS-1); - posts=curves[choice]; - curve=posts+2; - post1=(int)posts[1]; - seedptr=oc+(posts[0]-EHMER_OFFSET)*linesper-(linesper>>1); - - for(i=posts[0];i0){ - float lin=amp+curve[i]; - if(seed[seedptr]=n)break; - } -} - -static void seed_loop(vorbis_look_psy *p, - const float ***curves, - const float *f, - const float *flr, - float *seed, - float specmax){ - vorbis_info_psy *vi=p->vi; - long n=p->n,i; - float dBoffset=vi->max_curve_dB-specmax; - - /* prime the working vector with peak values */ - - for(i=0;ioctave[i]; - while(i+1octave[i+1]==oc){ - i++; - if(f[i]>max)max=f[i]; - } - - if(max+6.f>flr[i]){ - oc=oc>>p->shiftoc; - - if(oc>=P_BANDS)oc=P_BANDS-1; - if(oc<0)oc=0; - - seed_curve(seed, - curves[oc], - max, - p->octave[i]-p->firstoc, - p->total_octave_lines, - p->eighth_octave_lines, - dBoffset); - } - } -} - -static void seed_chase(float *seeds, int linesper, long n){ - long *posstack=alloca(n*sizeof(*posstack)); - float *ampstack=alloca(n*sizeof(*ampstack)); - long stack=0; - long pos=0; - long i; - - for(i=0;i1 && ampstack[stack-1]<=ampstack[stack-2] && - iampstack[i]){ - endpos=posstack[i+1]; - }else{ - endpos=posstack[i]+linesper+1; /* +1 is important, else bin 0 is - discarded in short frames */ - } - if(endpos>n)endpos=n; - for(;pos -static void max_seeds(vorbis_look_psy *p, - float *seed, - float *flr){ - long n=p->total_octave_lines; - int linesper=p->eighth_octave_lines; - long linpos=0; - long pos; - - seed_chase(seed,linesper,n); /* for masking */ - - pos=p->octave[0]-p->firstoc-(linesper>>1); - - while(linpos+1n){ - float minV=seed[pos]; - long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc; - if(minV>p->vi->tone_abs_limit)minV=p->vi->tone_abs_limit; - while(pos+1<=end){ - pos++; - if((seed[pos]>NEGINF && seed[pos]firstoc; - for(;linposn && p->octave[linpos]<=end;linpos++) - if(flr[linpos]total_octave_lines-1]; - for(;linposn;linpos++) - if(flr[linpos]> 16; - if( lo>=0 ) break; - hi = b[i] & 0xffff; - - tN = N[hi] + N[-lo]; - tX = X[hi] - X[-lo]; - tXX = XX[hi] + XX[-lo]; - tY = Y[hi] + Y[-lo]; - tXY = XY[hi] - XY[-lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - if (R < 0.f) - R = 0.f; - - noise[i] = R - offset; - } - - for ( ;; i++, x += 1.f) { - - lo = b[i] >> 16; - hi = b[i] & 0xffff; - if(hi>=n)break; - - tN = N[hi] - N[lo]; - tX = X[hi] - X[lo]; - tXX = XX[hi] - XX[lo]; - tY = Y[hi] - Y[lo]; - tXY = XY[hi] - XY[lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - if (R < 0.f) R = 0.f; - - noise[i] = R - offset; - } - for ( ; i < n; i++, x += 1.f) { - - R = (A + x * B) / D; - if (R < 0.f) R = 0.f; - - noise[i] = R - offset; - } - - if (fixed <= 0) return; - - for (i = 0, x = 0.f;; i++, x += 1.f) { - hi = i + fixed / 2; - lo = hi - fixed; - if(lo>=0)break; - - tN = N[hi] + N[-lo]; - tX = X[hi] - X[-lo]; - tXX = XX[hi] + XX[-lo]; - tY = Y[hi] + Y[-lo]; - tXY = XY[hi] - XY[-lo]; - - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - - if (R - offset < noise[i]) noise[i] = R - offset; - } - for ( ;; i++, x += 1.f) { - - hi = i + fixed / 2; - lo = hi - fixed; - if(hi>=n)break; - - tN = N[hi] - N[lo]; - tX = X[hi] - X[lo]; - tXX = XX[hi] - XX[lo]; - tY = Y[hi] - Y[lo]; - tXY = XY[hi] - XY[lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - - if (R - offset < noise[i]) noise[i] = R - offset; - } - for ( ; i < n; i++, x += 1.f) { - R = (A + x * B) / D; - if (R - offset < noise[i]) noise[i] = R - offset; - } -} - -static float FLOOR1_fromdB_INV_LOOKUP[256]={ - 0.F, 8.81683e+06F, 8.27882e+06F, 7.77365e+06F, - 7.29930e+06F, 6.85389e+06F, 6.43567e+06F, 6.04296e+06F, - 5.67422e+06F, 5.32798e+06F, 5.00286e+06F, 4.69759e+06F, - 4.41094e+06F, 4.14178e+06F, 3.88905e+06F, 3.65174e+06F, - 3.42891e+06F, 3.21968e+06F, 3.02321e+06F, 2.83873e+06F, - 2.66551e+06F, 2.50286e+06F, 2.35014e+06F, 2.20673e+06F, - 2.07208e+06F, 1.94564e+06F, 1.82692e+06F, 1.71544e+06F, - 1.61076e+06F, 1.51247e+06F, 1.42018e+06F, 1.33352e+06F, - 1.25215e+06F, 1.17574e+06F, 1.10400e+06F, 1.03663e+06F, - 973377.F, 913981.F, 858210.F, 805842.F, - 756669.F, 710497.F, 667142.F, 626433.F, - 588208.F, 552316.F, 518613.F, 486967.F, - 457252.F, 429351.F, 403152.F, 378551.F, - 355452.F, 333762.F, 313396.F, 294273.F, - 276316.F, 259455.F, 243623.F, 228757.F, - 214798.F, 201691.F, 189384.F, 177828.F, - 166977.F, 156788.F, 147221.F, 138237.F, - 129802.F, 121881.F, 114444.F, 107461.F, - 100903.F, 94746.3F, 88964.9F, 83536.2F, - 78438.8F, 73652.5F, 69158.2F, 64938.1F, - 60975.6F, 57254.9F, 53761.2F, 50480.6F, - 47400.3F, 44507.9F, 41792.0F, 39241.9F, - 36847.3F, 34598.9F, 32487.7F, 30505.3F, - 28643.8F, 26896.0F, 25254.8F, 23713.7F, - 22266.7F, 20908.0F, 19632.2F, 18434.2F, - 17309.4F, 16253.1F, 15261.4F, 14330.1F, - 13455.7F, 12634.6F, 11863.7F, 11139.7F, - 10460.0F, 9821.72F, 9222.39F, 8659.64F, - 8131.23F, 7635.06F, 7169.17F, 6731.70F, - 6320.93F, 5935.23F, 5573.06F, 5232.99F, - 4913.67F, 4613.84F, 4332.30F, 4067.94F, - 3819.72F, 3586.64F, 3367.78F, 3162.28F, - 2969.31F, 2788.13F, 2617.99F, 2458.24F, - 2308.24F, 2167.39F, 2035.14F, 1910.95F, - 1794.35F, 1684.85F, 1582.04F, 1485.51F, - 1394.86F, 1309.75F, 1229.83F, 1154.78F, - 1084.32F, 1018.15F, 956.024F, 897.687F, - 842.910F, 791.475F, 743.179F, 697.830F, - 655.249F, 615.265F, 577.722F, 542.469F, - 509.367F, 478.286F, 449.101F, 421.696F, - 395.964F, 371.803F, 349.115F, 327.812F, - 307.809F, 289.026F, 271.390F, 254.830F, - 239.280F, 224.679F, 210.969F, 198.096F, - 186.008F, 174.658F, 164.000F, 153.993F, - 144.596F, 135.773F, 127.488F, 119.708F, - 112.404F, 105.545F, 99.1046F, 93.0572F, - 87.3788F, 82.0469F, 77.0404F, 72.3394F, - 67.9252F, 63.7804F, 59.8885F, 56.2341F, - 52.8027F, 49.5807F, 46.5553F, 43.7144F, - 41.0470F, 38.5423F, 36.1904F, 33.9821F, - 31.9085F, 29.9614F, 28.1332F, 26.4165F, - 24.8045F, 23.2910F, 21.8697F, 20.5352F, - 19.2822F, 18.1056F, 17.0008F, 15.9634F, - 14.9893F, 14.0746F, 13.2158F, 12.4094F, - 11.6522F, 10.9411F, 10.2735F, 9.64662F, - 9.05798F, 8.50526F, 7.98626F, 7.49894F, - 7.04135F, 6.61169F, 6.20824F, 5.82941F, - 5.47370F, 5.13970F, 4.82607F, 4.53158F, - 4.25507F, 3.99542F, 3.75162F, 3.52269F, - 3.30774F, 3.10590F, 2.91638F, 2.73842F, - 2.57132F, 2.41442F, 2.26709F, 2.12875F, - 1.99885F, 1.87688F, 1.76236F, 1.65482F, - 1.55384F, 1.45902F, 1.36999F, 1.28640F, - 1.20790F, 1.13419F, 1.06499F, 1.F -}; - -void _vp_remove_floor(vorbis_look_psy *p, - float *mdct, - int *codedflr, - float *residue, - int sliding_lowpass){ - - int i,n=p->n; - - if(sliding_lowpass>n)sliding_lowpass=n; - - for(i=0;in; - float *work=alloca(n*sizeof(*work)); - - bark_noise_hybridmp(n,p->bark,logmdct,logmask, - 140.,-1); - - for(i=0;ibark,work,logmask,0., - p->vi->noisewindowfixed); - - for(i=0;i=NOISE_COMPAND_LEVELS)dB=NOISE_COMPAND_LEVELS-1; - if(dB<0)dB=0; - logmask[i]= work[i]+p->vi->noisecompand[dB]; - } - -} - -void _vp_tonemask(vorbis_look_psy *p, - float *logfft, - float *logmask, - float global_specmax, - float local_specmax){ - - int i,n=p->n; - - float *seed=alloca(sizeof(*seed)*p->total_octave_lines); - float att=local_specmax+p->vi->ath_adjatt; - for(i=0;itotal_octave_lines;i++)seed[i]=NEGINF; - - /* set the ATH (floating below localmax, not global max by a - specified att) */ - if(attvi->ath_maxatt)att=p->vi->ath_maxatt; - - for(i=0;iath[i]+att; - - /* tone masking */ - seed_loop(p,(const float ***)p->tonecurves,logfft,logmask,seed,global_specmax); - max_seeds(p,seed,logmask); - -} - -void _vp_offset_and_mix(vorbis_look_psy *p, - float *noise, - float *tone, - int offset_select, - float *logmask){ - int i,n=p->n; - float toneatt=p->vi->tone_masteratt[offset_select]; - - for(i=0;inoiseoffset[offset_select][i]; - if(val>p->vi->noisemaxsupp)val=p->vi->noisemaxsupp; - logmask[i]=max(val,tone[i]+toneatt); - } -} - -float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - - int n=ci->blocksizes[vd->W]/2; - float secs=(float)n/vi->rate; - - amp+=secs*gi->ampmax_att_per_sec; - if(amp<-9999)amp=-9999; - return(amp); -} - -static void couple_lossless(float A, float B, - float *qA, float *qB){ - int test1=fabs(*qA)>fabs(*qB); - test1-= fabs(*qA)fabs(B))<<1)-1; - if(test1==1){ - *qB=(*qA>0.f?*qA-*qB:*qB-*qA); - }else{ - float temp=*qB; - *qB=(*qB>0.f?*qA-*qB:*qB-*qA); - *qA=temp; - } - - if(*qB>fabs(*qA)*1.9999f){ - *qB= -fabs(*qA)*2.f; - *qA= -*qA; - } -} - -static float hypot_lookup[32]={ - -0.009935, -0.011245, -0.012726, -0.014397, - -0.016282, -0.018407, -0.020800, -0.023494, - -0.026522, -0.029923, -0.033737, -0.038010, - -0.042787, -0.048121, -0.054064, -0.060671, - -0.068000, -0.076109, -0.085054, -0.094892, - -0.105675, -0.117451, -0.130260, -0.144134, - -0.159093, -0.175146, -0.192286, -0.210490, - -0.229718, -0.249913, -0.271001, -0.292893}; - -static void precomputed_couple_point(float premag, - int floorA,int floorB, - float *mag, float *ang){ - - int test=(floorA>floorB)-1; - int offset=31-abs(floorA-floorB); - float floormag=hypot_lookup[((offset<0)-1)&offset]+1.f; - - floormag*=FLOOR1_fromdB_INV_LOOKUP[(floorB&test)|(floorA&(~test))]; - - *mag=premag*floormag; - *ang=0.f; -} - -/* just like below, this is currently set up to only do - single-step-depth coupling. Otherwise, we'd have to do more - copying (which will be inevitable later) */ - -/* doing the real circular magnitude calculation is audibly superior - to (A+B)/sqrt(2) */ -static float dipole_hypot(float a, float b){ - if(a>0.){ - if(b>0.)return sqrt(a*a+b*b); - if(a>-b)return sqrt(a*a-b*b); - return -sqrt(b*b-a*a); - } - if(b<0.)return -sqrt(a*a+b*b); - if(-a>b)return -sqrt(a*a-b*b); - return sqrt(b*b-a*a); -} -static float round_hypot(float a, float b){ - if(a>0.){ - if(b>0.)return sqrt(a*a+b*b); - if(a>-b)return sqrt(a*a+b*b); - return -sqrt(b*b+a*a); - } - if(b<0.)return -sqrt(a*a+b*b); - if(-a>b)return -sqrt(a*a+b*b); - return sqrt(b*b+a*a); -} - -/* revert to round hypot for now */ -float **_vp_quantize_couple_memo(vorbis_block *vb, - vorbis_info_psy_global *g, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mdct){ - - int i,j,n=p->n; - float **ret=_vorbis_block_alloc(vb,vi->coupling_steps*sizeof(*ret)); - int limit=g->coupling_pointlimit[p->vi->blockflag][PACKETBLOBS/2]; - - for(i=0;icoupling_steps;i++){ - float *mdctM=mdct[vi->coupling_mag[i]]; - float *mdctA=mdct[vi->coupling_ang[i]]; - ret[i]=_vorbis_block_alloc(vb,n*sizeof(**ret)); - for(j=0;jf2); -} - -int **_vp_quantize_couple_sort(vorbis_block *vb, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mags){ - - - if(p->vi->normal_point_p){ - int i,j,k,n=p->n; - int **ret=_vorbis_block_alloc(vb,vi->coupling_steps*sizeof(*ret)); - int partition=p->vi->normal_partition; - float **work=alloca(sizeof(*work)*partition); - - for(i=0;icoupling_steps;i++){ - ret[i]=_vorbis_block_alloc(vb,n*sizeof(**ret)); - - for(j=0;jn; - vorbis_info_psy *vi=p->vi; - int partition=vi->normal_partition; - float **work=alloca(sizeof(*work)*partition); - int start=vi->normal_start; - - for(j=start;jn)partition=n-j; - for(i=0;in; - vorbis_info_psy *vi=p->vi; - int partition=vi->normal_partition; - int start=vi->normal_start; - - if(start>n)start=n; - - if(vi->normal_channel_p){ - for(;j=.25f){ - out[k]=rint(in[k]); - acc-=in[k]*in[k]; - flag=1; - }else{ - if(accnormal_thresh)break; - out[k]=unitnorm(in[k]); - acc-=1.; - } - } - - for(;in; - - /* perform any requested channel coupling */ - /* point stereo can only be used in a first stage (in this encoder) - because of the dependency on floor lookups */ - for(i=0;icoupling_steps;i++){ - - /* once we're doing multistage coupling in which a channel goes - through more than one coupling step, the floor vector - magnitudes will also have to be recalculated an propogated - along with PCM. Right now, we're not (that will wait until 5.1 - most likely), so the code isn't here yet. The memory management - here is all assuming single depth couplings anyway. */ - - /* make sure coupling a zero and a nonzero channel results in two - nonzero channels. */ - if(nonzero[vi->coupling_mag[i]] || - nonzero[vi->coupling_ang[i]]){ - - - float *rM=res[vi->coupling_mag[i]]; - float *rA=res[vi->coupling_ang[i]]; - float *qM=rM+n; - float *qA=rA+n; - int *floorM=ifloor[vi->coupling_mag[i]]; - int *floorA=ifloor[vi->coupling_ang[i]]; - float prepoint=stereo_threshholds[g->coupling_prepointamp[blobno]]; - float postpoint=stereo_threshholds[g->coupling_postpointamp[blobno]]; - int partition=(p->vi->normal_point_p?p->vi->normal_partition:p->n); - int limit=g->coupling_pointlimit[p->vi->blockflag][blobno]; - int pointlimit=limit; - - nonzero[vi->coupling_mag[i]]=1; - nonzero[vi->coupling_ang[i]]=1; - - for(j=0;jn;j+=partition){ - float acc=0.f; - - for(k=0;k=limit && fabs(rM[l])vi->normal_point_p){ - for(k=0;k=p->vi->normal_thresh;k++){ - int l=mag_sort[i][j+k]; - if(l=pointlimit && rint(qM[l])==0.f){ - qM[l]=unitnorm(qM[l]); - acc-=1.f; - } - } - } - } - } - } -} - diff --git a/libvorbis-1.0.1/lib/vorbisenc.c b/libvorbis-1.0.1/lib/vorbisenc.c deleted file mode 100644 index 46451c2..0000000 --- a/libvorbis-1.0.1/lib/vorbisenc.c +++ /dev/null @@ -1,1134 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: simple programmatic interface for encoder mode setup - last mod: $Id: vorbisenc.c,v 1.47 2002/07/11 06:40:50 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include - -#include "vorbis/codec.h" -#include "vorbis/vorbisenc.h" - -#include "codec_internal.h" - -#include "os.h" -#include "misc.h" - -/* careful with this; it's using static array sizing to make managing - all the modes a little less annoying. If we use a residue backend - with > 12 partition types, or a different division of iteration, - this needs to be updated. */ -typedef struct { - static_codebook *books[12][3]; -} static_bookblock; - -typedef struct { - int res_type; - int limit_type; /* 0 lowpass limited, 1 point stereo limited */ - vorbis_info_residue0 *res; - static_codebook *book_aux; - static_codebook *book_aux_managed; - static_bookblock *books_base; - static_bookblock *books_base_managed; -} vorbis_residue_template; - -typedef struct { - vorbis_info_mapping0 *map; - vorbis_residue_template *res; -} vorbis_mapping_template; - -typedef struct vp_adjblock{ - int block[P_BANDS]; -} vp_adjblock; - -typedef struct { - int data[NOISE_COMPAND_LEVELS]; -} compandblock; - -/* high level configuration information for setting things up - step-by-step with the detailed vorbis_encode_ctl interface. - There's a fair amount of redundancy such that interactive setup - does not directly deal with any vorbis_info or codec_setup_info - initialization; it's all stored (until full init) in this highlevel - setup, then flushed out to the real codec setup structs later. */ - -typedef struct { - int att[P_NOISECURVES]; - float boost; - float decay; -} att3; -typedef struct { int data[P_NOISECURVES]; } adj3; - -typedef struct { - int pre[PACKETBLOBS]; - int post[PACKETBLOBS]; - float kHz[PACKETBLOBS]; - float lowpasskHz[PACKETBLOBS]; -} adj_stereo; - -typedef struct { - int lo; - int hi; - int fixed; -} noiseguard; -typedef struct { - int data[P_NOISECURVES][17]; -} noise3; - -typedef struct { - int mappings; - double *rate_mapping; - double *quality_mapping; - int coupling_restriction; - long samplerate_min_restriction; - long samplerate_max_restriction; - - - int *blocksize_short; - int *blocksize_long; - - att3 *psy_tone_masteratt; - int *psy_tone_0dB; - int *psy_tone_dBsuppress; - - vp_adjblock *psy_tone_adj_impulse; - vp_adjblock *psy_tone_adj_long; - vp_adjblock *psy_tone_adj_other; - - noiseguard *psy_noiseguards; - noise3 *psy_noise_bias_impulse; - noise3 *psy_noise_bias_padding; - noise3 *psy_noise_bias_trans; - noise3 *psy_noise_bias_long; - int *psy_noise_dBsuppress; - - compandblock *psy_noise_compand; - double *psy_noise_compand_short_mapping; - double *psy_noise_compand_long_mapping; - - int *psy_noise_normal_start[2]; - int *psy_noise_normal_partition[2]; - double *psy_noise_normal_thresh; - - int *psy_ath_float; - int *psy_ath_abs; - - double *psy_lowpass; - - vorbis_info_psy_global *global_params; - double *global_mapping; - adj_stereo *stereo_modes; - - static_codebook ***floor_books; - vorbis_info_floor1 *floor_params; - int *floor_short_mapping; - int *floor_long_mapping; - - vorbis_mapping_template *maps; -} ve_setup_data_template; - -/* a few static coder conventions */ -static vorbis_info_mode _mode_template[2]={ - {0,0,0,0}, - {1,0,0,1} -}; - -static vorbis_info_mapping0 _map_nominal[2]={ - {1, {0,0}, {0}, {0}, 1,{0},{1}}, - {1, {0,0}, {1}, {1}, 1,{0},{1}} -}; - -#include "modes/setup_44.h" -#include "modes/setup_44u.h" -#include "modes/setup_32.h" -#include "modes/setup_8.h" -#include "modes/setup_11.h" -#include "modes/setup_16.h" -#include "modes/setup_22.h" -#include "modes/setup_X.h" - -static ve_setup_data_template *setup_list[]={ - &ve_setup_44_stereo, - &ve_setup_44_stereo_low, - &ve_setup_44_uncoupled, - &ve_setup_44_uncoupled_low, - - &ve_setup_32_stereo, - &ve_setup_32_stereo_low, - &ve_setup_32_uncoupled, - &ve_setup_32_uncoupled_low, - - &ve_setup_22_stereo, - &ve_setup_22_uncoupled, - &ve_setup_16_stereo, - &ve_setup_16_uncoupled, - - &ve_setup_11_stereo, - &ve_setup_11_uncoupled, - &ve_setup_8_stereo, - &ve_setup_8_uncoupled, - - &ve_setup_X_stereo, - &ve_setup_X_uncoupled, - &ve_setup_X_stereo_low, - &ve_setup_X_uncoupled_low, - &ve_setup_XX_stereo, - &ve_setup_XX_uncoupled, - 0 -}; - -static int vorbis_encode_toplevel_setup(vorbis_info *vi,int ch,long rate){ - if(vi && vi->codec_setup){ - - vi->version=0; - vi->channels=ch; - vi->rate=rate; - - return(0); - } - return(OV_EINVAL); -} - -static void vorbis_encode_floor_setup(vorbis_info *vi,double s,int block, - static_codebook ***books, - vorbis_info_floor1 *in, - int *x){ - int i,k,is=s; - vorbis_info_floor1 *f=_ogg_calloc(1,sizeof(*f)); - codec_setup_info *ci=vi->codec_setup; - - memcpy(f,in+x[is],sizeof(*f)); - /* fill in the lowpass field, even if it's temporary */ - f->n=ci->blocksizes[block]>>1; - - /* books */ - { - int partitions=f->partitions; - int maxclass=-1; - int maxbook=-1; - for(i=0;ipartitionclass[i]>maxclass)maxclass=f->partitionclass[i]; - for(i=0;i<=maxclass;i++){ - if(f->class_book[i]>maxbook)maxbook=f->class_book[i]; - f->class_book[i]+=ci->books; - for(k=0;k<(1<class_subs[i]);k++){ - if(f->class_subbook[i][k]>maxbook)maxbook=f->class_subbook[i][k]; - if(f->class_subbook[i][k]>=0)f->class_subbook[i][k]+=ci->books; - } - } - - for(i=0;i<=maxbook;i++) - ci->book_param[ci->books++]=books[x[is]][i]; - } - - /* for now, we're only using floor 1 */ - ci->floor_type[ci->floors]=1; - ci->floor_param[ci->floors]=f; - ci->floors++; - - return; -} - -static void vorbis_encode_global_psych_setup(vorbis_info *vi,double s, - vorbis_info_psy_global *in, - double *x){ - int i,is=s; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *g=&ci->psy_g_param; - - memcpy(g,in+(int)x[is],sizeof(*g)); - - ds=x[is]*(1.-ds)+x[is+1]*ds; - is=(int)ds; - ds-=is; - if(ds==0 && is>0){ - is--; - ds=1.; - } - - /* interpolate the trigger threshholds */ - for(i=0;i<4;i++){ - g->preecho_thresh[i]=in[is].preecho_thresh[i]*(1.-ds)+in[is+1].preecho_thresh[i]*ds; - g->postecho_thresh[i]=in[is].postecho_thresh[i]*(1.-ds)+in[is+1].postecho_thresh[i]*ds; - } - g->ampmax_att_per_sec=ci->hi.amplitude_track_dBpersec; - return; -} - -static void vorbis_encode_global_stereo(vorbis_info *vi, - highlevel_encode_setup *hi, - adj_stereo *p){ - float s=hi->stereo_point_setting; - int i,is=s; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *g=&ci->psy_g_param; - - if(p){ - memcpy(g->coupling_prepointamp,p[is].pre,sizeof(*p[is].pre)*PACKETBLOBS); - memcpy(g->coupling_postpointamp,p[is].post,sizeof(*p[is].post)*PACKETBLOBS); - - if(hi->managed){ - /* interpolate the kHz threshholds */ - for(i=0;icoupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; - g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; - g->coupling_pkHz[i]=kHz; - - kHz=p[is].lowpasskHz[i]*(1.-ds)+p[is+1].lowpasskHz[i]*ds; - g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; - g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; - - } - }else{ - float kHz=p[is].kHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].kHz[PACKETBLOBS/2]*ds; - for(i=0;icoupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; - g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; - g->coupling_pkHz[i]=kHz; - } - - kHz=p[is].lowpasskHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].lowpasskHz[PACKETBLOBS/2]*ds; - for(i=0;isliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; - g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; - } - } - }else{ - for(i=0;isliding_lowpass[0][i]=ci->blocksizes[0]; - g->sliding_lowpass[1][i]=ci->blocksizes[1]; - } - } - return; -} - -static void vorbis_encode_psyset_setup(vorbis_info *vi,double s, - int *nn_start, - int *nn_partition, - double *nn_thresh, - int block){ - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - highlevel_encode_setup *hi=&ci->hi; - int is=s; - - if(block>=ci->psys) - ci->psys=block+1; - if(!p){ - p=_ogg_calloc(1,sizeof(*p)); - ci->psy_param[block]=p; - } - - memcpy(p,&_psy_info_template,sizeof(*p)); - p->blockflag=block>>1; - - if(hi->noise_normalize_p){ - p->normal_channel_p=1; - p->normal_point_p=1; - p->normal_start=nn_start[is]; - p->normal_partition=nn_partition[is]; - p->normal_thresh=nn_thresh[is]; - } - - return; -} - -static void vorbis_encode_tonemask_setup(vorbis_info *vi,double s,int block, - att3 *att, - int *max, - vp_adjblock *in){ - int i,is=s; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - - /* 0 and 2 are only used by bitmanagement, but there's no harm to always - filling the values in here */ - p->tone_masteratt[0]=att[is].att[0]*(1.-ds)+att[is+1].att[0]*ds; - p->tone_masteratt[1]=att[is].att[1]*(1.-ds)+att[is+1].att[1]*ds; - p->tone_masteratt[2]=att[is].att[2]*(1.-ds)+att[is+1].att[2]*ds; - p->tone_centerboost=att[is].boost*(1.-ds)+att[is+1].boost*ds; - p->tone_decay=att[is].decay*(1.-ds)+att[is+1].decay*ds; - - p->max_curve_dB=max[is]*(1.-ds)+max[is+1]*ds; - - for(i=0;itoneatt[i]=in[is].block[i]*(1.-ds)+in[is+1].block[i]*ds; - return; -} - - -static void vorbis_encode_compand_setup(vorbis_info *vi,double s,int block, - compandblock *in, double *x){ - int i,is=s; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - - ds=x[is]*(1.-ds)+x[is+1]*ds; - is=(int)ds; - ds-=is; - if(ds==0 && is>0){ - is--; - ds=1.; - } - - /* interpolate the compander settings */ - for(i=0;inoisecompand[i]=in[is].data[i]*(1.-ds)+in[is+1].data[i]*ds; - return; -} - -static void vorbis_encode_peak_setup(vorbis_info *vi,double s,int block, - int *suppress){ - int is=s; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - - p->tone_abs_limit=suppress[is]*(1.-ds)+suppress[is+1]*ds; - - return; -} - -static void vorbis_encode_noisebias_setup(vorbis_info *vi,double s,int block, - int *suppress, - noise3 *in, - noiseguard *guard, - double userbias){ - int i,is=s,j; - double ds=s-is; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - - p->noisemaxsupp=suppress[is]*(1.-ds)+suppress[is+1]*ds; - p->noisewindowlomin=guard[block].lo; - p->noisewindowhimin=guard[block].hi; - p->noisewindowfixed=guard[block].fixed; - - for(j=0;jnoiseoff[j][i]=in[is].data[j][i]*(1.-ds)+in[is+1].data[j][i]*ds; - - /* impulse blocks may take a user specified bias to boost the - nominal/high noise encoding depth */ - for(j=0;jnoiseoff[j][0]+6; /* the lowest it can go */ - for(i=0;inoiseoff[j][i]+=userbias; - if(p->noiseoff[j][i]noiseoff[j][i]=min; - } - } - - return; -} - -static void vorbis_encode_ath_setup(vorbis_info *vi,int block){ - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy *p=ci->psy_param[block]; - - p->ath_adjatt=ci->hi.ath_floating_dB; - p->ath_maxatt=ci->hi.ath_absolute_dB; - return; -} - - -static int book_dup_or_new(codec_setup_info *ci,static_codebook *book){ - int i; - for(i=0;ibooks;i++) - if(ci->book_param[i]==book)return(i); - - return(ci->books++); -} - -static void vorbis_encode_blocksize_setup(vorbis_info *vi,double s, - int *shortb,int *longb){ - - codec_setup_info *ci=vi->codec_setup; - int is=s; - - int blockshort=shortb[is]; - int blocklong=longb[is]; - ci->blocksizes[0]=blockshort; - ci->blocksizes[1]=blocklong; - -} - -static void vorbis_encode_residue_setup(vorbis_info *vi, - int number, int block, - vorbis_residue_template *res){ - - codec_setup_info *ci=vi->codec_setup; - int i,n; - - vorbis_info_residue0 *r=ci->residue_param[number]= - _ogg_malloc(sizeof(*r)); - - memcpy(r,res->res,sizeof(*r)); - if(ci->residues<=number)ci->residues=number+1; - - switch(ci->blocksizes[block]){ - case 64:case 128:case 256: - r->grouping=16; - break; - default: - r->grouping=32; - break; - } - ci->residue_type[number]=res->res_type; - - /* to be adjusted by lowpass/pointlimit later */ - n=r->end=ci->blocksizes[block]>>1; - if(res->res_type==2) - n=r->end*=vi->channels; - - /* fill in all the books */ - { - int booklist=0,k; - - if(ci->hi.managed){ - for(i=0;ipartitions;i++) - for(k=0;k<3;k++) - if(res->books_base_managed->books[i][k]) - r->secondstages[i]|=(1<groupbook=book_dup_or_new(ci,res->book_aux_managed); - ci->book_param[r->groupbook]=res->book_aux_managed; - - for(i=0;ipartitions;i++){ - for(k=0;k<3;k++){ - if(res->books_base_managed->books[i][k]){ - int bookid=book_dup_or_new(ci,res->books_base_managed->books[i][k]); - r->booklist[booklist++]=bookid; - ci->book_param[bookid]=res->books_base_managed->books[i][k]; - } - } - } - - }else{ - - for(i=0;ipartitions;i++) - for(k=0;k<3;k++) - if(res->books_base->books[i][k]) - r->secondstages[i]|=(1<groupbook=book_dup_or_new(ci,res->book_aux); - ci->book_param[r->groupbook]=res->book_aux; - - for(i=0;ipartitions;i++){ - for(k=0;k<3;k++){ - if(res->books_base->books[i][k]){ - int bookid=book_dup_or_new(ci,res->books_base->books[i][k]); - r->booklist[booklist++]=bookid; - ci->book_param[bookid]=res->books_base->books[i][k]; - } - } - } - } - } - - /* lowpass setup/pointlimit */ - { - double freq=ci->hi.lowpass_kHz*1000.; - vorbis_info_floor1 *f=ci->floor_param[block]; /* by convention */ - double nyq=vi->rate/2.; - long blocksize=ci->blocksizes[block]>>1; - - /* lowpass needs to be set in the floor and the residue. */ - if(freq>nyq)freq=nyq; - /* in the floor, the granularity can be very fine; it doesn't alter - the encoding structure, only the samples used to fit the floor - approximation */ - f->n=freq/nyq*blocksize; - - /* this res may by limited by the maximum pointlimit of the mode, - not the lowpass. the floor is always lowpass limited. */ - if(res->limit_type){ - if(ci->hi.managed) - freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS-1]*1000.; - else - freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS/2]*1000.; - if(freq>nyq)freq=nyq; - } - - /* in the residue, we're constrained, physically, by partition - boundaries. We still lowpass 'wherever', but we have to round up - here to next boundary, or the vorbis spec will round it *down* to - previous boundary in encode/decode */ - if(ci->residue_type[block]==2) - r->end=(int)((freq/nyq*blocksize*2)/r->grouping+.9)* /* round up only if we're well past */ - r->grouping; - else - r->end=(int)((freq/nyq*blocksize)/r->grouping+.9)* /* round up only if we're well past */ - r->grouping; - } -} - -/* we assume two maps in this encoder */ -static void vorbis_encode_map_n_res_setup(vorbis_info *vi,double s, - vorbis_mapping_template *maps){ - - codec_setup_info *ci=vi->codec_setup; - int i,j,is=s,modes=2; - vorbis_info_mapping0 *map=maps[is].map; - vorbis_info_mode *mode=_mode_template; - vorbis_residue_template *res=maps[is].res; - - if(ci->blocksizes[0]==ci->blocksizes[1])modes=1; - - for(i=0;imap_param[i]=_ogg_calloc(1,sizeof(*map)); - ci->mode_param[i]=_ogg_calloc(1,sizeof(*mode)); - - memcpy(ci->mode_param[i],mode+i,sizeof(*_mode_template)); - if(i>=ci->modes)ci->modes=i+1; - - ci->map_type[i]=0; - memcpy(ci->map_param[i],map+i,sizeof(*map)); - if(i>=ci->maps)ci->maps=i+1; - - for(j=0;jcodec_setup; - highlevel_encode_setup *hi=&ci->hi; - ve_setup_data_template *setup=(ve_setup_data_template *)hi->setup; - int is=hi->base_setting; - double ds=hi->base_setting-is; - int ch=vi->channels; - double *r=setup->rate_mapping; - - if(r==NULL) - return(-1); - - return((r[is]*(1.-ds)+r[is+1]*ds)*ch); -} - -static void get_setup_template(vorbis_info *vi, - long ch,long srate, - double req,int q_or_bitrate){ - int i=0,j; - codec_setup_info *ci=vi->codec_setup; - highlevel_encode_setup *hi=&ci->hi; - if(q_or_bitrate)req/=ch; - - while(setup_list[i]){ - if(setup_list[i]->coupling_restriction==-1 || - setup_list[i]->coupling_restriction==ch){ - if(srate>=setup_list[i]->samplerate_min_restriction && - srate<=setup_list[i]->samplerate_max_restriction){ - int mappings=setup_list[i]->mappings; - double *map=(q_or_bitrate? - setup_list[i]->rate_mapping: - setup_list[i]->quality_mapping); - - /* the template matches. Does the requested quality mode - fall within this template's modes? */ - if(reqmap[setup_list[i]->mappings]){++i;continue;} - for(j=0;j=map[j] && reqsetup=setup_list[i]; - if(j==mappings) - hi->base_setting=j-.001; - else{ - float low=map[j]; - float high=map[j+1]; - float del=(req-low)/(high-low); - hi->base_setting=j+del; - } - return; - } - } - i++; - } - - hi->setup=NULL; -} - -/* encoders will need to use vorbis_info_init beforehand and call - vorbis_info clear when all done */ - -/* two interfaces; this, more detailed one, and later a convenience - layer on top */ - -/* the final setup call */ -int vorbis_encode_setup_init(vorbis_info *vi){ - int i0=0,singleblock=0; - codec_setup_info *ci=vi->codec_setup; - ve_setup_data_template *setup=NULL; - highlevel_encode_setup *hi=&ci->hi; - - if(ci==NULL)return(OV_EINVAL); - if(!hi->impulse_block_p)i0=1; - - /* too low/high an ATH floater is nonsensical, but doesn't break anything */ - if(hi->ath_floating_dB>-80)hi->ath_floating_dB=-80; - if(hi->ath_floating_dB<-200)hi->ath_floating_dB=-200; - - /* again, bound this to avoid the app shooting itself int he foot - too badly */ - if(hi->amplitude_track_dBpersec>0.)hi->amplitude_track_dBpersec=0.; - if(hi->amplitude_track_dBpersec<-99999.)hi->amplitude_track_dBpersec=-99999.; - - /* get the appropriate setup template; matches the fetch in previous - stages */ - setup=(ve_setup_data_template *)hi->setup; - if(setup==NULL)return(OV_EINVAL); - - hi->set_in_stone=1; - /* choose block sizes from configured sizes as well as paying - attention to long_block_p and short_block_p. If the configured - short and long blocks are the same length, we set long_block_p - and unset short_block_p */ - vorbis_encode_blocksize_setup(vi,hi->base_setting, - setup->blocksize_short, - setup->blocksize_long); - if(ci->blocksizes[0]==ci->blocksizes[1])singleblock=1; - - /* floor setup; choose proper floor params. Allocated on the floor - stack in order; if we alloc only long floor, it's 0 */ - vorbis_encode_floor_setup(vi,hi->short_setting,0, - setup->floor_books, - setup->floor_params, - setup->floor_short_mapping); - if(!singleblock) - vorbis_encode_floor_setup(vi,hi->long_setting,1, - setup->floor_books, - setup->floor_params, - setup->floor_long_mapping); - - /* setup of [mostly] short block detection and stereo*/ - vorbis_encode_global_psych_setup(vi,hi->trigger_setting, - setup->global_params, - setup->global_mapping); - vorbis_encode_global_stereo(vi,hi,setup->stereo_modes); - - /* basic psych setup and noise normalization */ - vorbis_encode_psyset_setup(vi,hi->short_setting, - setup->psy_noise_normal_start[0], - setup->psy_noise_normal_partition[0], - setup->psy_noise_normal_thresh, - 0); - vorbis_encode_psyset_setup(vi,hi->short_setting, - setup->psy_noise_normal_start[0], - setup->psy_noise_normal_partition[0], - setup->psy_noise_normal_thresh, - 1); - if(!singleblock){ - vorbis_encode_psyset_setup(vi,hi->long_setting, - setup->psy_noise_normal_start[1], - setup->psy_noise_normal_partition[1], - setup->psy_noise_normal_thresh, - 2); - vorbis_encode_psyset_setup(vi,hi->long_setting, - setup->psy_noise_normal_start[1], - setup->psy_noise_normal_partition[1], - setup->psy_noise_normal_thresh, - 3); - } - - /* tone masking setup */ - vorbis_encode_tonemask_setup(vi,hi->block[i0].tone_mask_setting,0, - setup->psy_tone_masteratt, - setup->psy_tone_0dB, - setup->psy_tone_adj_impulse); - vorbis_encode_tonemask_setup(vi,hi->block[1].tone_mask_setting,1, - setup->psy_tone_masteratt, - setup->psy_tone_0dB, - setup->psy_tone_adj_other); - if(!singleblock){ - vorbis_encode_tonemask_setup(vi,hi->block[2].tone_mask_setting,2, - setup->psy_tone_masteratt, - setup->psy_tone_0dB, - setup->psy_tone_adj_other); - vorbis_encode_tonemask_setup(vi,hi->block[3].tone_mask_setting,3, - setup->psy_tone_masteratt, - setup->psy_tone_0dB, - setup->psy_tone_adj_long); - } - - /* noise companding setup */ - vorbis_encode_compand_setup(vi,hi->block[i0].noise_compand_setting,0, - setup->psy_noise_compand, - setup->psy_noise_compand_short_mapping); - vorbis_encode_compand_setup(vi,hi->block[1].noise_compand_setting,1, - setup->psy_noise_compand, - setup->psy_noise_compand_short_mapping); - if(!singleblock){ - vorbis_encode_compand_setup(vi,hi->block[2].noise_compand_setting,2, - setup->psy_noise_compand, - setup->psy_noise_compand_long_mapping); - vorbis_encode_compand_setup(vi,hi->block[3].noise_compand_setting,3, - setup->psy_noise_compand, - setup->psy_noise_compand_long_mapping); - } - - /* peak guarding setup */ - vorbis_encode_peak_setup(vi,hi->block[i0].tone_peaklimit_setting,0, - setup->psy_tone_dBsuppress); - vorbis_encode_peak_setup(vi,hi->block[1].tone_peaklimit_setting,1, - setup->psy_tone_dBsuppress); - if(!singleblock){ - vorbis_encode_peak_setup(vi,hi->block[2].tone_peaklimit_setting,2, - setup->psy_tone_dBsuppress); - vorbis_encode_peak_setup(vi,hi->block[3].tone_peaklimit_setting,3, - setup->psy_tone_dBsuppress); - } - - /* noise bias setup */ - vorbis_encode_noisebias_setup(vi,hi->block[i0].noise_bias_setting,0, - setup->psy_noise_dBsuppress, - setup->psy_noise_bias_impulse, - setup->psy_noiseguards, - (i0==0?hi->impulse_noisetune:0.)); - vorbis_encode_noisebias_setup(vi,hi->block[1].noise_bias_setting,1, - setup->psy_noise_dBsuppress, - setup->psy_noise_bias_padding, - setup->psy_noiseguards,0.); - if(!singleblock){ - vorbis_encode_noisebias_setup(vi,hi->block[2].noise_bias_setting,2, - setup->psy_noise_dBsuppress, - setup->psy_noise_bias_trans, - setup->psy_noiseguards,0.); - vorbis_encode_noisebias_setup(vi,hi->block[3].noise_bias_setting,3, - setup->psy_noise_dBsuppress, - setup->psy_noise_bias_long, - setup->psy_noiseguards,0.); - } - - vorbis_encode_ath_setup(vi,0); - vorbis_encode_ath_setup(vi,1); - if(!singleblock){ - vorbis_encode_ath_setup(vi,2); - vorbis_encode_ath_setup(vi,3); - } - - vorbis_encode_map_n_res_setup(vi,hi->base_setting,setup->maps); - - /* set bitrate readonlies and management */ - vi->bitrate_nominal=setting_to_approx_bitrate(vi); - vi->bitrate_lower=hi->bitrate_min; - vi->bitrate_upper=hi->bitrate_max; - vi->bitrate_window=hi->bitrate_limit_window; - - if(hi->managed){ - ci->bi.queue_avg_time=hi->bitrate_av_window; - ci->bi.queue_avg_center=hi->bitrate_av_window_center; - ci->bi.queue_minmax_time=hi->bitrate_limit_window; - ci->bi.queue_hardmin=hi->bitrate_min; - ci->bi.queue_hardmax=hi->bitrate_max; - ci->bi.queue_avgmin=hi->bitrate_av_lo; - ci->bi.queue_avgmax=hi->bitrate_av_hi; - ci->bi.avgfloat_downslew_max=-999999.f; - ci->bi.avgfloat_upslew_max=999999.f; - } - - return(0); - -} - -static int vorbis_encode_setup_setting(vorbis_info *vi, - long channels, - long rate){ - int ret=0,i,is; - codec_setup_info *ci=vi->codec_setup; - highlevel_encode_setup *hi=&ci->hi; - ve_setup_data_template *setup=hi->setup; - double ds; - - ret=vorbis_encode_toplevel_setup(vi,channels,rate); - if(ret)return(ret); - - is=hi->base_setting; - ds=hi->base_setting-is; - - hi->short_setting=hi->base_setting; - hi->long_setting=hi->base_setting; - - hi->managed=0; - - hi->impulse_block_p=1; - hi->noise_normalize_p=1; - - hi->stereo_point_setting=hi->base_setting; - hi->lowpass_kHz= - setup->psy_lowpass[is]*(1.-ds)+setup->psy_lowpass[is+1]*ds; - - hi->ath_floating_dB=setup->psy_ath_float[is]*(1.-ds)+ - setup->psy_ath_float[is+1]*ds; - hi->ath_absolute_dB=setup->psy_ath_abs[is]*(1.-ds)+ - setup->psy_ath_abs[is+1]*ds; - - hi->amplitude_track_dBpersec=-6.; - hi->trigger_setting=hi->base_setting; - - for(i=0;i<4;i++){ - hi->block[i].tone_mask_setting=hi->base_setting; - hi->block[i].tone_peaklimit_setting=hi->base_setting; - hi->block[i].noise_bias_setting=hi->base_setting; - hi->block[i].noise_compand_setting=hi->base_setting; - } - - return(ret); -} - -int vorbis_encode_setup_vbr(vorbis_info *vi, - long channels, - long rate, - float quality){ - codec_setup_info *ci=vi->codec_setup; - highlevel_encode_setup *hi=&ci->hi; - - quality+=.00001; - if(quality>=1.)quality=.9999; - - get_setup_template(vi,channels,rate,quality,0); - if(!hi->setup)return OV_EIMPL; - - return vorbis_encode_setup_setting(vi,channels,rate); -} - -int vorbis_encode_init_vbr(vorbis_info *vi, - long channels, - long rate, - - float base_quality /* 0. to 1. */ - ){ - int ret=0; - - ret=vorbis_encode_setup_vbr(vi,channels,rate,base_quality); - - if(ret){ - vorbis_info_clear(vi); - return ret; - } - ret=vorbis_encode_setup_init(vi); - if(ret) - vorbis_info_clear(vi); - return(ret); -} - -int vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate){ - - codec_setup_info *ci=vi->codec_setup; - highlevel_encode_setup *hi=&ci->hi; - double tnominal=nominal_bitrate; - int ret=0; - - if(nominal_bitrate<=0.){ - if(max_bitrate>0.){ - nominal_bitrate=max_bitrate*.875; - }else{ - if(min_bitrate>0.){ - nominal_bitrate=min_bitrate; - }else{ - return(OV_EINVAL); - } - } - } - - get_setup_template(vi,channels,rate,nominal_bitrate,1); - if(!hi->setup)return OV_EIMPL; - - ret=vorbis_encode_setup_setting(vi,channels,rate); - if(ret){ - vorbis_info_clear(vi); - return ret; - } - - /* initialize management with sane defaults */ - /* initialize management with sane defaults */ - hi->managed=1; - hi->bitrate_av_window=4.; - hi->bitrate_av_window_center=.5; - hi->bitrate_limit_window=2.; - hi->bitrate_min=min_bitrate; - hi->bitrate_max=max_bitrate; - hi->bitrate_av_lo=tnominal; - hi->bitrate_av_hi=tnominal; - - return(ret); - -} - -int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate){ - - int ret=vorbis_encode_setup_managed(vi,channels,rate, - max_bitrate, - nominal_bitrate, - min_bitrate); - if(ret){ - vorbis_info_clear(vi); - return(ret); - } - - ret=vorbis_encode_setup_init(vi); - if(ret) - vorbis_info_clear(vi); - return(ret); -} - -int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg){ - if(vi){ - codec_setup_info *ci=vi->codec_setup; - highlevel_encode_setup *hi=&ci->hi; - int setp=(number&0xf); /* a read request has a low nibble of 0 */ - - if(setp && hi->set_in_stone)return(OV_EINVAL); - - switch(number){ - case OV_ECTL_RATEMANAGE_GET: - { - - struct ovectl_ratemanage_arg *ai= - (struct ovectl_ratemanage_arg *)arg; - - ai->management_active=hi->managed; - ai->bitrate_av_window=hi->bitrate_av_window; - ai->bitrate_av_window_center=hi->bitrate_av_window_center; - ai->bitrate_hard_window=hi->bitrate_limit_window; - ai->bitrate_hard_min=hi->bitrate_min; - ai->bitrate_hard_max=hi->bitrate_max; - ai->bitrate_av_lo=hi->bitrate_av_lo; - ai->bitrate_av_hi=hi->bitrate_av_hi; - - } - return(0); - - case OV_ECTL_RATEMANAGE_SET: - { - struct ovectl_ratemanage_arg *ai= - (struct ovectl_ratemanage_arg *)arg; - if(ai==NULL){ - hi->managed=0; - }else{ - hi->managed=ai->management_active; - vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_AVG,arg); - vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_HARD,arg); - } - } - return 0; - - case OV_ECTL_RATEMANAGE_AVG: - { - struct ovectl_ratemanage_arg *ai= - (struct ovectl_ratemanage_arg *)arg; - if(ai==NULL){ - hi->bitrate_av_lo=0; - hi->bitrate_av_hi=0; - hi->bitrate_av_window=0; - }else{ - hi->bitrate_av_window=ai->bitrate_av_window; - hi->bitrate_av_window_center=ai->bitrate_av_window_center; - hi->bitrate_av_lo=ai->bitrate_av_lo; - hi->bitrate_av_hi=ai->bitrate_av_hi; - } - - if(hi->bitrate_av_window<.25)hi->bitrate_av_window=.25; - if(hi->bitrate_av_window>10.)hi->bitrate_av_window=10.; - if(hi->bitrate_av_window_center<0.)hi->bitrate_av_window=0.; - if(hi->bitrate_av_window_center>1.)hi->bitrate_av_window=1.; - - if( ( (hi->bitrate_av_lo<=0 && hi->bitrate_av_hi<=0)|| - (hi->bitrate_av_window<=0) ) && - ( (hi->bitrate_min<=0 && hi->bitrate_max<=0)|| - (hi->bitrate_limit_window<=0) )) - hi->managed=0; - } - return(0); - case OV_ECTL_RATEMANAGE_HARD: - { - struct ovectl_ratemanage_arg *ai= - (struct ovectl_ratemanage_arg *)arg; - if(ai==NULL){ - hi->bitrate_min=0; - hi->bitrate_max=0; - hi->bitrate_limit_window=0; - }else{ - hi->bitrate_limit_window=ai->bitrate_hard_window; - hi->bitrate_min=ai->bitrate_hard_min; - hi->bitrate_max=ai->bitrate_hard_max; - } - if(hi->bitrate_limit_window<0.)hi->bitrate_limit_window=0.; - if(hi->bitrate_limit_window>10.)hi->bitrate_limit_window=10.; - - if( ( (hi->bitrate_av_lo<=0 && hi->bitrate_av_hi<=0)|| - (hi->bitrate_av_window<=0) ) && - ( (hi->bitrate_min<=0 && hi->bitrate_max<=0)|| - (hi->bitrate_limit_window<=0) )) - hi->managed=0; - } - return(0); - - case OV_ECTL_LOWPASS_GET: - { - double *farg=(double *)arg; - *farg=hi->lowpass_kHz; - } - return(0); - case OV_ECTL_LOWPASS_SET: - { - double *farg=(double *)arg; - hi->lowpass_kHz=*farg; - - if(hi->lowpass_kHz<2.)hi->lowpass_kHz=2.; - if(hi->lowpass_kHz>99.)hi->lowpass_kHz=99.; - } - return(0); - case OV_ECTL_IBLOCK_GET: - { - double *farg=(double *)arg; - *farg=hi->impulse_noisetune; - } - return(0); - case OV_ECTL_IBLOCK_SET: - { - double *farg=(double *)arg; - hi->impulse_noisetune=*farg; - - if(hi->impulse_noisetune>0.)hi->impulse_noisetune=0.; - if(hi->impulse_noisetune<-15.)hi->impulse_noisetune=-15.; - } - return(0); - } - - - return(OV_EIMPL); - } - return(OV_EINVAL); -} diff --git a/libvorbis-1.0.1/lib/window.c b/libvorbis-1.0.1/lib/window.c deleted file mode 100644 index 35e670f..0000000 --- a/libvorbis-1.0.1/lib/window.c +++ /dev/null @@ -1,2136 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: window functions - last mod: $Id: window.c,v 1.23 2003/09/01 22:59:54 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include "os.h" -#include "misc.h" - -static float vwin64[32] = { - 0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, - 0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F, - 0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F, - 0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F, - 0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F, - 0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F, - 0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F, - 0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F, -}; - -static float vwin128[64] = { - 0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F, - 0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F, - 0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F, - 0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F, - 0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F, - 0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F, - 0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F, - 0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F, - 0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F, - 0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F, - 0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F, - 0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F, - 0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F, - 0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F, - 0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F, - 0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F, -}; - -static float vwin256[128] = { - 0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F, - 0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F, - 0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F, - 0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F, - 0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F, - 0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F, - 0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F, - 0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F, - 0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F, - 0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F, - 0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F, - 0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F, - 0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F, - 0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F, - 0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F, - 0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F, - 0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F, - 0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F, - 0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F, - 0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F, - 0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F, - 0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F, - 0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F, - 0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F, - 0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F, - 0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F, - 0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F, - 0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F, - 0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F, - 0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F, - 0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F, - 0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F, -}; - -static float vwin512[256] = { - 0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F, - 0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F, - 0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F, - 0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F, - 0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F, - 0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F, - 0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F, - 0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F, - 0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F, - 0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F, - 0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F, - 0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F, - 0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F, - 0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F, - 0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F, - 0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F, - 0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F, - 0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F, - 0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F, - 0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F, - 0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F, - 0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F, - 0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F, - 0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F, - 0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F, - 0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F, - 0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F, - 0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F, - 0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F, - 0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F, - 0.6542670475F, 0.6614989319F, 0.6686768267F, 0.6757988210F, - 0.6828630426F, 0.6898676592F, 0.6968108799F, 0.7036909564F, - 0.7105061843F, 0.7172549043F, 0.7239355032F, 0.7305464154F, - 0.7370861235F, 0.7435531598F, 0.7499461068F, 0.7562635986F, - 0.7625043214F, 0.7686670148F, 0.7747504721F, 0.7807535410F, - 0.7866751247F, 0.7925141825F, 0.7982697296F, 0.8039408387F, - 0.8095266395F, 0.8150263196F, 0.8204391248F, 0.8257643590F, - 0.8310013848F, 0.8361496236F, 0.8412085555F, 0.8461777194F, - 0.8510567129F, 0.8558451924F, 0.8605428730F, 0.8651495278F, - 0.8696649882F, 0.8740891432F, 0.8784219392F, 0.8826633797F, - 0.8868135244F, 0.8908724888F, 0.8948404441F, 0.8987176157F, - 0.9025042831F, 0.9062007791F, 0.9098074886F, 0.9133248482F, - 0.9167533451F, 0.9200935163F, 0.9233459472F, 0.9265112712F, - 0.9295901680F, 0.9325833632F, 0.9354916263F, 0.9383157705F, - 0.9410566504F, 0.9437151618F, 0.9462922398F, 0.9487888576F, - 0.9512060252F, 0.9535447882F, 0.9558062262F, 0.9579914516F, - 0.9601016078F, 0.9621378683F, 0.9641014348F, 0.9659935361F, - 0.9678154261F, 0.9695683830F, 0.9712537071F, 0.9728727198F, - 0.9744267618F, 0.9759171916F, 0.9773453842F, 0.9787127293F, - 0.9800206298F, 0.9812705006F, 0.9824637665F, 0.9836018613F, - 0.9846862258F, 0.9857183066F, 0.9866995544F, 0.9876314227F, - 0.9885153662F, 0.9893528393F, 0.9901452948F, 0.9908941823F, - 0.9916009470F, 0.9922670279F, 0.9928938570F, 0.9934828574F, - 0.9940354423F, 0.9945530133F, 0.9950369595F, 0.9954886562F, - 0.9959094633F, 0.9963007242F, 0.9966637649F, 0.9969998925F, - 0.9973103939F, 0.9975965351F, 0.9978595598F, 0.9981006885F, - 0.9983211172F, 0.9985220166F, 0.9987045311F, 0.9988697776F, - 0.9990188449F, 0.9991527924F, 0.9992726499F, 0.9993794157F, - 0.9994740570F, 0.9995575079F, 0.9996306699F, 0.9996944099F, - 0.9997495605F, 0.9997969190F, 0.9998372465F, 0.9998712678F, - 0.9998996704F, 0.9999231041F, 0.9999421807F, 0.9999574732F, - 0.9999695157F, 0.9999788026F, 0.9999857885F, 0.9999908879F, - 0.9999944746F, 0.9999968817F, 0.9999984010F, 0.9999992833F, - 0.9999997377F, 0.9999999317F, 0.9999999911F, 0.9999999999F, -}; - -static float vwin1024[512] = { - 0.0000036962F, 0.0000332659F, 0.0000924041F, 0.0001811086F, - 0.0002993761F, 0.0004472021F, 0.0006245811F, 0.0008315063F, - 0.0010679699F, 0.0013339631F, 0.0016294757F, 0.0019544965F, - 0.0023090133F, 0.0026930125F, 0.0031064797F, 0.0035493989F, - 0.0040217533F, 0.0045235250F, 0.0050546946F, 0.0056152418F, - 0.0062051451F, 0.0068243817F, 0.0074729278F, 0.0081507582F, - 0.0088578466F, 0.0095941655F, 0.0103596863F, 0.0111543789F, - 0.0119782122F, 0.0128311538F, 0.0137131701F, 0.0146242260F, - 0.0155642855F, 0.0165333111F, 0.0175312640F, 0.0185581042F, - 0.0196137903F, 0.0206982797F, 0.0218115284F, 0.0229534910F, - 0.0241241208F, 0.0253233698F, 0.0265511886F, 0.0278075263F, - 0.0290923308F, 0.0304055484F, 0.0317471241F, 0.0331170013F, - 0.0345151222F, 0.0359414274F, 0.0373958560F, 0.0388783456F, - 0.0403888325F, 0.0419272511F, 0.0434935347F, 0.0450876148F, - 0.0467094213F, 0.0483588828F, 0.0500359261F, 0.0517404765F, - 0.0534724575F, 0.0552317913F, 0.0570183983F, 0.0588321971F, - 0.0606731048F, 0.0625410369F, 0.0644359070F, 0.0663576272F, - 0.0683061077F, 0.0702812571F, 0.0722829821F, 0.0743111878F, - 0.0763657775F, 0.0784466526F, 0.0805537129F, 0.0826868561F, - 0.0848459782F, 0.0870309736F, 0.0892417345F, 0.0914781514F, - 0.0937401128F, 0.0960275056F, 0.0983402145F, 0.1006781223F, - 0.1030411101F, 0.1054290568F, 0.1078418397F, 0.1102793336F, - 0.1127414119F, 0.1152279457F, 0.1177388042F, 0.1202738544F, - 0.1228329618F, 0.1254159892F, 0.1280227980F, 0.1306532471F, - 0.1333071937F, 0.1359844927F, 0.1386849970F, 0.1414085575F, - 0.1441550230F, 0.1469242403F, 0.1497160539F, 0.1525303063F, - 0.1553668381F, 0.1582254875F, 0.1611060909F, 0.1640084822F, - 0.1669324936F, 0.1698779549F, 0.1728446939F, 0.1758325362F, - 0.1788413055F, 0.1818708232F, 0.1849209084F, 0.1879913785F, - 0.1910820485F, 0.1941927312F, 0.1973232376F, 0.2004733764F, - 0.2036429541F, 0.2068317752F, 0.2100396421F, 0.2132663552F, - 0.2165117125F, 0.2197755102F, 0.2230575422F, 0.2263576007F, - 0.2296754753F, 0.2330109540F, 0.2363638225F, 0.2397338646F, - 0.2431208619F, 0.2465245941F, 0.2499448389F, 0.2533813719F, - 0.2568339669F, 0.2603023956F, 0.2637864277F, 0.2672858312F, - 0.2708003718F, 0.2743298135F, 0.2778739186F, 0.2814324472F, - 0.2850051576F, 0.2885918065F, 0.2921921485F, 0.2958059366F, - 0.2994329219F, 0.3030728538F, 0.3067254799F, 0.3103905462F, - 0.3140677969F, 0.3177569747F, 0.3214578205F, 0.3251700736F, - 0.3288934718F, 0.3326277513F, 0.3363726468F, 0.3401278914F, - 0.3438932168F, 0.3476683533F, 0.3514530297F, 0.3552469734F, - 0.3590499106F, 0.3628615659F, 0.3666816630F, 0.3705099239F, - 0.3743460698F, 0.3781898204F, 0.3820408945F, 0.3858990095F, - 0.3897638820F, 0.3936352274F, 0.3975127601F, 0.4013961936F, - 0.4052852405F, 0.4091796123F, 0.4130790198F, 0.4169831732F, - 0.4208917815F, 0.4248045534F, 0.4287211965F, 0.4326414181F, - 0.4365649248F, 0.4404914225F, 0.4444206167F, 0.4483522125F, - 0.4522859146F, 0.4562214270F, 0.4601584538F, 0.4640966984F, - 0.4680358644F, 0.4719756548F, 0.4759157726F, 0.4798559209F, - 0.4837958024F, 0.4877351199F, 0.4916735765F, 0.4956108751F, - 0.4995467188F, 0.5034808109F, 0.5074128550F, 0.5113425550F, - 0.5152696149F, 0.5191937395F, 0.5231146336F, 0.5270320028F, - 0.5309455530F, 0.5348549910F, 0.5387600239F, 0.5426603597F, - 0.5465557070F, 0.5504457754F, 0.5543302752F, 0.5582089175F, - 0.5620814145F, 0.5659474793F, 0.5698068262F, 0.5736591704F, - 0.5775042283F, 0.5813417176F, 0.5851713571F, 0.5889928670F, - 0.5928059689F, 0.5966103856F, 0.6004058415F, 0.6041920626F, - 0.6079687761F, 0.6117357113F, 0.6154925986F, 0.6192391705F, - 0.6229751612F, 0.6267003064F, 0.6304143441F, 0.6341170137F, - 0.6378080569F, 0.6414872173F, 0.6451542405F, 0.6488088741F, - 0.6524508681F, 0.6560799742F, 0.6596959469F, 0.6632985424F, - 0.6668875197F, 0.6704626398F, 0.6740236662F, 0.6775703649F, - 0.6811025043F, 0.6846198554F, 0.6881221916F, 0.6916092892F, - 0.6950809269F, 0.6985368861F, 0.7019769510F, 0.7054009085F, - 0.7088085484F, 0.7121996632F, 0.7155740484F, 0.7189315023F, - 0.7222718263F, 0.7255948245F, 0.7289003043F, 0.7321880760F, - 0.7354579530F, 0.7387097518F, 0.7419432921F, 0.7451583966F, - 0.7483548915F, 0.7515326059F, 0.7546913723F, 0.7578310265F, - 0.7609514077F, 0.7640523581F, 0.7671337237F, 0.7701953535F, - 0.7732371001F, 0.7762588195F, 0.7792603711F, 0.7822416178F, - 0.7852024259F, 0.7881426654F, 0.7910622097F, 0.7939609356F, - 0.7968387237F, 0.7996954579F, 0.8025310261F, 0.8053453193F, - 0.8081382324F, 0.8109096638F, 0.8136595156F, 0.8163876936F, - 0.8190941071F, 0.8217786690F, 0.8244412960F, 0.8270819086F, - 0.8297004305F, 0.8322967896F, 0.8348709171F, 0.8374227481F, - 0.8399522213F, 0.8424592789F, 0.8449438672F, 0.8474059356F, - 0.8498454378F, 0.8522623306F, 0.8546565748F, 0.8570281348F, - 0.8593769787F, 0.8617030779F, 0.8640064080F, 0.8662869477F, - 0.8685446796F, 0.8707795899F, 0.8729916682F, 0.8751809079F, - 0.8773473059F, 0.8794908626F, 0.8816115819F, 0.8837094713F, - 0.8857845418F, 0.8878368079F, 0.8898662874F, 0.8918730019F, - 0.8938569760F, 0.8958182380F, 0.8977568194F, 0.8996727552F, - 0.9015660837F, 0.9034368465F, 0.9052850885F, 0.9071108577F, - 0.9089142057F, 0.9106951869F, 0.9124538591F, 0.9141902832F, - 0.9159045233F, 0.9175966464F, 0.9192667228F, 0.9209148257F, - 0.9225410313F, 0.9241454187F, 0.9257280701F, 0.9272890704F, - 0.9288285075F, 0.9303464720F, 0.9318430576F, 0.9333183603F, - 0.9347724792F, 0.9362055158F, 0.9376175745F, 0.9390087622F, - 0.9403791881F, 0.9417289644F, 0.9430582055F, 0.9443670283F, - 0.9456555521F, 0.9469238986F, 0.9481721917F, 0.9494005577F, - 0.9506091252F, 0.9517980248F, 0.9529673894F, 0.9541173540F, - 0.9552480557F, 0.9563596334F, 0.9574522282F, 0.9585259830F, - 0.9595810428F, 0.9606175542F, 0.9616356656F, 0.9626355274F, - 0.9636172915F, 0.9645811114F, 0.9655271425F, 0.9664555414F, - 0.9673664664F, 0.9682600774F, 0.9691365355F, 0.9699960034F, - 0.9708386448F, 0.9716646250F, 0.9724741103F, 0.9732672685F, - 0.9740442683F, 0.9748052795F, 0.9755504729F, 0.9762800205F, - 0.9769940950F, 0.9776928703F, 0.9783765210F, 0.9790452223F, - 0.9796991504F, 0.9803384823F, 0.9809633954F, 0.9815740679F, - 0.9821706784F, 0.9827534063F, 0.9833224312F, 0.9838779332F, - 0.9844200928F, 0.9849490910F, 0.9854651087F, 0.9859683274F, - 0.9864589286F, 0.9869370940F, 0.9874030054F, 0.9878568447F, - 0.9882987937F, 0.9887290343F, 0.9891477481F, 0.9895551169F, - 0.9899513220F, 0.9903365446F, 0.9907109658F, 0.9910747662F, - 0.9914281260F, 0.9917712252F, 0.9921042433F, 0.9924273593F, - 0.9927407516F, 0.9930445982F, 0.9933390763F, 0.9936243626F, - 0.9939006331F, 0.9941680631F, 0.9944268269F, 0.9946770982F, - 0.9949190498F, 0.9951528537F, 0.9953786808F, 0.9955967011F, - 0.9958070836F, 0.9960099963F, 0.9962056061F, 0.9963940787F, - 0.9965755786F, 0.9967502693F, 0.9969183129F, 0.9970798704F, - 0.9972351013F, 0.9973841640F, 0.9975272151F, 0.9976644103F, - 0.9977959036F, 0.9979218476F, 0.9980423932F, 0.9981576901F, - 0.9982678862F, 0.9983731278F, 0.9984735596F, 0.9985693247F, - 0.9986605645F, 0.9987474186F, 0.9988300248F, 0.9989085193F, - 0.9989830364F, 0.9990537085F, 0.9991206662F, 0.9991840382F, - 0.9992439513F, 0.9993005303F, 0.9993538982F, 0.9994041757F, - 0.9994514817F, 0.9994959330F, 0.9995376444F, 0.9995767286F, - 0.9996132960F, 0.9996474550F, 0.9996793121F, 0.9997089710F, - 0.9997365339F, 0.9997621003F, 0.9997857677F, 0.9998076311F, - 0.9998277836F, 0.9998463156F, 0.9998633155F, 0.9998788692F, - 0.9998930603F, 0.9999059701F, 0.9999176774F, 0.9999282586F, - 0.9999377880F, 0.9999463370F, 0.9999539749F, 0.9999607685F, - 0.9999667820F, 0.9999720773F, 0.9999767136F, 0.9999807479F, - 0.9999842344F, 0.9999872249F, 0.9999897688F, 0.9999919127F, - 0.9999937009F, 0.9999951749F, 0.9999963738F, 0.9999973342F, - 0.9999980900F, 0.9999986724F, 0.9999991103F, 0.9999994297F, - 0.9999996543F, 0.9999998049F, 0.9999999000F, 0.9999999552F, - 0.9999999836F, 0.9999999957F, 0.9999999994F, 1.0000000000F, -}; - -static float vwin2048[1024] = { - 0.0000009241F, 0.0000083165F, 0.0000231014F, 0.0000452785F, - 0.0000748476F, 0.0001118085F, 0.0001561608F, 0.0002079041F, - 0.0002670379F, 0.0003335617F, 0.0004074748F, 0.0004887765F, - 0.0005774661F, 0.0006735427F, 0.0007770054F, 0.0008878533F, - 0.0010060853F, 0.0011317002F, 0.0012646969F, 0.0014050742F, - 0.0015528307F, 0.0017079650F, 0.0018704756F, 0.0020403610F, - 0.0022176196F, 0.0024022497F, 0.0025942495F, 0.0027936173F, - 0.0030003511F, 0.0032144490F, 0.0034359088F, 0.0036647286F, - 0.0039009061F, 0.0041444391F, 0.0043953253F, 0.0046535621F, - 0.0049191472F, 0.0051920781F, 0.0054723520F, 0.0057599664F, - 0.0060549184F, 0.0063572052F, 0.0066668239F, 0.0069837715F, - 0.0073080449F, 0.0076396410F, 0.0079785566F, 0.0083247884F, - 0.0086783330F, 0.0090391871F, 0.0094073470F, 0.0097828092F, - 0.0101655700F, 0.0105556258F, 0.0109529726F, 0.0113576065F, - 0.0117695237F, 0.0121887200F, 0.0126151913F, 0.0130489335F, - 0.0134899422F, 0.0139382130F, 0.0143937415F, 0.0148565233F, - 0.0153265536F, 0.0158038279F, 0.0162883413F, 0.0167800889F, - 0.0172790660F, 0.0177852675F, 0.0182986882F, 0.0188193231F, - 0.0193471668F, 0.0198822141F, 0.0204244594F, 0.0209738974F, - 0.0215305225F, 0.0220943289F, 0.0226653109F, 0.0232434627F, - 0.0238287784F, 0.0244212519F, 0.0250208772F, 0.0256276481F, - 0.0262415582F, 0.0268626014F, 0.0274907711F, 0.0281260608F, - 0.0287684638F, 0.0294179736F, 0.0300745833F, 0.0307382859F, - 0.0314090747F, 0.0320869424F, 0.0327718819F, 0.0334638860F, - 0.0341629474F, 0.0348690586F, 0.0355822122F, 0.0363024004F, - 0.0370296157F, 0.0377638502F, 0.0385050960F, 0.0392533451F, - 0.0400085896F, 0.0407708211F, 0.0415400315F, 0.0423162123F, - 0.0430993552F, 0.0438894515F, 0.0446864926F, 0.0454904698F, - 0.0463013742F, 0.0471191969F, 0.0479439288F, 0.0487755607F, - 0.0496140836F, 0.0504594879F, 0.0513117642F, 0.0521709031F, - 0.0530368949F, 0.0539097297F, 0.0547893979F, 0.0556758894F, - 0.0565691941F, 0.0574693019F, 0.0583762026F, 0.0592898858F, - 0.0602103410F, 0.0611375576F, 0.0620715250F, 0.0630122324F, - 0.0639596688F, 0.0649138234F, 0.0658746848F, 0.0668422421F, - 0.0678164838F, 0.0687973985F, 0.0697849746F, 0.0707792005F, - 0.0717800645F, 0.0727875547F, 0.0738016591F, 0.0748223656F, - 0.0758496620F, 0.0768835359F, 0.0779239751F, 0.0789709668F, - 0.0800244985F, 0.0810845574F, 0.0821511306F, 0.0832242052F, - 0.0843037679F, 0.0853898056F, 0.0864823050F, 0.0875812525F, - 0.0886866347F, 0.0897984378F, 0.0909166480F, 0.0920412513F, - 0.0931722338F, 0.0943095813F, 0.0954532795F, 0.0966033140F, - 0.0977596702F, 0.0989223336F, 0.1000912894F, 0.1012665227F, - 0.1024480185F, 0.1036357616F, 0.1048297369F, 0.1060299290F, - 0.1072363224F, 0.1084489014F, 0.1096676504F, 0.1108925534F, - 0.1121235946F, 0.1133607577F, 0.1146040267F, 0.1158533850F, - 0.1171088163F, 0.1183703040F, 0.1196378312F, 0.1209113812F, - 0.1221909370F, 0.1234764815F, 0.1247679974F, 0.1260654674F, - 0.1273688740F, 0.1286781995F, 0.1299934263F, 0.1313145365F, - 0.1326415121F, 0.1339743349F, 0.1353129866F, 0.1366574490F, - 0.1380077035F, 0.1393637315F, 0.1407255141F, 0.1420930325F, - 0.1434662677F, 0.1448452004F, 0.1462298115F, 0.1476200814F, - 0.1490159906F, 0.1504175195F, 0.1518246482F, 0.1532373569F, - 0.1546556253F, 0.1560794333F, 0.1575087606F, 0.1589435866F, - 0.1603838909F, 0.1618296526F, 0.1632808509F, 0.1647374648F, - 0.1661994731F, 0.1676668546F, 0.1691395880F, 0.1706176516F, - 0.1721010238F, 0.1735896829F, 0.1750836068F, 0.1765827736F, - 0.1780871610F, 0.1795967468F, 0.1811115084F, 0.1826314234F, - 0.1841564689F, 0.1856866221F, 0.1872218600F, 0.1887621595F, - 0.1903074974F, 0.1918578503F, 0.1934131947F, 0.1949735068F, - 0.1965387630F, 0.1981089393F, 0.1996840117F, 0.2012639560F, - 0.2028487479F, 0.2044383630F, 0.2060327766F, 0.2076319642F, - 0.2092359007F, 0.2108445614F, 0.2124579211F, 0.2140759545F, - 0.2156986364F, 0.2173259411F, 0.2189578432F, 0.2205943168F, - 0.2222353361F, 0.2238808751F, 0.2255309076F, 0.2271854073F, - 0.2288443480F, 0.2305077030F, 0.2321754457F, 0.2338475493F, - 0.2355239869F, 0.2372047315F, 0.2388897560F, 0.2405790329F, - 0.2422725350F, 0.2439702347F, 0.2456721043F, 0.2473781159F, - 0.2490882418F, 0.2508024539F, 0.2525207240F, 0.2542430237F, - 0.2559693248F, 0.2576995986F, 0.2594338166F, 0.2611719498F, - 0.2629139695F, 0.2646598466F, 0.2664095520F, 0.2681630564F, - 0.2699203304F, 0.2716813445F, 0.2734460691F, 0.2752144744F, - 0.2769865307F, 0.2787622079F, 0.2805414760F, 0.2823243047F, - 0.2841106637F, 0.2859005227F, 0.2876938509F, 0.2894906179F, - 0.2912907928F, 0.2930943447F, 0.2949012426F, 0.2967114554F, - 0.2985249520F, 0.3003417009F, 0.3021616708F, 0.3039848301F, - 0.3058111471F, 0.3076405901F, 0.3094731273F, 0.3113087266F, - 0.3131473560F, 0.3149889833F, 0.3168335762F, 0.3186811024F, - 0.3205315294F, 0.3223848245F, 0.3242409552F, 0.3260998886F, - 0.3279615918F, 0.3298260319F, 0.3316931758F, 0.3335629903F, - 0.3354354423F, 0.3373104982F, 0.3391881247F, 0.3410682882F, - 0.3429509551F, 0.3448360917F, 0.3467236642F, 0.3486136387F, - 0.3505059811F, 0.3524006575F, 0.3542976336F, 0.3561968753F, - 0.3580983482F, 0.3600020179F, 0.3619078499F, 0.3638158096F, - 0.3657258625F, 0.3676379737F, 0.3695521086F, 0.3714682321F, - 0.3733863094F, 0.3753063055F, 0.3772281852F, 0.3791519134F, - 0.3810774548F, 0.3830047742F, 0.3849338362F, 0.3868646053F, - 0.3887970459F, 0.3907311227F, 0.3926667998F, 0.3946040417F, - 0.3965428125F, 0.3984830765F, 0.4004247978F, 0.4023679403F, - 0.4043124683F, 0.4062583455F, 0.4082055359F, 0.4101540034F, - 0.4121037117F, 0.4140546246F, 0.4160067058F, 0.4179599190F, - 0.4199142277F, 0.4218695956F, 0.4238259861F, 0.4257833627F, - 0.4277416888F, 0.4297009279F, 0.4316610433F, 0.4336219983F, - 0.4355837562F, 0.4375462803F, 0.4395095337F, 0.4414734797F, - 0.4434380815F, 0.4454033021F, 0.4473691046F, 0.4493354521F, - 0.4513023078F, 0.4532696345F, 0.4552373954F, 0.4572055533F, - 0.4591740713F, 0.4611429123F, 0.4631120393F, 0.4650814151F, - 0.4670510028F, 0.4690207650F, 0.4709906649F, 0.4729606651F, - 0.4749307287F, 0.4769008185F, 0.4788708972F, 0.4808409279F, - 0.4828108732F, 0.4847806962F, 0.4867503597F, 0.4887198264F, - 0.4906890593F, 0.4926580213F, 0.4946266753F, 0.4965949840F, - 0.4985629105F, 0.5005304176F, 0.5024974683F, 0.5044640255F, - 0.5064300522F, 0.5083955114F, 0.5103603659F, 0.5123245790F, - 0.5142881136F, 0.5162509328F, 0.5182129997F, 0.5201742774F, - 0.5221347290F, 0.5240943178F, 0.5260530070F, 0.5280107598F, - 0.5299675395F, 0.5319233095F, 0.5338780330F, 0.5358316736F, - 0.5377841946F, 0.5397355596F, 0.5416857320F, 0.5436346755F, - 0.5455823538F, 0.5475287304F, 0.5494737691F, 0.5514174337F, - 0.5533596881F, 0.5553004962F, 0.5572398218F, 0.5591776291F, - 0.5611138821F, 0.5630485449F, 0.5649815818F, 0.5669129570F, - 0.5688426349F, 0.5707705799F, 0.5726967564F, 0.5746211290F, - 0.5765436624F, 0.5784643212F, 0.5803830702F, 0.5822998743F, - 0.5842146984F, 0.5861275076F, 0.5880382669F, 0.5899469416F, - 0.5918534968F, 0.5937578981F, 0.5956601107F, 0.5975601004F, - 0.5994578326F, 0.6013532732F, 0.6032463880F, 0.6051371429F, - 0.6070255039F, 0.6089114372F, 0.6107949090F, 0.6126758856F, - 0.6145543334F, 0.6164302191F, 0.6183035092F, 0.6201741706F, - 0.6220421700F, 0.6239074745F, 0.6257700513F, 0.6276298674F, - 0.6294868903F, 0.6313410873F, 0.6331924262F, 0.6350408745F, - 0.6368864001F, 0.6387289710F, 0.6405685552F, 0.6424051209F, - 0.6442386364F, 0.6460690702F, 0.6478963910F, 0.6497205673F, - 0.6515415682F, 0.6533593625F, 0.6551739194F, 0.6569852082F, - 0.6587931984F, 0.6605978593F, 0.6623991609F, 0.6641970728F, - 0.6659915652F, 0.6677826081F, 0.6695701718F, 0.6713542268F, - 0.6731347437F, 0.6749116932F, 0.6766850461F, 0.6784547736F, - 0.6802208469F, 0.6819832374F, 0.6837419164F, 0.6854968559F, - 0.6872480275F, 0.6889954034F, 0.6907389556F, 0.6924786566F, - 0.6942144788F, 0.6959463950F, 0.6976743780F, 0.6993984008F, - 0.7011184365F, 0.7028344587F, 0.7045464407F, 0.7062543564F, - 0.7079581796F, 0.7096578844F, 0.7113534450F, 0.7130448359F, - 0.7147320316F, 0.7164150070F, 0.7180937371F, 0.7197681970F, - 0.7214383620F, 0.7231042077F, 0.7247657098F, 0.7264228443F, - 0.7280755871F, 0.7297239147F, 0.7313678035F, 0.7330072301F, - 0.7346421715F, 0.7362726046F, 0.7378985069F, 0.7395198556F, - 0.7411366285F, 0.7427488034F, 0.7443563584F, 0.7459592717F, - 0.7475575218F, 0.7491510873F, 0.7507399471F, 0.7523240803F, - 0.7539034661F, 0.7554780839F, 0.7570479136F, 0.7586129349F, - 0.7601731279F, 0.7617284730F, 0.7632789506F, 0.7648245416F, - 0.7663652267F, 0.7679009872F, 0.7694318044F, 0.7709576599F, - 0.7724785354F, 0.7739944130F, 0.7755052749F, 0.7770111035F, - 0.7785118815F, 0.7800075916F, 0.7814982170F, 0.7829837410F, - 0.7844641472F, 0.7859394191F, 0.7874095408F, 0.7888744965F, - 0.7903342706F, 0.7917888476F, 0.7932382124F, 0.7946823501F, - 0.7961212460F, 0.7975548855F, 0.7989832544F, 0.8004063386F, - 0.8018241244F, 0.8032365981F, 0.8046437463F, 0.8060455560F, - 0.8074420141F, 0.8088331080F, 0.8102188253F, 0.8115991536F, - 0.8129740810F, 0.8143435957F, 0.8157076861F, 0.8170663409F, - 0.8184195489F, 0.8197672994F, 0.8211095817F, 0.8224463853F, - 0.8237777001F, 0.8251035161F, 0.8264238235F, 0.8277386129F, - 0.8290478750F, 0.8303516008F, 0.8316497814F, 0.8329424083F, - 0.8342294731F, 0.8355109677F, 0.8367868841F, 0.8380572148F, - 0.8393219523F, 0.8405810893F, 0.8418346190F, 0.8430825345F, - 0.8443248294F, 0.8455614974F, 0.8467925323F, 0.8480179285F, - 0.8492376802F, 0.8504517822F, 0.8516602292F, 0.8528630164F, - 0.8540601391F, 0.8552515928F, 0.8564373733F, 0.8576174766F, - 0.8587918990F, 0.8599606368F, 0.8611236868F, 0.8622810460F, - 0.8634327113F, 0.8645786802F, 0.8657189504F, 0.8668535195F, - 0.8679823857F, 0.8691055472F, 0.8702230025F, 0.8713347503F, - 0.8724407896F, 0.8735411194F, 0.8746357394F, 0.8757246489F, - 0.8768078479F, 0.8778853364F, 0.8789571146F, 0.8800231832F, - 0.8810835427F, 0.8821381942F, 0.8831871387F, 0.8842303777F, - 0.8852679127F, 0.8862997456F, 0.8873258784F, 0.8883463132F, - 0.8893610527F, 0.8903700994F, 0.8913734562F, 0.8923711263F, - 0.8933631129F, 0.8943494196F, 0.8953300500F, 0.8963050083F, - 0.8972742985F, 0.8982379249F, 0.8991958922F, 0.9001482052F, - 0.9010948688F, 0.9020358883F, 0.9029712690F, 0.9039010165F, - 0.9048251367F, 0.9057436357F, 0.9066565195F, 0.9075637946F, - 0.9084654678F, 0.9093615456F, 0.9102520353F, 0.9111369440F, - 0.9120162792F, 0.9128900484F, 0.9137582595F, 0.9146209204F, - 0.9154780394F, 0.9163296248F, 0.9171756853F, 0.9180162296F, - 0.9188512667F, 0.9196808057F, 0.9205048559F, 0.9213234270F, - 0.9221365285F, 0.9229441704F, 0.9237463629F, 0.9245431160F, - 0.9253344404F, 0.9261203465F, 0.9269008453F, 0.9276759477F, - 0.9284456648F, 0.9292100080F, 0.9299689889F, 0.9307226190F, - 0.9314709103F, 0.9322138747F, 0.9329515245F, 0.9336838721F, - 0.9344109300F, 0.9351327108F, 0.9358492275F, 0.9365604931F, - 0.9372665208F, 0.9379673239F, 0.9386629160F, 0.9393533107F, - 0.9400385220F, 0.9407185637F, 0.9413934501F, 0.9420631954F, - 0.9427278141F, 0.9433873208F, 0.9440417304F, 0.9446910576F, - 0.9453353176F, 0.9459745255F, 0.9466086968F, 0.9472378469F, - 0.9478619915F, 0.9484811463F, 0.9490953274F, 0.9497045506F, - 0.9503088323F, 0.9509081888F, 0.9515026365F, 0.9520921921F, - 0.9526768723F, 0.9532566940F, 0.9538316742F, 0.9544018300F, - 0.9549671786F, 0.9555277375F, 0.9560835241F, 0.9566345562F, - 0.9571808513F, 0.9577224275F, 0.9582593027F, 0.9587914949F, - 0.9593190225F, 0.9598419038F, 0.9603601571F, 0.9608738012F, - 0.9613828546F, 0.9618873361F, 0.9623872646F, 0.9628826591F, - 0.9633735388F, 0.9638599227F, 0.9643418303F, 0.9648192808F, - 0.9652922939F, 0.9657608890F, 0.9662250860F, 0.9666849046F, - 0.9671403646F, 0.9675914861F, 0.9680382891F, 0.9684807937F, - 0.9689190202F, 0.9693529890F, 0.9697827203F, 0.9702082347F, - 0.9706295529F, 0.9710466953F, 0.9714596828F, 0.9718685362F, - 0.9722732762F, 0.9726739240F, 0.9730705005F, 0.9734630267F, - 0.9738515239F, 0.9742360134F, 0.9746165163F, 0.9749930540F, - 0.9753656481F, 0.9757343198F, 0.9760990909F, 0.9764599829F, - 0.9768170175F, 0.9771702164F, 0.9775196013F, 0.9778651941F, - 0.9782070167F, 0.9785450909F, 0.9788794388F, 0.9792100824F, - 0.9795370437F, 0.9798603449F, 0.9801800080F, 0.9804960554F, - 0.9808085092F, 0.9811173916F, 0.9814227251F, 0.9817245318F, - 0.9820228343F, 0.9823176549F, 0.9826090160F, 0.9828969402F, - 0.9831814498F, 0.9834625674F, 0.9837403156F, 0.9840147169F, - 0.9842857939F, 0.9845535692F, 0.9848180654F, 0.9850793052F, - 0.9853373113F, 0.9855921062F, 0.9858437127F, 0.9860921535F, - 0.9863374512F, 0.9865796287F, 0.9868187085F, 0.9870547136F, - 0.9872876664F, 0.9875175899F, 0.9877445067F, 0.9879684396F, - 0.9881894112F, 0.9884074444F, 0.9886225619F, 0.9888347863F, - 0.9890441404F, 0.9892506468F, 0.9894543284F, 0.9896552077F, - 0.9898533074F, 0.9900486502F, 0.9902412587F, 0.9904311555F, - 0.9906183633F, 0.9908029045F, 0.9909848019F, 0.9911640779F, - 0.9913407550F, 0.9915148557F, 0.9916864025F, 0.9918554179F, - 0.9920219241F, 0.9921859437F, 0.9923474989F, 0.9925066120F, - 0.9926633054F, 0.9928176012F, 0.9929695218F, 0.9931190891F, - 0.9932663254F, 0.9934112527F, 0.9935538932F, 0.9936942686F, - 0.9938324012F, 0.9939683126F, 0.9941020248F, 0.9942335597F, - 0.9943629388F, 0.9944901841F, 0.9946153170F, 0.9947383593F, - 0.9948593325F, 0.9949782579F, 0.9950951572F, 0.9952100516F, - 0.9953229625F, 0.9954339111F, 0.9955429186F, 0.9956500062F, - 0.9957551948F, 0.9958585056F, 0.9959599593F, 0.9960595769F, - 0.9961573792F, 0.9962533869F, 0.9963476206F, 0.9964401009F, - 0.9965308483F, 0.9966198833F, 0.9967072261F, 0.9967928971F, - 0.9968769164F, 0.9969593041F, 0.9970400804F, 0.9971192651F, - 0.9971968781F, 0.9972729391F, 0.9973474680F, 0.9974204842F, - 0.9974920074F, 0.9975620569F, 0.9976306521F, 0.9976978122F, - 0.9977635565F, 0.9978279039F, 0.9978908736F, 0.9979524842F, - 0.9980127547F, 0.9980717037F, 0.9981293499F, 0.9981857116F, - 0.9982408073F, 0.9982946554F, 0.9983472739F, 0.9983986810F, - 0.9984488947F, 0.9984979328F, 0.9985458132F, 0.9985925534F, - 0.9986381711F, 0.9986826838F, 0.9987261086F, 0.9987684630F, - 0.9988097640F, 0.9988500286F, 0.9988892738F, 0.9989275163F, - 0.9989647727F, 0.9990010597F, 0.9990363938F, 0.9990707911F, - 0.9991042679F, 0.9991368404F, 0.9991685244F, 0.9991993358F, - 0.9992292905F, 0.9992584038F, 0.9992866914F, 0.9993141686F, - 0.9993408506F, 0.9993667526F, 0.9993918895F, 0.9994162761F, - 0.9994399273F, 0.9994628576F, 0.9994850815F, 0.9995066133F, - 0.9995274672F, 0.9995476574F, 0.9995671978F, 0.9995861021F, - 0.9996043841F, 0.9996220573F, 0.9996391352F, 0.9996556310F, - 0.9996715579F, 0.9996869288F, 0.9997017568F, 0.9997160543F, - 0.9997298342F, 0.9997431088F, 0.9997558905F, 0.9997681914F, - 0.9997800236F, 0.9997913990F, 0.9998023292F, 0.9998128261F, - 0.9998229009F, 0.9998325650F, 0.9998418296F, 0.9998507058F, - 0.9998592044F, 0.9998673362F, 0.9998751117F, 0.9998825415F, - 0.9998896358F, 0.9998964047F, 0.9999028584F, 0.9999090066F, - 0.9999148590F, 0.9999204253F, 0.9999257148F, 0.9999307368F, - 0.9999355003F, 0.9999400144F, 0.9999442878F, 0.9999483293F, - 0.9999521472F, 0.9999557499F, 0.9999591457F, 0.9999623426F, - 0.9999653483F, 0.9999681708F, 0.9999708175F, 0.9999732959F, - 0.9999756132F, 0.9999777765F, 0.9999797928F, 0.9999816688F, - 0.9999834113F, 0.9999850266F, 0.9999865211F, 0.9999879009F, - 0.9999891721F, 0.9999903405F, 0.9999914118F, 0.9999923914F, - 0.9999932849F, 0.9999940972F, 0.9999948336F, 0.9999954989F, - 0.9999960978F, 0.9999966349F, 0.9999971146F, 0.9999975411F, - 0.9999979185F, 0.9999982507F, 0.9999985414F, 0.9999987944F, - 0.9999990129F, 0.9999992003F, 0.9999993596F, 0.9999994939F, - 0.9999996059F, 0.9999996981F, 0.9999997732F, 0.9999998333F, - 0.9999998805F, 0.9999999170F, 0.9999999444F, 0.9999999643F, - 0.9999999784F, 0.9999999878F, 0.9999999937F, 0.9999999972F, - 0.9999999990F, 0.9999999997F, 1.0000000000F, 1.0000000000F, -}; - -static float vwin4096[2048] = { - 0.0000002310F, 0.0000020791F, 0.0000057754F, 0.0000113197F, - 0.0000187121F, 0.0000279526F, 0.0000390412F, 0.0000519777F, - 0.0000667623F, 0.0000833949F, 0.0001018753F, 0.0001222036F, - 0.0001443798F, 0.0001684037F, 0.0001942754F, 0.0002219947F, - 0.0002515616F, 0.0002829761F, 0.0003162380F, 0.0003513472F, - 0.0003883038F, 0.0004271076F, 0.0004677584F, 0.0005102563F, - 0.0005546011F, 0.0006007928F, 0.0006488311F, 0.0006987160F, - 0.0007504474F, 0.0008040251F, 0.0008594490F, 0.0009167191F, - 0.0009758351F, 0.0010367969F, 0.0010996044F, 0.0011642574F, - 0.0012307558F, 0.0012990994F, 0.0013692880F, 0.0014413216F, - 0.0015151998F, 0.0015909226F, 0.0016684898F, 0.0017479011F, - 0.0018291565F, 0.0019122556F, 0.0019971983F, 0.0020839845F, - 0.0021726138F, 0.0022630861F, 0.0023554012F, 0.0024495588F, - 0.0025455588F, 0.0026434008F, 0.0027430847F, 0.0028446103F, - 0.0029479772F, 0.0030531853F, 0.0031602342F, 0.0032691238F, - 0.0033798538F, 0.0034924239F, 0.0036068338F, 0.0037230833F, - 0.0038411721F, 0.0039610999F, 0.0040828664F, 0.0042064714F, - 0.0043319145F, 0.0044591954F, 0.0045883139F, 0.0047192696F, - 0.0048520622F, 0.0049866914F, 0.0051231569F, 0.0052614583F, - 0.0054015953F, 0.0055435676F, 0.0056873748F, 0.0058330166F, - 0.0059804926F, 0.0061298026F, 0.0062809460F, 0.0064339226F, - 0.0065887320F, 0.0067453738F, 0.0069038476F, 0.0070641531F, - 0.0072262899F, 0.0073902575F, 0.0075560556F, 0.0077236838F, - 0.0078931417F, 0.0080644288F, 0.0082375447F, 0.0084124891F, - 0.0085892615F, 0.0087678614F, 0.0089482885F, 0.0091305422F, - 0.0093146223F, 0.0095005281F, 0.0096882592F, 0.0098778153F, - 0.0100691958F, 0.0102624002F, 0.0104574281F, 0.0106542791F, - 0.0108529525F, 0.0110534480F, 0.0112557651F, 0.0114599032F, - 0.0116658618F, 0.0118736405F, 0.0120832387F, 0.0122946560F, - 0.0125078917F, 0.0127229454F, 0.0129398166F, 0.0131585046F, - 0.0133790090F, 0.0136013292F, 0.0138254647F, 0.0140514149F, - 0.0142791792F, 0.0145087572F, 0.0147401481F, 0.0149733515F, - 0.0152083667F, 0.0154451932F, 0.0156838304F, 0.0159242777F, - 0.0161665345F, 0.0164106001F, 0.0166564741F, 0.0169041557F, - 0.0171536443F, 0.0174049393F, 0.0176580401F, 0.0179129461F, - 0.0181696565F, 0.0184281708F, 0.0186884883F, 0.0189506084F, - 0.0192145303F, 0.0194802535F, 0.0197477772F, 0.0200171008F, - 0.0202882236F, 0.0205611449F, 0.0208358639F, 0.0211123801F, - 0.0213906927F, 0.0216708011F, 0.0219527043F, 0.0222364019F, - 0.0225218930F, 0.0228091769F, 0.0230982529F, 0.0233891203F, - 0.0236817782F, 0.0239762259F, 0.0242724628F, 0.0245704880F, - 0.0248703007F, 0.0251719002F, 0.0254752858F, 0.0257804565F, - 0.0260874117F, 0.0263961506F, 0.0267066722F, 0.0270189760F, - 0.0273330609F, 0.0276489263F, 0.0279665712F, 0.0282859949F, - 0.0286071966F, 0.0289301753F, 0.0292549303F, 0.0295814607F, - 0.0299097656F, 0.0302398442F, 0.0305716957F, 0.0309053191F, - 0.0312407135F, 0.0315778782F, 0.0319168122F, 0.0322575145F, - 0.0325999844F, 0.0329442209F, 0.0332902231F, 0.0336379900F, - 0.0339875208F, 0.0343388146F, 0.0346918703F, 0.0350466871F, - 0.0354032640F, 0.0357616000F, 0.0361216943F, 0.0364835458F, - 0.0368471535F, 0.0372125166F, 0.0375796339F, 0.0379485046F, - 0.0383191276F, 0.0386915020F, 0.0390656267F, 0.0394415008F, - 0.0398191231F, 0.0401984927F, 0.0405796086F, 0.0409624698F, - 0.0413470751F, 0.0417334235F, 0.0421215141F, 0.0425113457F, - 0.0429029172F, 0.0432962277F, 0.0436912760F, 0.0440880610F, - 0.0444865817F, 0.0448868370F, 0.0452888257F, 0.0456925468F, - 0.0460979992F, 0.0465051816F, 0.0469140931F, 0.0473247325F, - 0.0477370986F, 0.0481511902F, 0.0485670064F, 0.0489845458F, - 0.0494038074F, 0.0498247899F, 0.0502474922F, 0.0506719131F, - 0.0510980514F, 0.0515259060F, 0.0519554756F, 0.0523867590F, - 0.0528197550F, 0.0532544624F, 0.0536908800F, 0.0541290066F, - 0.0545688408F, 0.0550103815F, 0.0554536274F, 0.0558985772F, - 0.0563452297F, 0.0567935837F, 0.0572436377F, 0.0576953907F, - 0.0581488412F, 0.0586039880F, 0.0590608297F, 0.0595193651F, - 0.0599795929F, 0.0604415117F, 0.0609051202F, 0.0613704170F, - 0.0618374009F, 0.0623060704F, 0.0627764243F, 0.0632484611F, - 0.0637221795F, 0.0641975781F, 0.0646746555F, 0.0651534104F, - 0.0656338413F, 0.0661159469F, 0.0665997257F, 0.0670851763F, - 0.0675722973F, 0.0680610873F, 0.0685515448F, 0.0690436684F, - 0.0695374567F, 0.0700329081F, 0.0705300213F, 0.0710287947F, - 0.0715292269F, 0.0720313163F, 0.0725350616F, 0.0730404612F, - 0.0735475136F, 0.0740562172F, 0.0745665707F, 0.0750785723F, - 0.0755922207F, 0.0761075143F, 0.0766244515F, 0.0771430307F, - 0.0776632505F, 0.0781851092F, 0.0787086052F, 0.0792337371F, - 0.0797605032F, 0.0802889018F, 0.0808189315F, 0.0813505905F, - 0.0818838773F, 0.0824187903F, 0.0829553277F, 0.0834934881F, - 0.0840332697F, 0.0845746708F, 0.0851176899F, 0.0856623252F, - 0.0862085751F, 0.0867564379F, 0.0873059119F, 0.0878569954F, - 0.0884096867F, 0.0889639840F, 0.0895198858F, 0.0900773902F, - 0.0906364955F, 0.0911972000F, 0.0917595019F, 0.0923233995F, - 0.0928888909F, 0.0934559745F, 0.0940246485F, 0.0945949110F, - 0.0951667604F, 0.0957401946F, 0.0963152121F, 0.0968918109F, - 0.0974699893F, 0.0980497454F, 0.0986310773F, 0.0992139832F, - 0.0997984614F, 0.1003845098F, 0.1009721267F, 0.1015613101F, - 0.1021520582F, 0.1027443692F, 0.1033382410F, 0.1039336718F, - 0.1045306597F, 0.1051292027F, 0.1057292990F, 0.1063309466F, - 0.1069341435F, 0.1075388878F, 0.1081451776F, 0.1087530108F, - 0.1093623856F, 0.1099732998F, 0.1105857516F, 0.1111997389F, - 0.1118152597F, 0.1124323121F, 0.1130508939F, 0.1136710032F, - 0.1142926379F, 0.1149157960F, 0.1155404755F, 0.1161666742F, - 0.1167943901F, 0.1174236211F, 0.1180543652F, 0.1186866202F, - 0.1193203841F, 0.1199556548F, 0.1205924300F, 0.1212307078F, - 0.1218704860F, 0.1225117624F, 0.1231545349F, 0.1237988013F, - 0.1244445596F, 0.1250918074F, 0.1257405427F, 0.1263907632F, - 0.1270424667F, 0.1276956512F, 0.1283503142F, 0.1290064537F, - 0.1296640674F, 0.1303231530F, 0.1309837084F, 0.1316457312F, - 0.1323092193F, 0.1329741703F, 0.1336405820F, 0.1343084520F, - 0.1349777782F, 0.1356485582F, 0.1363207897F, 0.1369944704F, - 0.1376695979F, 0.1383461700F, 0.1390241842F, 0.1397036384F, - 0.1403845300F, 0.1410668567F, 0.1417506162F, 0.1424358061F, - 0.1431224240F, 0.1438104674F, 0.1444999341F, 0.1451908216F, - 0.1458831274F, 0.1465768492F, 0.1472719844F, 0.1479685308F, - 0.1486664857F, 0.1493658468F, 0.1500666115F, 0.1507687775F, - 0.1514723422F, 0.1521773031F, 0.1528836577F, 0.1535914035F, - 0.1543005380F, 0.1550110587F, 0.1557229631F, 0.1564362485F, - 0.1571509124F, 0.1578669524F, 0.1585843657F, 0.1593031499F, - 0.1600233024F, 0.1607448205F, 0.1614677017F, 0.1621919433F, - 0.1629175428F, 0.1636444975F, 0.1643728047F, 0.1651024619F, - 0.1658334665F, 0.1665658156F, 0.1672995067F, 0.1680345371F, - 0.1687709041F, 0.1695086050F, 0.1702476372F, 0.1709879978F, - 0.1717296843F, 0.1724726938F, 0.1732170237F, 0.1739626711F, - 0.1747096335F, 0.1754579079F, 0.1762074916F, 0.1769583819F, - 0.1777105760F, 0.1784640710F, 0.1792188642F, 0.1799749529F, - 0.1807323340F, 0.1814910049F, 0.1822509628F, 0.1830122046F, - 0.1837747277F, 0.1845385292F, 0.1853036062F, 0.1860699558F, - 0.1868375751F, 0.1876064613F, 0.1883766114F, 0.1891480226F, - 0.1899206919F, 0.1906946164F, 0.1914697932F, 0.1922462194F, - 0.1930238919F, 0.1938028079F, 0.1945829643F, 0.1953643583F, - 0.1961469868F, 0.1969308468F, 0.1977159353F, 0.1985022494F, - 0.1992897859F, 0.2000785420F, 0.2008685145F, 0.2016597005F, - 0.2024520968F, 0.2032457005F, 0.2040405084F, 0.2048365175F, - 0.2056337247F, 0.2064321269F, 0.2072317211F, 0.2080325041F, - 0.2088344727F, 0.2096376240F, 0.2104419547F, 0.2112474618F, - 0.2120541420F, 0.2128619923F, 0.2136710094F, 0.2144811902F, - 0.2152925315F, 0.2161050301F, 0.2169186829F, 0.2177334866F, - 0.2185494381F, 0.2193665340F, 0.2201847712F, 0.2210041465F, - 0.2218246565F, 0.2226462981F, 0.2234690680F, 0.2242929629F, - 0.2251179796F, 0.2259441147F, 0.2267713650F, 0.2275997272F, - 0.2284291979F, 0.2292597739F, 0.2300914518F, 0.2309242283F, - 0.2317581001F, 0.2325930638F, 0.2334291160F, 0.2342662534F, - 0.2351044727F, 0.2359437703F, 0.2367841431F, 0.2376255875F, - 0.2384681001F, 0.2393116776F, 0.2401563165F, 0.2410020134F, - 0.2418487649F, 0.2426965675F, 0.2435454178F, 0.2443953122F, - 0.2452462474F, 0.2460982199F, 0.2469512262F, 0.2478052628F, - 0.2486603262F, 0.2495164129F, 0.2503735194F, 0.2512316421F, - 0.2520907776F, 0.2529509222F, 0.2538120726F, 0.2546742250F, - 0.2555373760F, 0.2564015219F, 0.2572666593F, 0.2581327845F, - 0.2589998939F, 0.2598679840F, 0.2607370510F, 0.2616070916F, - 0.2624781019F, 0.2633500783F, 0.2642230173F, 0.2650969152F, - 0.2659717684F, 0.2668475731F, 0.2677243257F, 0.2686020226F, - 0.2694806601F, 0.2703602344F, 0.2712407419F, 0.2721221789F, - 0.2730045417F, 0.2738878265F, 0.2747720297F, 0.2756571474F, - 0.2765431760F, 0.2774301117F, 0.2783179508F, 0.2792066895F, - 0.2800963240F, 0.2809868505F, 0.2818782654F, 0.2827705647F, - 0.2836637447F, 0.2845578016F, 0.2854527315F, 0.2863485307F, - 0.2872451953F, 0.2881427215F, 0.2890411055F, 0.2899403433F, - 0.2908404312F, 0.2917413654F, 0.2926431418F, 0.2935457567F, - 0.2944492061F, 0.2953534863F, 0.2962585932F, 0.2971645230F, - 0.2980712717F, 0.2989788356F, 0.2998872105F, 0.3007963927F, - 0.3017063781F, 0.3026171629F, 0.3035287430F, 0.3044411145F, - 0.3053542736F, 0.3062682161F, 0.3071829381F, 0.3080984356F, - 0.3090147047F, 0.3099317413F, 0.3108495414F, 0.3117681011F, - 0.3126874163F, 0.3136074830F, 0.3145282972F, 0.3154498548F, - 0.3163721517F, 0.3172951841F, 0.3182189477F, 0.3191434385F, - 0.3200686525F, 0.3209945856F, 0.3219212336F, 0.3228485927F, - 0.3237766585F, 0.3247054271F, 0.3256348943F, 0.3265650560F, - 0.3274959081F, 0.3284274465F, 0.3293596671F, 0.3302925657F, - 0.3312261382F, 0.3321603804F, 0.3330952882F, 0.3340308574F, - 0.3349670838F, 0.3359039634F, 0.3368414919F, 0.3377796651F, - 0.3387184789F, 0.3396579290F, 0.3405980113F, 0.3415387216F, - 0.3424800556F, 0.3434220091F, 0.3443645779F, 0.3453077578F, - 0.3462515446F, 0.3471959340F, 0.3481409217F, 0.3490865036F, - 0.3500326754F, 0.3509794328F, 0.3519267715F, 0.3528746873F, - 0.3538231759F, 0.3547722330F, 0.3557218544F, 0.3566720357F, - 0.3576227727F, 0.3585740610F, 0.3595258964F, 0.3604782745F, - 0.3614311910F, 0.3623846417F, 0.3633386221F, 0.3642931280F, - 0.3652481549F, 0.3662036987F, 0.3671597548F, 0.3681163191F, - 0.3690733870F, 0.3700309544F, 0.3709890167F, 0.3719475696F, - 0.3729066089F, 0.3738661299F, 0.3748261285F, 0.3757866002F, - 0.3767475406F, 0.3777089453F, 0.3786708100F, 0.3796331302F, - 0.3805959014F, 0.3815591194F, 0.3825227796F, 0.3834868777F, - 0.3844514093F, 0.3854163698F, 0.3863817549F, 0.3873475601F, - 0.3883137810F, 0.3892804131F, 0.3902474521F, 0.3912148933F, - 0.3921827325F, 0.3931509650F, 0.3941195865F, 0.3950885925F, - 0.3960579785F, 0.3970277400F, 0.3979978725F, 0.3989683716F, - 0.3999392328F, 0.4009104516F, 0.4018820234F, 0.4028539438F, - 0.4038262084F, 0.4047988125F, 0.4057717516F, 0.4067450214F, - 0.4077186172F, 0.4086925345F, 0.4096667688F, 0.4106413155F, - 0.4116161703F, 0.4125913284F, 0.4135667854F, 0.4145425368F, - 0.4155185780F, 0.4164949044F, 0.4174715116F, 0.4184483949F, - 0.4194255498F, 0.4204029718F, 0.4213806563F, 0.4223585987F, - 0.4233367946F, 0.4243152392F, 0.4252939281F, 0.4262728566F, - 0.4272520202F, 0.4282314144F, 0.4292110345F, 0.4301908760F, - 0.4311709343F, 0.4321512047F, 0.4331316828F, 0.4341123639F, - 0.4350932435F, 0.4360743168F, 0.4370555794F, 0.4380370267F, - 0.4390186540F, 0.4400004567F, 0.4409824303F, 0.4419645701F, - 0.4429468716F, 0.4439293300F, 0.4449119409F, 0.4458946996F, - 0.4468776014F, 0.4478606418F, 0.4488438162F, 0.4498271199F, - 0.4508105483F, 0.4517940967F, 0.4527777607F, 0.4537615355F, - 0.4547454165F, 0.4557293991F, 0.4567134786F, 0.4576976505F, - 0.4586819101F, 0.4596662527F, 0.4606506738F, 0.4616351687F, - 0.4626197328F, 0.4636043614F, 0.4645890499F, 0.4655737936F, - 0.4665585880F, 0.4675434284F, 0.4685283101F, 0.4695132286F, - 0.4704981791F, 0.4714831570F, 0.4724681577F, 0.4734531766F, - 0.4744382089F, 0.4754232501F, 0.4764082956F, 0.4773933406F, - 0.4783783806F, 0.4793634108F, 0.4803484267F, 0.4813334237F, - 0.4823183969F, 0.4833033419F, 0.4842882540F, 0.4852731285F, - 0.4862579608F, 0.4872427462F, 0.4882274802F, 0.4892121580F, - 0.4901967751F, 0.4911813267F, 0.4921658083F, 0.4931502151F, - 0.4941345427F, 0.4951187863F, 0.4961029412F, 0.4970870029F, - 0.4980709667F, 0.4990548280F, 0.5000385822F, 0.5010222245F, - 0.5020057505F, 0.5029891553F, 0.5039724345F, 0.5049555834F, - 0.5059385973F, 0.5069214716F, 0.5079042018F, 0.5088867831F, - 0.5098692110F, 0.5108514808F, 0.5118335879F, 0.5128155277F, - 0.5137972956F, 0.5147788869F, 0.5157602971F, 0.5167415215F, - 0.5177225555F, 0.5187033945F, 0.5196840339F, 0.5206644692F, - 0.5216446956F, 0.5226247086F, 0.5236045035F, 0.5245840759F, - 0.5255634211F, 0.5265425344F, 0.5275214114F, 0.5285000474F, - 0.5294784378F, 0.5304565781F, 0.5314344637F, 0.5324120899F, - 0.5333894522F, 0.5343665461F, 0.5353433670F, 0.5363199102F, - 0.5372961713F, 0.5382721457F, 0.5392478287F, 0.5402232159F, - 0.5411983027F, 0.5421730845F, 0.5431475569F, 0.5441217151F, - 0.5450955548F, 0.5460690714F, 0.5470422602F, 0.5480151169F, - 0.5489876368F, 0.5499598155F, 0.5509316484F, 0.5519031310F, - 0.5528742587F, 0.5538450271F, 0.5548154317F, 0.5557854680F, - 0.5567551314F, 0.5577244174F, 0.5586933216F, 0.5596618395F, - 0.5606299665F, 0.5615976983F, 0.5625650302F, 0.5635319580F, - 0.5644984770F, 0.5654645828F, 0.5664302709F, 0.5673955370F, - 0.5683603765F, 0.5693247850F, 0.5702887580F, 0.5712522912F, - 0.5722153800F, 0.5731780200F, 0.5741402069F, 0.5751019362F, - 0.5760632034F, 0.5770240042F, 0.5779843341F, 0.5789441889F, - 0.5799035639F, 0.5808624549F, 0.5818208575F, 0.5827787673F, - 0.5837361800F, 0.5846930910F, 0.5856494961F, 0.5866053910F, - 0.5875607712F, 0.5885156324F, 0.5894699703F, 0.5904237804F, - 0.5913770586F, 0.5923298004F, 0.5932820016F, 0.5942336578F, - 0.5951847646F, 0.5961353179F, 0.5970853132F, 0.5980347464F, - 0.5989836131F, 0.5999319090F, 0.6008796298F, 0.6018267713F, - 0.6027733292F, 0.6037192993F, 0.6046646773F, 0.6056094589F, - 0.6065536400F, 0.6074972162F, 0.6084401833F, 0.6093825372F, - 0.6103242736F, 0.6112653884F, 0.6122058772F, 0.6131457359F, - 0.6140849604F, 0.6150235464F, 0.6159614897F, 0.6168987862F, - 0.6178354318F, 0.6187714223F, 0.6197067535F, 0.6206414213F, - 0.6215754215F, 0.6225087501F, 0.6234414028F, 0.6243733757F, - 0.6253046646F, 0.6262352654F, 0.6271651739F, 0.6280943862F, - 0.6290228982F, 0.6299507057F, 0.6308778048F, 0.6318041913F, - 0.6327298612F, 0.6336548105F, 0.6345790352F, 0.6355025312F, - 0.6364252945F, 0.6373473211F, 0.6382686070F, 0.6391891483F, - 0.6401089409F, 0.6410279808F, 0.6419462642F, 0.6428637869F, - 0.6437805452F, 0.6446965350F, 0.6456117524F, 0.6465261935F, - 0.6474398544F, 0.6483527311F, 0.6492648197F, 0.6501761165F, - 0.6510866174F, 0.6519963186F, 0.6529052162F, 0.6538133064F, - 0.6547205854F, 0.6556270492F, 0.6565326941F, 0.6574375162F, - 0.6583415117F, 0.6592446769F, 0.6601470079F, 0.6610485009F, - 0.6619491521F, 0.6628489578F, 0.6637479143F, 0.6646460177F, - 0.6655432643F, 0.6664396505F, 0.6673351724F, 0.6682298264F, - 0.6691236087F, 0.6700165157F, 0.6709085436F, 0.6717996889F, - 0.6726899478F, 0.6735793167F, 0.6744677918F, 0.6753553697F, - 0.6762420466F, 0.6771278190F, 0.6780126832F, 0.6788966357F, - 0.6797796728F, 0.6806617909F, 0.6815429866F, 0.6824232562F, - 0.6833025961F, 0.6841810030F, 0.6850584731F, 0.6859350031F, - 0.6868105894F, 0.6876852284F, 0.6885589168F, 0.6894316510F, - 0.6903034275F, 0.6911742430F, 0.6920440939F, 0.6929129769F, - 0.6937808884F, 0.6946478251F, 0.6955137837F, 0.6963787606F, - 0.6972427525F, 0.6981057560F, 0.6989677678F, 0.6998287845F, - 0.7006888028F, 0.7015478194F, 0.7024058309F, 0.7032628340F, - 0.7041188254F, 0.7049738019F, 0.7058277601F, 0.7066806969F, - 0.7075326089F, 0.7083834929F, 0.7092333457F, 0.7100821640F, - 0.7109299447F, 0.7117766846F, 0.7126223804F, 0.7134670291F, - 0.7143106273F, 0.7151531721F, 0.7159946602F, 0.7168350885F, - 0.7176744539F, 0.7185127534F, 0.7193499837F, 0.7201861418F, - 0.7210212247F, 0.7218552293F, 0.7226881526F, 0.7235199914F, - 0.7243507428F, 0.7251804039F, 0.7260089715F, 0.7268364426F, - 0.7276628144F, 0.7284880839F, 0.7293122481F, 0.7301353040F, - 0.7309572487F, 0.7317780794F, 0.7325977930F, 0.7334163868F, - 0.7342338579F, 0.7350502033F, 0.7358654202F, 0.7366795059F, - 0.7374924573F, 0.7383042718F, 0.7391149465F, 0.7399244787F, - 0.7407328655F, 0.7415401041F, 0.7423461920F, 0.7431511261F, - 0.7439549040F, 0.7447575227F, 0.7455589797F, 0.7463592723F, - 0.7471583976F, 0.7479563532F, 0.7487531363F, 0.7495487443F, - 0.7503431745F, 0.7511364244F, 0.7519284913F, 0.7527193726F, - 0.7535090658F, 0.7542975683F, 0.7550848776F, 0.7558709910F, - 0.7566559062F, 0.7574396205F, 0.7582221314F, 0.7590034366F, - 0.7597835334F, 0.7605624194F, 0.7613400923F, 0.7621165495F, - 0.7628917886F, 0.7636658072F, 0.7644386030F, 0.7652101735F, - 0.7659805164F, 0.7667496292F, 0.7675175098F, 0.7682841556F, - 0.7690495645F, 0.7698137341F, 0.7705766622F, 0.7713383463F, - 0.7720987844F, 0.7728579741F, 0.7736159132F, 0.7743725994F, - 0.7751280306F, 0.7758822046F, 0.7766351192F, 0.7773867722F, - 0.7781371614F, 0.7788862848F, 0.7796341401F, 0.7803807253F, - 0.7811260383F, 0.7818700769F, 0.7826128392F, 0.7833543230F, - 0.7840945263F, 0.7848334471F, 0.7855710833F, 0.7863074330F, - 0.7870424941F, 0.7877762647F, 0.7885087428F, 0.7892399264F, - 0.7899698137F, 0.7906984026F, 0.7914256914F, 0.7921516780F, - 0.7928763607F, 0.7935997375F, 0.7943218065F, 0.7950425661F, - 0.7957620142F, 0.7964801492F, 0.7971969692F, 0.7979124724F, - 0.7986266570F, 0.7993395214F, 0.8000510638F, 0.8007612823F, - 0.8014701754F, 0.8021777413F, 0.8028839784F, 0.8035888849F, - 0.8042924592F, 0.8049946997F, 0.8056956048F, 0.8063951727F, - 0.8070934020F, 0.8077902910F, 0.8084858381F, 0.8091800419F, - 0.8098729007F, 0.8105644130F, 0.8112545774F, 0.8119433922F, - 0.8126308561F, 0.8133169676F, 0.8140017251F, 0.8146851272F, - 0.8153671726F, 0.8160478598F, 0.8167271874F, 0.8174051539F, - 0.8180817582F, 0.8187569986F, 0.8194308741F, 0.8201033831F, - 0.8207745244F, 0.8214442966F, 0.8221126986F, 0.8227797290F, - 0.8234453865F, 0.8241096700F, 0.8247725781F, 0.8254341097F, - 0.8260942636F, 0.8267530385F, 0.8274104334F, 0.8280664470F, - 0.8287210782F, 0.8293743259F, 0.8300261889F, 0.8306766662F, - 0.8313257566F, 0.8319734591F, 0.8326197727F, 0.8332646963F, - 0.8339082288F, 0.8345503692F, 0.8351911167F, 0.8358304700F, - 0.8364684284F, 0.8371049907F, 0.8377401562F, 0.8383739238F, - 0.8390062927F, 0.8396372618F, 0.8402668305F, 0.8408949977F, - 0.8415217626F, 0.8421471245F, 0.8427710823F, 0.8433936354F, - 0.8440147830F, 0.8446345242F, 0.8452528582F, 0.8458697844F, - 0.8464853020F, 0.8470994102F, 0.8477121084F, 0.8483233958F, - 0.8489332718F, 0.8495417356F, 0.8501487866F, 0.8507544243F, - 0.8513586479F, 0.8519614568F, 0.8525628505F, 0.8531628283F, - 0.8537613897F, 0.8543585341F, 0.8549542611F, 0.8555485699F, - 0.8561414603F, 0.8567329315F, 0.8573229832F, 0.8579116149F, - 0.8584988262F, 0.8590846165F, 0.8596689855F, 0.8602519327F, - 0.8608334577F, 0.8614135603F, 0.8619922399F, 0.8625694962F, - 0.8631453289F, 0.8637197377F, 0.8642927222F, 0.8648642821F, - 0.8654344172F, 0.8660031272F, 0.8665704118F, 0.8671362708F, - 0.8677007039F, 0.8682637109F, 0.8688252917F, 0.8693854460F, - 0.8699441737F, 0.8705014745F, 0.8710573485F, 0.8716117953F, - 0.8721648150F, 0.8727164073F, 0.8732665723F, 0.8738153098F, - 0.8743626197F, 0.8749085021F, 0.8754529569F, 0.8759959840F, - 0.8765375835F, 0.8770777553F, 0.8776164996F, 0.8781538162F, - 0.8786897054F, 0.8792241670F, 0.8797572013F, 0.8802888082F, - 0.8808189880F, 0.8813477407F, 0.8818750664F, 0.8824009653F, - 0.8829254375F, 0.8834484833F, 0.8839701028F, 0.8844902961F, - 0.8850090636F, 0.8855264054F, 0.8860423218F, 0.8865568131F, - 0.8870698794F, 0.8875815212F, 0.8880917386F, 0.8886005319F, - 0.8891079016F, 0.8896138479F, 0.8901183712F, 0.8906214719F, - 0.8911231503F, 0.8916234067F, 0.8921222417F, 0.8926196556F, - 0.8931156489F, 0.8936102219F, 0.8941033752F, 0.8945951092F, - 0.8950854244F, 0.8955743212F, 0.8960618003F, 0.8965478621F, - 0.8970325071F, 0.8975157359F, 0.8979975490F, 0.8984779471F, - 0.8989569307F, 0.8994345004F, 0.8999106568F, 0.9003854005F, - 0.9008587323F, 0.9013306526F, 0.9018011623F, 0.9022702619F, - 0.9027379521F, 0.9032042337F, 0.9036691074F, 0.9041325739F, - 0.9045946339F, 0.9050552882F, 0.9055145376F, 0.9059723828F, - 0.9064288246F, 0.9068838638F, 0.9073375013F, 0.9077897379F, - 0.9082405743F, 0.9086900115F, 0.9091380503F, 0.9095846917F, - 0.9100299364F, 0.9104737854F, 0.9109162397F, 0.9113573001F, - 0.9117969675F, 0.9122352430F, 0.9126721275F, 0.9131076219F, - 0.9135417273F, 0.9139744447F, 0.9144057750F, 0.9148357194F, - 0.9152642787F, 0.9156914542F, 0.9161172468F, 0.9165416576F, - 0.9169646877F, 0.9173863382F, 0.9178066102F, 0.9182255048F, - 0.9186430232F, 0.9190591665F, 0.9194739359F, 0.9198873324F, - 0.9202993574F, 0.9207100120F, 0.9211192973F, 0.9215272147F, - 0.9219337653F, 0.9223389504F, 0.9227427713F, 0.9231452290F, - 0.9235463251F, 0.9239460607F, 0.9243444371F, 0.9247414557F, - 0.9251371177F, 0.9255314245F, 0.9259243774F, 0.9263159778F, - 0.9267062270F, 0.9270951264F, 0.9274826774F, 0.9278688814F, - 0.9282537398F, 0.9286372540F, 0.9290194254F, 0.9294002555F, - 0.9297797458F, 0.9301578976F, 0.9305347125F, 0.9309101919F, - 0.9312843373F, 0.9316571503F, 0.9320286323F, 0.9323987849F, - 0.9327676097F, 0.9331351080F, 0.9335012816F, 0.9338661320F, - 0.9342296607F, 0.9345918694F, 0.9349527596F, 0.9353123330F, - 0.9356705911F, 0.9360275357F, 0.9363831683F, 0.9367374905F, - 0.9370905042F, 0.9374422108F, 0.9377926122F, 0.9381417099F, - 0.9384895057F, 0.9388360014F, 0.9391811985F, 0.9395250989F, - 0.9398677043F, 0.9402090165F, 0.9405490371F, 0.9408877680F, - 0.9412252110F, 0.9415613678F, 0.9418962402F, 0.9422298301F, - 0.9425621392F, 0.9428931695F, 0.9432229226F, 0.9435514005F, - 0.9438786050F, 0.9442045381F, 0.9445292014F, 0.9448525971F, - 0.9451747268F, 0.9454955926F, 0.9458151963F, 0.9461335399F, - 0.9464506253F, 0.9467664545F, 0.9470810293F, 0.9473943517F, - 0.9477064238F, 0.9480172474F, 0.9483268246F, 0.9486351573F, - 0.9489422475F, 0.9492480973F, 0.9495527087F, 0.9498560837F, - 0.9501582243F, 0.9504591325F, 0.9507588105F, 0.9510572603F, - 0.9513544839F, 0.9516504834F, 0.9519452609F, 0.9522388186F, - 0.9525311584F, 0.9528222826F, 0.9531121932F, 0.9534008923F, - 0.9536883821F, 0.9539746647F, 0.9542597424F, 0.9545436171F, - 0.9548262912F, 0.9551077667F, 0.9553880459F, 0.9556671309F, - 0.9559450239F, 0.9562217272F, 0.9564972429F, 0.9567715733F, - 0.9570447206F, 0.9573166871F, 0.9575874749F, 0.9578570863F, - 0.9581255236F, 0.9583927890F, 0.9586588849F, 0.9589238134F, - 0.9591875769F, 0.9594501777F, 0.9597116180F, 0.9599719003F, - 0.9602310267F, 0.9604889995F, 0.9607458213F, 0.9610014942F, - 0.9612560206F, 0.9615094028F, 0.9617616433F, 0.9620127443F, - 0.9622627083F, 0.9625115376F, 0.9627592345F, 0.9630058016F, - 0.9632512411F, 0.9634955555F, 0.9637387471F, 0.9639808185F, - 0.9642217720F, 0.9644616100F, 0.9647003349F, 0.9649379493F, - 0.9651744556F, 0.9654098561F, 0.9656441534F, 0.9658773499F, - 0.9661094480F, 0.9663404504F, 0.9665703593F, 0.9667991774F, - 0.9670269071F, 0.9672535509F, 0.9674791114F, 0.9677035909F, - 0.9679269921F, 0.9681493174F, 0.9683705694F, 0.9685907506F, - 0.9688098636F, 0.9690279108F, 0.9692448948F, 0.9694608182F, - 0.9696756836F, 0.9698894934F, 0.9701022503F, 0.9703139569F, - 0.9705246156F, 0.9707342291F, 0.9709428000F, 0.9711503309F, - 0.9713568243F, 0.9715622829F, 0.9717667093F, 0.9719701060F, - 0.9721724757F, 0.9723738210F, 0.9725741446F, 0.9727734490F, - 0.9729717369F, 0.9731690109F, 0.9733652737F, 0.9735605279F, - 0.9737547762F, 0.9739480212F, 0.9741402656F, 0.9743315120F, - 0.9745217631F, 0.9747110216F, 0.9748992901F, 0.9750865714F, - 0.9752728681F, 0.9754581829F, 0.9756425184F, 0.9758258775F, - 0.9760082627F, 0.9761896768F, 0.9763701224F, 0.9765496024F, - 0.9767281193F, 0.9769056760F, 0.9770822751F, 0.9772579193F, - 0.9774326114F, 0.9776063542F, 0.9777791502F, 0.9779510023F, - 0.9781219133F, 0.9782918858F, 0.9784609226F, 0.9786290264F, - 0.9787962000F, 0.9789624461F, 0.9791277676F, 0.9792921671F, - 0.9794556474F, 0.9796182113F, 0.9797798615F, 0.9799406009F, - 0.9801004321F, 0.9802593580F, 0.9804173813F, 0.9805745049F, - 0.9807307314F, 0.9808860637F, 0.9810405046F, 0.9811940568F, - 0.9813467232F, 0.9814985065F, 0.9816494095F, 0.9817994351F, - 0.9819485860F, 0.9820968650F, 0.9822442750F, 0.9823908186F, - 0.9825364988F, 0.9826813184F, 0.9828252801F, 0.9829683868F, - 0.9831106413F, 0.9832520463F, 0.9833926048F, 0.9835323195F, - 0.9836711932F, 0.9838092288F, 0.9839464291F, 0.9840827969F, - 0.9842183351F, 0.9843530464F, 0.9844869337F, 0.9846199998F, - 0.9847522475F, 0.9848836798F, 0.9850142993F, 0.9851441090F, - 0.9852731117F, 0.9854013101F, 0.9855287073F, 0.9856553058F, - 0.9857811087F, 0.9859061188F, 0.9860303388F, 0.9861537717F, - 0.9862764202F, 0.9863982872F, 0.9865193756F, 0.9866396882F, - 0.9867592277F, 0.9868779972F, 0.9869959993F, 0.9871132370F, - 0.9872297131F, 0.9873454304F, 0.9874603918F, 0.9875746001F, - 0.9876880581F, 0.9878007688F, 0.9879127348F, 0.9880239592F, - 0.9881344447F, 0.9882441941F, 0.9883532104F, 0.9884614962F, - 0.9885690546F, 0.9886758883F, 0.9887820001F, 0.9888873930F, - 0.9889920697F, 0.9890960331F, 0.9891992859F, 0.9893018312F, - 0.9894036716F, 0.9895048100F, 0.9896052493F, 0.9897049923F, - 0.9898040418F, 0.9899024006F, 0.9900000717F, 0.9900970577F, - 0.9901933616F, 0.9902889862F, 0.9903839343F, 0.9904782087F, - 0.9905718122F, 0.9906647477F, 0.9907570180F, 0.9908486259F, - 0.9909395742F, 0.9910298658F, 0.9911195034F, 0.9912084899F, - 0.9912968281F, 0.9913845208F, 0.9914715708F, 0.9915579810F, - 0.9916437540F, 0.9917288928F, 0.9918134001F, 0.9918972788F, - 0.9919805316F, 0.9920631613F, 0.9921451707F, 0.9922265626F, - 0.9923073399F, 0.9923875052F, 0.9924670615F, 0.9925460114F, - 0.9926243577F, 0.9927021033F, 0.9927792508F, 0.9928558032F, - 0.9929317631F, 0.9930071333F, 0.9930819167F, 0.9931561158F, - 0.9932297337F, 0.9933027728F, 0.9933752362F, 0.9934471264F, - 0.9935184462F, 0.9935891985F, 0.9936593859F, 0.9937290112F, - 0.9937980771F, 0.9938665864F, 0.9939345418F, 0.9940019460F, - 0.9940688018F, 0.9941351118F, 0.9942008789F, 0.9942661057F, - 0.9943307950F, 0.9943949494F, 0.9944585717F, 0.9945216645F, - 0.9945842307F, 0.9946462728F, 0.9947077936F, 0.9947687957F, - 0.9948292820F, 0.9948892550F, 0.9949487174F, 0.9950076719F, - 0.9950661212F, 0.9951240679F, 0.9951815148F, 0.9952384645F, - 0.9952949196F, 0.9953508828F, 0.9954063568F, 0.9954613442F, - 0.9955158476F, 0.9955698697F, 0.9956234132F, 0.9956764806F, - 0.9957290746F, 0.9957811978F, 0.9958328528F, 0.9958840423F, - 0.9959347688F, 0.9959850351F, 0.9960348435F, 0.9960841969F, - 0.9961330977F, 0.9961815486F, 0.9962295521F, 0.9962771108F, - 0.9963242274F, 0.9963709043F, 0.9964171441F, 0.9964629494F, - 0.9965083228F, 0.9965532668F, 0.9965977840F, 0.9966418768F, - 0.9966855479F, 0.9967287998F, 0.9967716350F, 0.9968140559F, - 0.9968560653F, 0.9968976655F, 0.9969388591F, 0.9969796485F, - 0.9970200363F, 0.9970600250F, 0.9970996170F, 0.9971388149F, - 0.9971776211F, 0.9972160380F, 0.9972540683F, 0.9972917142F, - 0.9973289783F, 0.9973658631F, 0.9974023709F, 0.9974385042F, - 0.9974742655F, 0.9975096571F, 0.9975446816F, 0.9975793413F, - 0.9976136386F, 0.9976475759F, 0.9976811557F, 0.9977143803F, - 0.9977472521F, 0.9977797736F, 0.9978119470F, 0.9978437748F, - 0.9978752593F, 0.9979064029F, 0.9979372079F, 0.9979676768F, - 0.9979978117F, 0.9980276151F, 0.9980570893F, 0.9980862367F, - 0.9981150595F, 0.9981435600F, 0.9981717406F, 0.9981996035F, - 0.9982271511F, 0.9982543856F, 0.9982813093F, 0.9983079246F, - 0.9983342336F, 0.9983602386F, 0.9983859418F, 0.9984113456F, - 0.9984364522F, 0.9984612638F, 0.9984857825F, 0.9985100108F, - 0.9985339507F, 0.9985576044F, 0.9985809743F, 0.9986040624F, - 0.9986268710F, 0.9986494022F, 0.9986716583F, 0.9986936413F, - 0.9987153535F, 0.9987367969F, 0.9987579738F, 0.9987788864F, - 0.9987995366F, 0.9988199267F, 0.9988400587F, 0.9988599348F, - 0.9988795572F, 0.9988989278F, 0.9989180487F, 0.9989369222F, - 0.9989555501F, 0.9989739347F, 0.9989920780F, 0.9990099820F, - 0.9990276487F, 0.9990450803F, 0.9990622787F, 0.9990792460F, - 0.9990959841F, 0.9991124952F, 0.9991287812F, 0.9991448440F, - 0.9991606858F, 0.9991763084F, 0.9991917139F, 0.9992069042F, - 0.9992218813F, 0.9992366471F, 0.9992512035F, 0.9992655525F, - 0.9992796961F, 0.9992936361F, 0.9993073744F, 0.9993209131F, - 0.9993342538F, 0.9993473987F, 0.9993603494F, 0.9993731080F, - 0.9993856762F, 0.9993980559F, 0.9994102490F, 0.9994222573F, - 0.9994340827F, 0.9994457269F, 0.9994571918F, 0.9994684793F, - 0.9994795910F, 0.9994905288F, 0.9995012945F, 0.9995118898F, - 0.9995223165F, 0.9995325765F, 0.9995426713F, 0.9995526029F, - 0.9995623728F, 0.9995719829F, 0.9995814349F, 0.9995907304F, - 0.9995998712F, 0.9996088590F, 0.9996176954F, 0.9996263821F, - 0.9996349208F, 0.9996433132F, 0.9996515609F, 0.9996596656F, - 0.9996676288F, 0.9996754522F, 0.9996831375F, 0.9996906862F, - 0.9996981000F, 0.9997053804F, 0.9997125290F, 0.9997195474F, - 0.9997264371F, 0.9997331998F, 0.9997398369F, 0.9997463500F, - 0.9997527406F, 0.9997590103F, 0.9997651606F, 0.9997711930F, - 0.9997771089F, 0.9997829098F, 0.9997885973F, 0.9997941728F, - 0.9997996378F, 0.9998049936F, 0.9998102419F, 0.9998153839F, - 0.9998204211F, 0.9998253550F, 0.9998301868F, 0.9998349182F, - 0.9998395503F, 0.9998440847F, 0.9998485226F, 0.9998528654F, - 0.9998571146F, 0.9998612713F, 0.9998653370F, 0.9998693130F, - 0.9998732007F, 0.9998770012F, 0.9998807159F, 0.9998843461F, - 0.9998878931F, 0.9998913581F, 0.9998947424F, 0.9998980473F, - 0.9999012740F, 0.9999044237F, 0.9999074976F, 0.9999104971F, - 0.9999134231F, 0.9999162771F, 0.9999190601F, 0.9999217733F, - 0.9999244179F, 0.9999269950F, 0.9999295058F, 0.9999319515F, - 0.9999343332F, 0.9999366519F, 0.9999389088F, 0.9999411050F, - 0.9999432416F, 0.9999453196F, 0.9999473402F, 0.9999493044F, - 0.9999512132F, 0.9999530677F, 0.9999548690F, 0.9999566180F, - 0.9999583157F, 0.9999599633F, 0.9999615616F, 0.9999631116F, - 0.9999646144F, 0.9999660709F, 0.9999674820F, 0.9999688487F, - 0.9999701719F, 0.9999714526F, 0.9999726917F, 0.9999738900F, - 0.9999750486F, 0.9999761682F, 0.9999772497F, 0.9999782941F, - 0.9999793021F, 0.9999802747F, 0.9999812126F, 0.9999821167F, - 0.9999829878F, 0.9999838268F, 0.9999846343F, 0.9999854113F, - 0.9999861584F, 0.9999868765F, 0.9999875664F, 0.9999882287F, - 0.9999888642F, 0.9999894736F, 0.9999900577F, 0.9999906172F, - 0.9999911528F, 0.9999916651F, 0.9999921548F, 0.9999926227F, - 0.9999930693F, 0.9999934954F, 0.9999939015F, 0.9999942883F, - 0.9999946564F, 0.9999950064F, 0.9999953390F, 0.9999956547F, - 0.9999959541F, 0.9999962377F, 0.9999965062F, 0.9999967601F, - 0.9999969998F, 0.9999972260F, 0.9999974392F, 0.9999976399F, - 0.9999978285F, 0.9999980056F, 0.9999981716F, 0.9999983271F, - 0.9999984724F, 0.9999986081F, 0.9999987345F, 0.9999988521F, - 0.9999989613F, 0.9999990625F, 0.9999991562F, 0.9999992426F, - 0.9999993223F, 0.9999993954F, 0.9999994625F, 0.9999995239F, - 0.9999995798F, 0.9999996307F, 0.9999996768F, 0.9999997184F, - 0.9999997559F, 0.9999997895F, 0.9999998195F, 0.9999998462F, - 0.9999998698F, 0.9999998906F, 0.9999999088F, 0.9999999246F, - 0.9999999383F, 0.9999999500F, 0.9999999600F, 0.9999999684F, - 0.9999999754F, 0.9999999811F, 0.9999999858F, 0.9999999896F, - 0.9999999925F, 0.9999999948F, 0.9999999965F, 0.9999999978F, - 0.9999999986F, 0.9999999992F, 0.9999999996F, 0.9999999998F, - 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, -}; - -static float vwin8192[4096] = { - 0.0000000578F, 0.0000005198F, 0.0000014438F, 0.0000028299F, - 0.0000046780F, 0.0000069882F, 0.0000097604F, 0.0000129945F, - 0.0000166908F, 0.0000208490F, 0.0000254692F, 0.0000305515F, - 0.0000360958F, 0.0000421021F, 0.0000485704F, 0.0000555006F, - 0.0000628929F, 0.0000707472F, 0.0000790635F, 0.0000878417F, - 0.0000970820F, 0.0001067842F, 0.0001169483F, 0.0001275744F, - 0.0001386625F, 0.0001502126F, 0.0001622245F, 0.0001746984F, - 0.0001876343F, 0.0002010320F, 0.0002148917F, 0.0002292132F, - 0.0002439967F, 0.0002592421F, 0.0002749493F, 0.0002911184F, - 0.0003077493F, 0.0003248421F, 0.0003423967F, 0.0003604132F, - 0.0003788915F, 0.0003978316F, 0.0004172335F, 0.0004370971F, - 0.0004574226F, 0.0004782098F, 0.0004994587F, 0.0005211694F, - 0.0005433418F, 0.0005659759F, 0.0005890717F, 0.0006126292F, - 0.0006366484F, 0.0006611292F, 0.0006860716F, 0.0007114757F, - 0.0007373414F, 0.0007636687F, 0.0007904576F, 0.0008177080F, - 0.0008454200F, 0.0008735935F, 0.0009022285F, 0.0009313250F, - 0.0009608830F, 0.0009909025F, 0.0010213834F, 0.0010523257F, - 0.0010837295F, 0.0011155946F, 0.0011479211F, 0.0011807090F, - 0.0012139582F, 0.0012476687F, 0.0012818405F, 0.0013164736F, - 0.0013515679F, 0.0013871235F, 0.0014231402F, 0.0014596182F, - 0.0014965573F, 0.0015339576F, 0.0015718190F, 0.0016101415F, - 0.0016489251F, 0.0016881698F, 0.0017278754F, 0.0017680421F, - 0.0018086698F, 0.0018497584F, 0.0018913080F, 0.0019333185F, - 0.0019757898F, 0.0020187221F, 0.0020621151F, 0.0021059690F, - 0.0021502837F, 0.0021950591F, 0.0022402953F, 0.0022859921F, - 0.0023321497F, 0.0023787679F, 0.0024258467F, 0.0024733861F, - 0.0025213861F, 0.0025698466F, 0.0026187676F, 0.0026681491F, - 0.0027179911F, 0.0027682935F, 0.0028190562F, 0.0028702794F, - 0.0029219628F, 0.0029741066F, 0.0030267107F, 0.0030797749F, - 0.0031332994F, 0.0031872841F, 0.0032417289F, 0.0032966338F, - 0.0033519988F, 0.0034078238F, 0.0034641089F, 0.0035208539F, - 0.0035780589F, 0.0036357237F, 0.0036938485F, 0.0037524331F, - 0.0038114775F, 0.0038709817F, 0.0039309456F, 0.0039913692F, - 0.0040522524F, 0.0041135953F, 0.0041753978F, 0.0042376599F, - 0.0043003814F, 0.0043635624F, 0.0044272029F, 0.0044913028F, - 0.0045558620F, 0.0046208806F, 0.0046863585F, 0.0047522955F, - 0.0048186919F, 0.0048855473F, 0.0049528619F, 0.0050206356F, - 0.0050888684F, 0.0051575601F, 0.0052267108F, 0.0052963204F, - 0.0053663890F, 0.0054369163F, 0.0055079025F, 0.0055793474F, - 0.0056512510F, 0.0057236133F, 0.0057964342F, 0.0058697137F, - 0.0059434517F, 0.0060176482F, 0.0060923032F, 0.0061674166F, - 0.0062429883F, 0.0063190183F, 0.0063955066F, 0.0064724532F, - 0.0065498579F, 0.0066277207F, 0.0067060416F, 0.0067848205F, - 0.0068640575F, 0.0069437523F, 0.0070239051F, 0.0071045157F, - 0.0071855840F, 0.0072671102F, 0.0073490940F, 0.0074315355F, - 0.0075144345F, 0.0075977911F, 0.0076816052F, 0.0077658768F, - 0.0078506057F, 0.0079357920F, 0.0080214355F, 0.0081075363F, - 0.0081940943F, 0.0082811094F, 0.0083685816F, 0.0084565108F, - 0.0085448970F, 0.0086337401F, 0.0087230401F, 0.0088127969F, - 0.0089030104F, 0.0089936807F, 0.0090848076F, 0.0091763911F, - 0.0092684311F, 0.0093609276F, 0.0094538805F, 0.0095472898F, - 0.0096411554F, 0.0097354772F, 0.0098302552F, 0.0099254894F, - 0.0100211796F, 0.0101173259F, 0.0102139281F, 0.0103109863F, - 0.0104085002F, 0.0105064700F, 0.0106048955F, 0.0107037766F, - 0.0108031133F, 0.0109029056F, 0.0110031534F, 0.0111038565F, - 0.0112050151F, 0.0113066289F, 0.0114086980F, 0.0115112222F, - 0.0116142015F, 0.0117176359F, 0.0118215252F, 0.0119258695F, - 0.0120306686F, 0.0121359225F, 0.0122416312F, 0.0123477944F, - 0.0124544123F, 0.0125614847F, 0.0126690116F, 0.0127769928F, - 0.0128854284F, 0.0129943182F, 0.0131036623F, 0.0132134604F, - 0.0133237126F, 0.0134344188F, 0.0135455790F, 0.0136571929F, - 0.0137692607F, 0.0138817821F, 0.0139947572F, 0.0141081859F, - 0.0142220681F, 0.0143364037F, 0.0144511927F, 0.0145664350F, - 0.0146821304F, 0.0147982791F, 0.0149148808F, 0.0150319355F, - 0.0151494431F, 0.0152674036F, 0.0153858168F, 0.0155046828F, - 0.0156240014F, 0.0157437726F, 0.0158639962F, 0.0159846723F, - 0.0161058007F, 0.0162273814F, 0.0163494142F, 0.0164718991F, - 0.0165948361F, 0.0167182250F, 0.0168420658F, 0.0169663584F, - 0.0170911027F, 0.0172162987F, 0.0173419462F, 0.0174680452F, - 0.0175945956F, 0.0177215974F, 0.0178490504F, 0.0179769545F, - 0.0181053098F, 0.0182341160F, 0.0183633732F, 0.0184930812F, - 0.0186232399F, 0.0187538494F, 0.0188849094F, 0.0190164200F, - 0.0191483809F, 0.0192807923F, 0.0194136539F, 0.0195469656F, - 0.0196807275F, 0.0198149394F, 0.0199496012F, 0.0200847128F, - 0.0202202742F, 0.0203562853F, 0.0204927460F, 0.0206296561F, - 0.0207670157F, 0.0209048245F, 0.0210430826F, 0.0211817899F, - 0.0213209462F, 0.0214605515F, 0.0216006057F, 0.0217411086F, - 0.0218820603F, 0.0220234605F, 0.0221653093F, 0.0223076066F, - 0.0224503521F, 0.0225935459F, 0.0227371879F, 0.0228812779F, - 0.0230258160F, 0.0231708018F, 0.0233162355F, 0.0234621169F, - 0.0236084459F, 0.0237552224F, 0.0239024462F, 0.0240501175F, - 0.0241982359F, 0.0243468015F, 0.0244958141F, 0.0246452736F, - 0.0247951800F, 0.0249455331F, 0.0250963329F, 0.0252475792F, - 0.0253992720F, 0.0255514111F, 0.0257039965F, 0.0258570281F, - 0.0260105057F, 0.0261644293F, 0.0263187987F, 0.0264736139F, - 0.0266288747F, 0.0267845811F, 0.0269407330F, 0.0270973302F, - 0.0272543727F, 0.0274118604F, 0.0275697930F, 0.0277281707F, - 0.0278869932F, 0.0280462604F, 0.0282059723F, 0.0283661287F, - 0.0285267295F, 0.0286877747F, 0.0288492641F, 0.0290111976F, - 0.0291735751F, 0.0293363965F, 0.0294996617F, 0.0296633706F, - 0.0298275231F, 0.0299921190F, 0.0301571583F, 0.0303226409F, - 0.0304885667F, 0.0306549354F, 0.0308217472F, 0.0309890017F, - 0.0311566989F, 0.0313248388F, 0.0314934211F, 0.0316624459F, - 0.0318319128F, 0.0320018220F, 0.0321721732F, 0.0323429663F, - 0.0325142013F, 0.0326858779F, 0.0328579962F, 0.0330305559F, - 0.0332035570F, 0.0333769994F, 0.0335508829F, 0.0337252074F, - 0.0338999728F, 0.0340751790F, 0.0342508259F, 0.0344269134F, - 0.0346034412F, 0.0347804094F, 0.0349578178F, 0.0351356663F, - 0.0353139548F, 0.0354926831F, 0.0356718511F, 0.0358514588F, - 0.0360315059F, 0.0362119924F, 0.0363929182F, 0.0365742831F, - 0.0367560870F, 0.0369383297F, 0.0371210113F, 0.0373041315F, - 0.0374876902F, 0.0376716873F, 0.0378561226F, 0.0380409961F, - 0.0382263077F, 0.0384120571F, 0.0385982443F, 0.0387848691F, - 0.0389719315F, 0.0391594313F, 0.0393473683F, 0.0395357425F, - 0.0397245537F, 0.0399138017F, 0.0401034866F, 0.0402936080F, - 0.0404841660F, 0.0406751603F, 0.0408665909F, 0.0410584576F, - 0.0412507603F, 0.0414434988F, 0.0416366731F, 0.0418302829F, - 0.0420243282F, 0.0422188088F, 0.0424137246F, 0.0426090755F, - 0.0428048613F, 0.0430010819F, 0.0431977371F, 0.0433948269F, - 0.0435923511F, 0.0437903095F, 0.0439887020F, 0.0441875285F, - 0.0443867889F, 0.0445864830F, 0.0447866106F, 0.0449871717F, - 0.0451881661F, 0.0453895936F, 0.0455914542F, 0.0457937477F, - 0.0459964738F, 0.0461996326F, 0.0464032239F, 0.0466072475F, - 0.0468117032F, 0.0470165910F, 0.0472219107F, 0.0474276622F, - 0.0476338452F, 0.0478404597F, 0.0480475056F, 0.0482549827F, - 0.0484628907F, 0.0486712297F, 0.0488799994F, 0.0490891998F, - 0.0492988306F, 0.0495088917F, 0.0497193830F, 0.0499303043F, - 0.0501416554F, 0.0503534363F, 0.0505656468F, 0.0507782867F, - 0.0509913559F, 0.0512048542F, 0.0514187815F, 0.0516331376F, - 0.0518479225F, 0.0520631358F, 0.0522787775F, 0.0524948475F, - 0.0527113455F, 0.0529282715F, 0.0531456252F, 0.0533634066F, - 0.0535816154F, 0.0538002515F, 0.0540193148F, 0.0542388051F, - 0.0544587222F, 0.0546790660F, 0.0548998364F, 0.0551210331F, - 0.0553426561F, 0.0555647051F, 0.0557871801F, 0.0560100807F, - 0.0562334070F, 0.0564571587F, 0.0566813357F, 0.0569059378F, - 0.0571309649F, 0.0573564168F, 0.0575822933F, 0.0578085942F, - 0.0580353195F, 0.0582624689F, 0.0584900423F, 0.0587180396F, - 0.0589464605F, 0.0591753049F, 0.0594045726F, 0.0596342635F, - 0.0598643774F, 0.0600949141F, 0.0603258735F, 0.0605572555F, - 0.0607890597F, 0.0610212862F, 0.0612539346F, 0.0614870049F, - 0.0617204968F, 0.0619544103F, 0.0621887451F, 0.0624235010F, - 0.0626586780F, 0.0628942758F, 0.0631302942F, 0.0633667331F, - 0.0636035923F, 0.0638408717F, 0.0640785710F, 0.0643166901F, - 0.0645552288F, 0.0647941870F, 0.0650335645F, 0.0652733610F, - 0.0655135765F, 0.0657542108F, 0.0659952636F, 0.0662367348F, - 0.0664786242F, 0.0667209316F, 0.0669636570F, 0.0672068000F, - 0.0674503605F, 0.0676943384F, 0.0679387334F, 0.0681835454F, - 0.0684287742F, 0.0686744196F, 0.0689204814F, 0.0691669595F, - 0.0694138536F, 0.0696611637F, 0.0699088894F, 0.0701570307F, - 0.0704055873F, 0.0706545590F, 0.0709039458F, 0.0711537473F, - 0.0714039634F, 0.0716545939F, 0.0719056387F, 0.0721570975F, - 0.0724089702F, 0.0726612565F, 0.0729139563F, 0.0731670694F, - 0.0734205956F, 0.0736745347F, 0.0739288866F, 0.0741836510F, - 0.0744388277F, 0.0746944166F, 0.0749504175F, 0.0752068301F, - 0.0754636543F, 0.0757208899F, 0.0759785367F, 0.0762365946F, - 0.0764950632F, 0.0767539424F, 0.0770132320F, 0.0772729319F, - 0.0775330418F, 0.0777935616F, 0.0780544909F, 0.0783158298F, - 0.0785775778F, 0.0788397349F, 0.0791023009F, 0.0793652755F, - 0.0796286585F, 0.0798924498F, 0.0801566492F, 0.0804212564F, - 0.0806862712F, 0.0809516935F, 0.0812175231F, 0.0814837597F, - 0.0817504031F, 0.0820174532F, 0.0822849097F, 0.0825527724F, - 0.0828210412F, 0.0830897158F, 0.0833587960F, 0.0836282816F, - 0.0838981724F, 0.0841684682F, 0.0844391688F, 0.0847102740F, - 0.0849817835F, 0.0852536973F, 0.0855260150F, 0.0857987364F, - 0.0860718614F, 0.0863453897F, 0.0866193211F, 0.0868936554F, - 0.0871683924F, 0.0874435319F, 0.0877190737F, 0.0879950175F, - 0.0882713632F, 0.0885481105F, 0.0888252592F, 0.0891028091F, - 0.0893807600F, 0.0896591117F, 0.0899378639F, 0.0902170165F, - 0.0904965692F, 0.0907765218F, 0.0910568740F, 0.0913376258F, - 0.0916187767F, 0.0919003268F, 0.0921822756F, 0.0924646230F, - 0.0927473687F, 0.0930305126F, 0.0933140545F, 0.0935979940F, - 0.0938823310F, 0.0941670653F, 0.0944521966F, 0.0947377247F, - 0.0950236494F, 0.0953099704F, 0.0955966876F, 0.0958838007F, - 0.0961713094F, 0.0964592136F, 0.0967475131F, 0.0970362075F, - 0.0973252967F, 0.0976147805F, 0.0979046585F, 0.0981949307F, - 0.0984855967F, 0.0987766563F, 0.0990681093F, 0.0993599555F, - 0.0996521945F, 0.0999448263F, 0.1002378506F, 0.1005312671F, - 0.1008250755F, 0.1011192757F, 0.1014138675F, 0.1017088505F, - 0.1020042246F, 0.1022999895F, 0.1025961450F, 0.1028926909F, - 0.1031896268F, 0.1034869526F, 0.1037846680F, 0.1040827729F, - 0.1043812668F, 0.1046801497F, 0.1049794213F, 0.1052790813F, - 0.1055791294F, 0.1058795656F, 0.1061803894F, 0.1064816006F, - 0.1067831991F, 0.1070851846F, 0.1073875568F, 0.1076903155F, - 0.1079934604F, 0.1082969913F, 0.1086009079F, 0.1089052101F, - 0.1092098975F, 0.1095149699F, 0.1098204270F, 0.1101262687F, - 0.1104324946F, 0.1107391045F, 0.1110460982F, 0.1113534754F, - 0.1116612359F, 0.1119693793F, 0.1122779055F, 0.1125868142F, - 0.1128961052F, 0.1132057781F, 0.1135158328F, 0.1138262690F, - 0.1141370863F, 0.1144482847F, 0.1147598638F, 0.1150718233F, - 0.1153841631F, 0.1156968828F, 0.1160099822F, 0.1163234610F, - 0.1166373190F, 0.1169515559F, 0.1172661714F, 0.1175811654F, - 0.1178965374F, 0.1182122874F, 0.1185284149F, 0.1188449198F, - 0.1191618018F, 0.1194790606F, 0.1197966960F, 0.1201147076F, - 0.1204330953F, 0.1207518587F, 0.1210709976F, 0.1213905118F, - 0.1217104009F, 0.1220306647F, 0.1223513029F, 0.1226723153F, - 0.1229937016F, 0.1233154615F, 0.1236375948F, 0.1239601011F, - 0.1242829803F, 0.1246062319F, 0.1249298559F, 0.1252538518F, - 0.1255782195F, 0.1259029586F, 0.1262280689F, 0.1265535501F, - 0.1268794019F, 0.1272056241F, 0.1275322163F, 0.1278591784F, - 0.1281865099F, 0.1285142108F, 0.1288422805F, 0.1291707190F, - 0.1294995259F, 0.1298287009F, 0.1301582437F, 0.1304881542F, - 0.1308184319F, 0.1311490766F, 0.1314800881F, 0.1318114660F, - 0.1321432100F, 0.1324753200F, 0.1328077955F, 0.1331406364F, - 0.1334738422F, 0.1338074129F, 0.1341413479F, 0.1344756472F, - 0.1348103103F, 0.1351453370F, 0.1354807270F, 0.1358164801F, - 0.1361525959F, 0.1364890741F, 0.1368259145F, 0.1371631167F, - 0.1375006805F, 0.1378386056F, 0.1381768917F, 0.1385155384F, - 0.1388545456F, 0.1391939129F, 0.1395336400F, 0.1398737266F, - 0.1402141724F, 0.1405549772F, 0.1408961406F, 0.1412376623F, - 0.1415795421F, 0.1419217797F, 0.1422643746F, 0.1426073268F, - 0.1429506358F, 0.1432943013F, 0.1436383231F, 0.1439827008F, - 0.1443274342F, 0.1446725229F, 0.1450179667F, 0.1453637652F, - 0.1457099181F, 0.1460564252F, 0.1464032861F, 0.1467505006F, - 0.1470980682F, 0.1474459888F, 0.1477942620F, 0.1481428875F, - 0.1484918651F, 0.1488411942F, 0.1491908748F, 0.1495409065F, - 0.1498912889F, 0.1502420218F, 0.1505931048F, 0.1509445376F, - 0.1512963200F, 0.1516484516F, 0.1520009321F, 0.1523537612F, - 0.1527069385F, 0.1530604638F, 0.1534143368F, 0.1537685571F, - 0.1541231244F, 0.1544780384F, 0.1548332987F, 0.1551889052F, - 0.1555448574F, 0.1559011550F, 0.1562577978F, 0.1566147853F, - 0.1569721173F, 0.1573297935F, 0.1576878135F, 0.1580461771F, - 0.1584048838F, 0.1587639334F, 0.1591233255F, 0.1594830599F, - 0.1598431361F, 0.1602035540F, 0.1605643131F, 0.1609254131F, - 0.1612868537F, 0.1616486346F, 0.1620107555F, 0.1623732160F, - 0.1627360158F, 0.1630991545F, 0.1634626319F, 0.1638264476F, - 0.1641906013F, 0.1645550926F, 0.1649199212F, 0.1652850869F, - 0.1656505892F, 0.1660164278F, 0.1663826024F, 0.1667491127F, - 0.1671159583F, 0.1674831388F, 0.1678506541F, 0.1682185036F, - 0.1685866872F, 0.1689552044F, 0.1693240549F, 0.1696932384F, - 0.1700627545F, 0.1704326029F, 0.1708027833F, 0.1711732952F, - 0.1715441385F, 0.1719153127F, 0.1722868175F, 0.1726586526F, - 0.1730308176F, 0.1734033121F, 0.1737761359F, 0.1741492886F, - 0.1745227698F, 0.1748965792F, 0.1752707164F, 0.1756451812F, - 0.1760199731F, 0.1763950918F, 0.1767705370F, 0.1771463083F, - 0.1775224054F, 0.1778988279F, 0.1782755754F, 0.1786526477F, - 0.1790300444F, 0.1794077651F, 0.1797858094F, 0.1801641771F, - 0.1805428677F, 0.1809218810F, 0.1813012165F, 0.1816808739F, - 0.1820608528F, 0.1824411530F, 0.1828217739F, 0.1832027154F, - 0.1835839770F, 0.1839655584F, 0.1843474592F, 0.1847296790F, - 0.1851122175F, 0.1854950744F, 0.1858782492F, 0.1862617417F, - 0.1866455514F, 0.1870296780F, 0.1874141211F, 0.1877988804F, - 0.1881839555F, 0.1885693461F, 0.1889550517F, 0.1893410721F, - 0.1897274068F, 0.1901140555F, 0.1905010178F, 0.1908882933F, - 0.1912758818F, 0.1916637828F, 0.1920519959F, 0.1924405208F, - 0.1928293571F, 0.1932185044F, 0.1936079625F, 0.1939977308F, - 0.1943878091F, 0.1947781969F, 0.1951688939F, 0.1955598998F, - 0.1959512141F, 0.1963428364F, 0.1967347665F, 0.1971270038F, - 0.1975195482F, 0.1979123990F, 0.1983055561F, 0.1986990190F, - 0.1990927873F, 0.1994868607F, 0.1998812388F, 0.2002759212F, - 0.2006709075F, 0.2010661974F, 0.2014617904F, 0.2018576862F, - 0.2022538844F, 0.2026503847F, 0.2030471865F, 0.2034442897F, - 0.2038416937F, 0.2042393982F, 0.2046374028F, 0.2050357071F, - 0.2054343107F, 0.2058332133F, 0.2062324145F, 0.2066319138F, - 0.2070317110F, 0.2074318055F, 0.2078321970F, 0.2082328852F, - 0.2086338696F, 0.2090351498F, 0.2094367255F, 0.2098385962F, - 0.2102407617F, 0.2106432213F, 0.2110459749F, 0.2114490220F, - 0.2118523621F, 0.2122559950F, 0.2126599202F, 0.2130641373F, - 0.2134686459F, 0.2138734456F, 0.2142785361F, 0.2146839168F, - 0.2150895875F, 0.2154955478F, 0.2159017972F, 0.2163083353F, - 0.2167151617F, 0.2171222761F, 0.2175296780F, 0.2179373670F, - 0.2183453428F, 0.2187536049F, 0.2191621529F, 0.2195709864F, - 0.2199801051F, 0.2203895085F, 0.2207991961F, 0.2212091677F, - 0.2216194228F, 0.2220299610F, 0.2224407818F, 0.2228518850F, - 0.2232632699F, 0.2236749364F, 0.2240868839F, 0.2244991121F, - 0.2249116204F, 0.2253244086F, 0.2257374763F, 0.2261508229F, - 0.2265644481F, 0.2269783514F, 0.2273925326F, 0.2278069911F, - 0.2282217265F, 0.2286367384F, 0.2290520265F, 0.2294675902F, - 0.2298834292F, 0.2302995431F, 0.2307159314F, 0.2311325937F, - 0.2315495297F, 0.2319667388F, 0.2323842207F, 0.2328019749F, - 0.2332200011F, 0.2336382988F, 0.2340568675F, 0.2344757070F, - 0.2348948166F, 0.2353141961F, 0.2357338450F, 0.2361537629F, - 0.2365739493F, 0.2369944038F, 0.2374151261F, 0.2378361156F, - 0.2382573720F, 0.2386788948F, 0.2391006836F, 0.2395227380F, - 0.2399450575F, 0.2403676417F, 0.2407904902F, 0.2412136026F, - 0.2416369783F, 0.2420606171F, 0.2424845185F, 0.2429086820F, - 0.2433331072F, 0.2437577936F, 0.2441827409F, 0.2446079486F, - 0.2450334163F, 0.2454591435F, 0.2458851298F, 0.2463113747F, - 0.2467378779F, 0.2471646389F, 0.2475916573F, 0.2480189325F, - 0.2484464643F, 0.2488742521F, 0.2493022955F, 0.2497305940F, - 0.2501591473F, 0.2505879549F, 0.2510170163F, 0.2514463311F, - 0.2518758989F, 0.2523057193F, 0.2527357916F, 0.2531661157F, - 0.2535966909F, 0.2540275169F, 0.2544585931F, 0.2548899193F, - 0.2553214948F, 0.2557533193F, 0.2561853924F, 0.2566177135F, - 0.2570502822F, 0.2574830981F, 0.2579161608F, 0.2583494697F, - 0.2587830245F, 0.2592168246F, 0.2596508697F, 0.2600851593F, - 0.2605196929F, 0.2609544701F, 0.2613894904F, 0.2618247534F, - 0.2622602586F, 0.2626960055F, 0.2631319938F, 0.2635682230F, - 0.2640046925F, 0.2644414021F, 0.2648783511F, 0.2653155391F, - 0.2657529657F, 0.2661906305F, 0.2666285329F, 0.2670666725F, - 0.2675050489F, 0.2679436616F, 0.2683825101F, 0.2688215940F, - 0.2692609127F, 0.2697004660F, 0.2701402532F, 0.2705802739F, - 0.2710205278F, 0.2714610142F, 0.2719017327F, 0.2723426830F, - 0.2727838644F, 0.2732252766F, 0.2736669191F, 0.2741087914F, - 0.2745508930F, 0.2749932235F, 0.2754357824F, 0.2758785693F, - 0.2763215837F, 0.2767648251F, 0.2772082930F, 0.2776519870F, - 0.2780959066F, 0.2785400513F, 0.2789844207F, 0.2794290143F, - 0.2798738316F, 0.2803188722F, 0.2807641355F, 0.2812096211F, - 0.2816553286F, 0.2821012574F, 0.2825474071F, 0.2829937773F, - 0.2834403673F, 0.2838871768F, 0.2843342053F, 0.2847814523F, - 0.2852289174F, 0.2856765999F, 0.2861244996F, 0.2865726159F, - 0.2870209482F, 0.2874694962F, 0.2879182594F, 0.2883672372F, - 0.2888164293F, 0.2892658350F, 0.2897154540F, 0.2901652858F, - 0.2906153298F, 0.2910655856F, 0.2915160527F, 0.2919667306F, - 0.2924176189F, 0.2928687171F, 0.2933200246F, 0.2937715409F, - 0.2942232657F, 0.2946751984F, 0.2951273386F, 0.2955796856F, - 0.2960322391F, 0.2964849986F, 0.2969379636F, 0.2973911335F, - 0.2978445080F, 0.2982980864F, 0.2987518684F, 0.2992058534F, - 0.2996600409F, 0.3001144305F, 0.3005690217F, 0.3010238139F, - 0.3014788067F, 0.3019339995F, 0.3023893920F, 0.3028449835F, - 0.3033007736F, 0.3037567618F, 0.3042129477F, 0.3046693306F, - 0.3051259102F, 0.3055826859F, 0.3060396572F, 0.3064968236F, - 0.3069541847F, 0.3074117399F, 0.3078694887F, 0.3083274307F, - 0.3087855653F, 0.3092438920F, 0.3097024104F, 0.3101611199F, - 0.3106200200F, 0.3110791103F, 0.3115383902F, 0.3119978592F, - 0.3124575169F, 0.3129173627F, 0.3133773961F, 0.3138376166F, - 0.3142980238F, 0.3147586170F, 0.3152193959F, 0.3156803598F, - 0.3161415084F, 0.3166028410F, 0.3170643573F, 0.3175260566F, - 0.3179879384F, 0.3184500023F, 0.3189122478F, 0.3193746743F, - 0.3198372814F, 0.3203000685F, 0.3207630351F, 0.3212261807F, - 0.3216895048F, 0.3221530069F, 0.3226166865F, 0.3230805430F, - 0.3235445760F, 0.3240087849F, 0.3244731693F, 0.3249377285F, - 0.3254024622F, 0.3258673698F, 0.3263324507F, 0.3267977045F, - 0.3272631306F, 0.3277287286F, 0.3281944978F, 0.3286604379F, - 0.3291265482F, 0.3295928284F, 0.3300592777F, 0.3305258958F, - 0.3309926821F, 0.3314596361F, 0.3319267573F, 0.3323940451F, - 0.3328614990F, 0.3333291186F, 0.3337969033F, 0.3342648525F, - 0.3347329658F, 0.3352012427F, 0.3356696825F, 0.3361382849F, - 0.3366070492F, 0.3370759749F, 0.3375450616F, 0.3380143087F, - 0.3384837156F, 0.3389532819F, 0.3394230071F, 0.3398928905F, - 0.3403629317F, 0.3408331302F, 0.3413034854F, 0.3417739967F, - 0.3422446638F, 0.3427154860F, 0.3431864628F, 0.3436575938F, - 0.3441288782F, 0.3446003158F, 0.3450719058F, 0.3455436478F, - 0.3460155412F, 0.3464875856F, 0.3469597804F, 0.3474321250F, - 0.3479046189F, 0.3483772617F, 0.3488500527F, 0.3493229914F, - 0.3497960774F, 0.3502693100F, 0.3507426887F, 0.3512162131F, - 0.3516898825F, 0.3521636965F, 0.3526376545F, 0.3531117559F, - 0.3535860003F, 0.3540603870F, 0.3545349157F, 0.3550095856F, - 0.3554843964F, 0.3559593474F, 0.3564344381F, 0.3569096680F, - 0.3573850366F, 0.3578605432F, 0.3583361875F, 0.3588119687F, - 0.3592878865F, 0.3597639402F, 0.3602401293F, 0.3607164533F, - 0.3611929117F, 0.3616695038F, 0.3621462292F, 0.3626230873F, - 0.3631000776F, 0.3635771995F, 0.3640544525F, 0.3645318360F, - 0.3650093496F, 0.3654869926F, 0.3659647645F, 0.3664426648F, - 0.3669206930F, 0.3673988484F, 0.3678771306F, 0.3683555390F, - 0.3688340731F, 0.3693127322F, 0.3697915160F, 0.3702704237F, - 0.3707494549F, 0.3712286091F, 0.3717078857F, 0.3721872840F, - 0.3726668037F, 0.3731464441F, 0.3736262047F, 0.3741060850F, - 0.3745860843F, 0.3750662023F, 0.3755464382F, 0.3760267915F, - 0.3765072618F, 0.3769878484F, 0.3774685509F, 0.3779493686F, - 0.3784303010F, 0.3789113475F, 0.3793925076F, 0.3798737809F, - 0.3803551666F, 0.3808366642F, 0.3813182733F, 0.3817999932F, - 0.3822818234F, 0.3827637633F, 0.3832458124F, 0.3837279702F, - 0.3842102360F, 0.3846926093F, 0.3851750897F, 0.3856576764F, - 0.3861403690F, 0.3866231670F, 0.3871060696F, 0.3875890765F, - 0.3880721870F, 0.3885554007F, 0.3890387168F, 0.3895221349F, - 0.3900056544F, 0.3904892748F, 0.3909729955F, 0.3914568160F, - 0.3919407356F, 0.3924247539F, 0.3929088702F, 0.3933930841F, - 0.3938773949F, 0.3943618021F, 0.3948463052F, 0.3953309035F, - 0.3958155966F, 0.3963003838F, 0.3967852646F, 0.3972702385F, - 0.3977553048F, 0.3982404631F, 0.3987257127F, 0.3992110531F, - 0.3996964838F, 0.4001820041F, 0.4006676136F, 0.4011533116F, - 0.4016390976F, 0.4021249710F, 0.4026109313F, 0.4030969779F, - 0.4035831102F, 0.4040693277F, 0.4045556299F, 0.4050420160F, - 0.4055284857F, 0.4060150383F, 0.4065016732F, 0.4069883899F, - 0.4074751879F, 0.4079620665F, 0.4084490252F, 0.4089360635F, - 0.4094231807F, 0.4099103763F, 0.4103976498F, 0.4108850005F, - 0.4113724280F, 0.4118599315F, 0.4123475107F, 0.4128351648F, - 0.4133228934F, 0.4138106959F, 0.4142985716F, 0.4147865201F, - 0.4152745408F, 0.4157626330F, 0.4162507963F, 0.4167390301F, - 0.4172273337F, 0.4177157067F, 0.4182041484F, 0.4186926583F, - 0.4191812359F, 0.4196698805F, 0.4201585915F, 0.4206473685F, - 0.4211362108F, 0.4216251179F, 0.4221140892F, 0.4226031241F, - 0.4230922221F, 0.4235813826F, 0.4240706050F, 0.4245598887F, - 0.4250492332F, 0.4255386379F, 0.4260281022F, 0.4265176256F, - 0.4270072075F, 0.4274968473F, 0.4279865445F, 0.4284762984F, - 0.4289661086F, 0.4294559743F, 0.4299458951F, 0.4304358704F, - 0.4309258996F, 0.4314159822F, 0.4319061175F, 0.4323963050F, - 0.4328865441F, 0.4333768342F, 0.4338671749F, 0.4343575654F, - 0.4348480052F, 0.4353384938F, 0.4358290306F, 0.4363196149F, - 0.4368102463F, 0.4373009241F, 0.4377916478F, 0.4382824168F, - 0.4387732305F, 0.4392640884F, 0.4397549899F, 0.4402459343F, - 0.4407369212F, 0.4412279499F, 0.4417190198F, 0.4422101305F, - 0.4427012813F, 0.4431924717F, 0.4436837010F, 0.4441749686F, - 0.4446662742F, 0.4451576169F, 0.4456489963F, 0.4461404118F, - 0.4466318628F, 0.4471233487F, 0.4476148690F, 0.4481064230F, - 0.4485980103F, 0.4490896302F, 0.4495812821F, 0.4500729654F, - 0.4505646797F, 0.4510564243F, 0.4515481986F, 0.4520400021F, - 0.4525318341F, 0.4530236942F, 0.4535155816F, 0.4540074959F, - 0.4544994365F, 0.4549914028F, 0.4554833941F, 0.4559754100F, - 0.4564674499F, 0.4569595131F, 0.4574515991F, 0.4579437074F, - 0.4584358372F, 0.4589279881F, 0.4594201595F, 0.4599123508F, - 0.4604045615F, 0.4608967908F, 0.4613890383F, 0.4618813034F, - 0.4623735855F, 0.4628658841F, 0.4633581984F, 0.4638505281F, - 0.4643428724F, 0.4648352308F, 0.4653276028F, 0.4658199877F, - 0.4663123849F, 0.4668047940F, 0.4672972143F, 0.4677896451F, - 0.4682820861F, 0.4687745365F, 0.4692669958F, 0.4697594634F, - 0.4702519387F, 0.4707444211F, 0.4712369102F, 0.4717294052F, - 0.4722219056F, 0.4727144109F, 0.4732069204F, 0.4736994336F, - 0.4741919498F, 0.4746844686F, 0.4751769893F, 0.4756695113F, - 0.4761620341F, 0.4766545571F, 0.4771470797F, 0.4776396013F, - 0.4781321213F, 0.4786246392F, 0.4791171544F, 0.4796096663F, - 0.4801021744F, 0.4805946779F, 0.4810871765F, 0.4815796694F, - 0.4820721561F, 0.4825646360F, 0.4830571086F, 0.4835495732F, - 0.4840420293F, 0.4845344763F, 0.4850269136F, 0.4855193407F, - 0.4860117569F, 0.4865041617F, 0.4869965545F, 0.4874889347F, - 0.4879813018F, 0.4884736551F, 0.4889659941F, 0.4894583182F, - 0.4899506268F, 0.4904429193F, 0.4909351952F, 0.4914274538F, - 0.4919196947F, 0.4924119172F, 0.4929041207F, 0.4933963046F, - 0.4938884685F, 0.4943806116F, 0.4948727335F, 0.4953648335F, - 0.4958569110F, 0.4963489656F, 0.4968409965F, 0.4973330032F, - 0.4978249852F, 0.4983169419F, 0.4988088726F, 0.4993007768F, - 0.4997926539F, 0.5002845034F, 0.5007763247F, 0.5012681171F, - 0.5017598801F, 0.5022516132F, 0.5027433157F, 0.5032349871F, - 0.5037266268F, 0.5042182341F, 0.5047098086F, 0.5052013497F, - 0.5056928567F, 0.5061843292F, 0.5066757664F, 0.5071671679F, - 0.5076585330F, 0.5081498613F, 0.5086411520F, 0.5091324047F, - 0.5096236187F, 0.5101147934F, 0.5106059284F, 0.5110970230F, - 0.5115880766F, 0.5120790887F, 0.5125700587F, 0.5130609860F, - 0.5135518700F, 0.5140427102F, 0.5145335059F, 0.5150242566F, - 0.5155149618F, 0.5160056208F, 0.5164962331F, 0.5169867980F, - 0.5174773151F, 0.5179677837F, 0.5184582033F, 0.5189485733F, - 0.5194388931F, 0.5199291621F, 0.5204193798F, 0.5209095455F, - 0.5213996588F, 0.5218897190F, 0.5223797256F, 0.5228696779F, - 0.5233595755F, 0.5238494177F, 0.5243392039F, 0.5248289337F, - 0.5253186063F, 0.5258082213F, 0.5262977781F, 0.5267872760F, - 0.5272767146F, 0.5277660932F, 0.5282554112F, 0.5287446682F, - 0.5292338635F, 0.5297229965F, 0.5302120667F, 0.5307010736F, - 0.5311900164F, 0.5316788947F, 0.5321677079F, 0.5326564554F, - 0.5331451366F, 0.5336337511F, 0.5341222981F, 0.5346107771F, - 0.5350991876F, 0.5355875290F, 0.5360758007F, 0.5365640021F, - 0.5370521327F, 0.5375401920F, 0.5380281792F, 0.5385160939F, - 0.5390039355F, 0.5394917034F, 0.5399793971F, 0.5404670159F, - 0.5409545594F, 0.5414420269F, 0.5419294179F, 0.5424167318F, - 0.5429039680F, 0.5433911261F, 0.5438782053F, 0.5443652051F, - 0.5448521250F, 0.5453389644F, 0.5458257228F, 0.5463123995F, - 0.5467989940F, 0.5472855057F, 0.5477719341F, 0.5482582786F, - 0.5487445387F, 0.5492307137F, 0.5497168031F, 0.5502028063F, - 0.5506887228F, 0.5511745520F, 0.5516602934F, 0.5521459463F, - 0.5526315103F, 0.5531169847F, 0.5536023690F, 0.5540876626F, - 0.5545728649F, 0.5550579755F, 0.5555429937F, 0.5560279189F, - 0.5565127507F, 0.5569974884F, 0.5574821315F, 0.5579666794F, - 0.5584511316F, 0.5589354875F, 0.5594197465F, 0.5599039080F, - 0.5603879716F, 0.5608719367F, 0.5613558026F, 0.5618395689F, - 0.5623232350F, 0.5628068002F, 0.5632902642F, 0.5637736262F, - 0.5642568858F, 0.5647400423F, 0.5652230953F, 0.5657060442F, - 0.5661888883F, 0.5666716272F, 0.5671542603F, 0.5676367870F, - 0.5681192069F, 0.5686015192F, 0.5690837235F, 0.5695658192F, - 0.5700478058F, 0.5705296827F, 0.5710114494F, 0.5714931052F, - 0.5719746497F, 0.5724560822F, 0.5729374023F, 0.5734186094F, - 0.5738997029F, 0.5743806823F, 0.5748615470F, 0.5753422965F, - 0.5758229301F, 0.5763034475F, 0.5767838480F, 0.5772641310F, - 0.5777442960F, 0.5782243426F, 0.5787042700F, 0.5791840778F, - 0.5796637654F, 0.5801433322F, 0.5806227778F, 0.5811021016F, - 0.5815813029F, 0.5820603814F, 0.5825393363F, 0.5830181673F, - 0.5834968737F, 0.5839754549F, 0.5844539105F, 0.5849322399F, - 0.5854104425F, 0.5858885179F, 0.5863664653F, 0.5868442844F, - 0.5873219746F, 0.5877995353F, 0.5882769660F, 0.5887542661F, - 0.5892314351F, 0.5897084724F, 0.5901853776F, 0.5906621500F, - 0.5911387892F, 0.5916152945F, 0.5920916655F, 0.5925679016F, - 0.5930440022F, 0.5935199669F, 0.5939957950F, 0.5944714861F, - 0.5949470396F, 0.5954224550F, 0.5958977317F, 0.5963728692F, - 0.5968478669F, 0.5973227244F, 0.5977974411F, 0.5982720163F, - 0.5987464497F, 0.5992207407F, 0.5996948887F, 0.6001688932F, - 0.6006427537F, 0.6011164696F, 0.6015900405F, 0.6020634657F, - 0.6025367447F, 0.6030098770F, 0.6034828621F, 0.6039556995F, - 0.6044283885F, 0.6049009288F, 0.6053733196F, 0.6058455606F, - 0.6063176512F, 0.6067895909F, 0.6072613790F, 0.6077330152F, - 0.6082044989F, 0.6086758295F, 0.6091470065F, 0.6096180294F, - 0.6100888977F, 0.6105596108F, 0.6110301682F, 0.6115005694F, - 0.6119708139F, 0.6124409011F, 0.6129108305F, 0.6133806017F, - 0.6138502139F, 0.6143196669F, 0.6147889599F, 0.6152580926F, - 0.6157270643F, 0.6161958746F, 0.6166645230F, 0.6171330088F, - 0.6176013317F, 0.6180694910F, 0.6185374863F, 0.6190053171F, - 0.6194729827F, 0.6199404828F, 0.6204078167F, 0.6208749841F, - 0.6213419842F, 0.6218088168F, 0.6222754811F, 0.6227419768F, - 0.6232083032F, 0.6236744600F, 0.6241404465F, 0.6246062622F, - 0.6250719067F, 0.6255373795F, 0.6260026799F, 0.6264678076F, - 0.6269327619F, 0.6273975425F, 0.6278621487F, 0.6283265800F, - 0.6287908361F, 0.6292549163F, 0.6297188201F, 0.6301825471F, - 0.6306460966F, 0.6311094683F, 0.6315726617F, 0.6320356761F, - 0.6324985111F, 0.6329611662F, 0.6334236410F, 0.6338859348F, - 0.6343480472F, 0.6348099777F, 0.6352717257F, 0.6357332909F, - 0.6361946726F, 0.6366558704F, 0.6371168837F, 0.6375777122F, - 0.6380383552F, 0.6384988123F, 0.6389590830F, 0.6394191668F, - 0.6398790631F, 0.6403387716F, 0.6407982916F, 0.6412576228F, - 0.6417167645F, 0.6421757163F, 0.6426344778F, 0.6430930483F, - 0.6435514275F, 0.6440096149F, 0.6444676098F, 0.6449254119F, - 0.6453830207F, 0.6458404356F, 0.6462976562F, 0.6467546820F, - 0.6472115125F, 0.6476681472F, 0.6481245856F, 0.6485808273F, - 0.6490368717F, 0.6494927183F, 0.6499483667F, 0.6504038164F, - 0.6508590670F, 0.6513141178F, 0.6517689684F, 0.6522236185F, - 0.6526780673F, 0.6531323146F, 0.6535863598F, 0.6540402024F, - 0.6544938419F, 0.6549472779F, 0.6554005099F, 0.6558535373F, - 0.6563063598F, 0.6567589769F, 0.6572113880F, 0.6576635927F, - 0.6581155906F, 0.6585673810F, 0.6590189637F, 0.6594703380F, - 0.6599215035F, 0.6603724598F, 0.6608232064F, 0.6612737427F, - 0.6617240684F, 0.6621741829F, 0.6626240859F, 0.6630737767F, - 0.6635232550F, 0.6639725202F, 0.6644215720F, 0.6648704098F, - 0.6653190332F, 0.6657674417F, 0.6662156348F, 0.6666636121F, - 0.6671113731F, 0.6675589174F, 0.6680062445F, 0.6684533538F, - 0.6689002450F, 0.6693469177F, 0.6697933712F, 0.6702396052F, - 0.6706856193F, 0.6711314129F, 0.6715769855F, 0.6720223369F, - 0.6724674664F, 0.6729123736F, 0.6733570581F, 0.6738015194F, - 0.6742457570F, 0.6746897706F, 0.6751335596F, 0.6755771236F, - 0.6760204621F, 0.6764635747F, 0.6769064609F, 0.6773491204F, - 0.6777915525F, 0.6782337570F, 0.6786757332F, 0.6791174809F, - 0.6795589995F, 0.6800002886F, 0.6804413477F, 0.6808821765F, - 0.6813227743F, 0.6817631409F, 0.6822032758F, 0.6826431785F, - 0.6830828485F, 0.6835222855F, 0.6839614890F, 0.6844004585F, - 0.6848391936F, 0.6852776939F, 0.6857159589F, 0.6861539883F, - 0.6865917815F, 0.6870293381F, 0.6874666576F, 0.6879037398F, - 0.6883405840F, 0.6887771899F, 0.6892135571F, 0.6896496850F, - 0.6900855733F, 0.6905212216F, 0.6909566294F, 0.6913917963F, - 0.6918267218F, 0.6922614055F, 0.6926958471F, 0.6931300459F, - 0.6935640018F, 0.6939977141F, 0.6944311825F, 0.6948644066F, - 0.6952973859F, 0.6957301200F, 0.6961626085F, 0.6965948510F, - 0.6970268470F, 0.6974585961F, 0.6978900980F, 0.6983213521F, - 0.6987523580F, 0.6991831154F, 0.6996136238F, 0.7000438828F, - 0.7004738921F, 0.7009036510F, 0.7013331594F, 0.7017624166F, - 0.7021914224F, 0.7026201763F, 0.7030486779F, 0.7034769268F, - 0.7039049226F, 0.7043326648F, 0.7047601531F, 0.7051873870F, - 0.7056143662F, 0.7060410902F, 0.7064675586F, 0.7068937711F, - 0.7073197271F, 0.7077454264F, 0.7081708684F, 0.7085960529F, - 0.7090209793F, 0.7094456474F, 0.7098700566F, 0.7102942066F, - 0.7107180970F, 0.7111417274F, 0.7115650974F, 0.7119882066F, - 0.7124110545F, 0.7128336409F, 0.7132559653F, 0.7136780272F, - 0.7140998264F, 0.7145213624F, 0.7149426348F, 0.7153636433F, - 0.7157843874F, 0.7162048668F, 0.7166250810F, 0.7170450296F, - 0.7174647124F, 0.7178841289F, 0.7183032786F, 0.7187221613F, - 0.7191407765F, 0.7195591239F, 0.7199772030F, 0.7203950135F, - 0.7208125550F, 0.7212298271F, 0.7216468294F, 0.7220635616F, - 0.7224800233F, 0.7228962140F, 0.7233121335F, 0.7237277813F, - 0.7241431571F, 0.7245582604F, 0.7249730910F, 0.7253876484F, - 0.7258019322F, 0.7262159422F, 0.7266296778F, 0.7270431388F, - 0.7274563247F, 0.7278692353F, 0.7282818700F, 0.7286942287F, - 0.7291063108F, 0.7295181160F, 0.7299296440F, 0.7303408944F, - 0.7307518669F, 0.7311625609F, 0.7315729763F, 0.7319831126F, - 0.7323929695F, 0.7328025466F, 0.7332118435F, 0.7336208600F, - 0.7340295955F, 0.7344380499F, 0.7348462226F, 0.7352541134F, - 0.7356617220F, 0.7360690478F, 0.7364760907F, 0.7368828502F, - 0.7372893259F, 0.7376955176F, 0.7381014249F, 0.7385070475F, - 0.7389123849F, 0.7393174368F, 0.7397222029F, 0.7401266829F, - 0.7405308763F, 0.7409347829F, 0.7413384023F, 0.7417417341F, - 0.7421447780F, 0.7425475338F, 0.7429500009F, 0.7433521791F, - 0.7437540681F, 0.7441556674F, 0.7445569769F, 0.7449579960F, - 0.7453587245F, 0.7457591621F, 0.7461593084F, 0.7465591631F, - 0.7469587259F, 0.7473579963F, 0.7477569741F, 0.7481556590F, - 0.7485540506F, 0.7489521486F, 0.7493499526F, 0.7497474623F, - 0.7501446775F, 0.7505415977F, 0.7509382227F, 0.7513345521F, - 0.7517305856F, 0.7521263229F, 0.7525217636F, 0.7529169074F, - 0.7533117541F, 0.7537063032F, 0.7541005545F, 0.7544945076F, - 0.7548881623F, 0.7552815182F, 0.7556745749F, 0.7560673323F, - 0.7564597899F, 0.7568519474F, 0.7572438046F, 0.7576353611F, - 0.7580266166F, 0.7584175708F, 0.7588082235F, 0.7591985741F, - 0.7595886226F, 0.7599783685F, 0.7603678116F, 0.7607569515F, - 0.7611457879F, 0.7615343206F, 0.7619225493F, 0.7623104735F, - 0.7626980931F, 0.7630854078F, 0.7634724171F, 0.7638591209F, - 0.7642455188F, 0.7646316106F, 0.7650173959F, 0.7654028744F, - 0.7657880459F, 0.7661729100F, 0.7665574664F, 0.7669417150F, - 0.7673256553F, 0.7677092871F, 0.7680926100F, 0.7684756239F, - 0.7688583284F, 0.7692407232F, 0.7696228080F, 0.7700045826F, - 0.7703860467F, 0.7707671999F, 0.7711480420F, 0.7715285728F, - 0.7719087918F, 0.7722886989F, 0.7726682938F, 0.7730475762F, - 0.7734265458F, 0.7738052023F, 0.7741835454F, 0.7745615750F, - 0.7749392906F, 0.7753166921F, 0.7756937791F, 0.7760705514F, - 0.7764470087F, 0.7768231508F, 0.7771989773F, 0.7775744880F, - 0.7779496827F, 0.7783245610F, 0.7786991227F, 0.7790733676F, - 0.7794472953F, 0.7798209056F, 0.7801941982F, 0.7805671729F, - 0.7809398294F, 0.7813121675F, 0.7816841869F, 0.7820558873F, - 0.7824272684F, 0.7827983301F, 0.7831690720F, 0.7835394940F, - 0.7839095957F, 0.7842793768F, 0.7846488373F, 0.7850179767F, - 0.7853867948F, 0.7857552914F, 0.7861234663F, 0.7864913191F, - 0.7868588497F, 0.7872260578F, 0.7875929431F, 0.7879595055F, - 0.7883257445F, 0.7886916601F, 0.7890572520F, 0.7894225198F, - 0.7897874635F, 0.7901520827F, 0.7905163772F, 0.7908803468F, - 0.7912439912F, 0.7916073102F, 0.7919703035F, 0.7923329710F, - 0.7926953124F, 0.7930573274F, 0.7934190158F, 0.7937803774F, - 0.7941414120F, 0.7945021193F, 0.7948624991F, 0.7952225511F, - 0.7955822752F, 0.7959416711F, 0.7963007387F, 0.7966594775F, - 0.7970178875F, 0.7973759685F, 0.7977337201F, 0.7980911422F, - 0.7984482346F, 0.7988049970F, 0.7991614292F, 0.7995175310F, - 0.7998733022F, 0.8002287426F, 0.8005838519F, 0.8009386299F, - 0.8012930765F, 0.8016471914F, 0.8020009744F, 0.8023544253F, - 0.8027075438F, 0.8030603298F, 0.8034127831F, 0.8037649035F, - 0.8041166906F, 0.8044681445F, 0.8048192647F, 0.8051700512F, - 0.8055205038F, 0.8058706222F, 0.8062204062F, 0.8065698556F, - 0.8069189702F, 0.8072677499F, 0.8076161944F, 0.8079643036F, - 0.8083120772F, 0.8086595151F, 0.8090066170F, 0.8093533827F, - 0.8096998122F, 0.8100459051F, 0.8103916613F, 0.8107370806F, - 0.8110821628F, 0.8114269077F, 0.8117713151F, 0.8121153849F, - 0.8124591169F, 0.8128025108F, 0.8131455666F, 0.8134882839F, - 0.8138306627F, 0.8141727027F, 0.8145144038F, 0.8148557658F, - 0.8151967886F, 0.8155374718F, 0.8158778154F, 0.8162178192F, - 0.8165574830F, 0.8168968067F, 0.8172357900F, 0.8175744328F, - 0.8179127349F, 0.8182506962F, 0.8185883164F, 0.8189255955F, - 0.8192625332F, 0.8195991295F, 0.8199353840F, 0.8202712967F, - 0.8206068673F, 0.8209420958F, 0.8212769820F, 0.8216115256F, - 0.8219457266F, 0.8222795848F, 0.8226131000F, 0.8229462721F, - 0.8232791009F, 0.8236115863F, 0.8239437280F, 0.8242755260F, - 0.8246069801F, 0.8249380901F, 0.8252688559F, 0.8255992774F, - 0.8259293544F, 0.8262590867F, 0.8265884741F, 0.8269175167F, - 0.8272462141F, 0.8275745663F, 0.8279025732F, 0.8282302344F, - 0.8285575501F, 0.8288845199F, 0.8292111437F, 0.8295374215F, - 0.8298633530F, 0.8301889382F, 0.8305141768F, 0.8308390688F, - 0.8311636141F, 0.8314878124F, 0.8318116637F, 0.8321351678F, - 0.8324583246F, 0.8327811340F, 0.8331035957F, 0.8334257098F, - 0.8337474761F, 0.8340688944F, 0.8343899647F, 0.8347106867F, - 0.8350310605F, 0.8353510857F, 0.8356707624F, 0.8359900904F, - 0.8363090696F, 0.8366276999F, 0.8369459811F, 0.8372639131F, - 0.8375814958F, 0.8378987292F, 0.8382156130F, 0.8385321472F, - 0.8388483316F, 0.8391641662F, 0.8394796508F, 0.8397947853F, - 0.8401095697F, 0.8404240037F, 0.8407380873F, 0.8410518204F, - 0.8413652029F, 0.8416782347F, 0.8419909156F, 0.8423032456F, - 0.8426152245F, 0.8429268523F, 0.8432381289F, 0.8435490541F, - 0.8438596279F, 0.8441698502F, 0.8444797208F, 0.8447892396F, - 0.8450984067F, 0.8454072218F, 0.8457156849F, 0.8460237959F, - 0.8463315547F, 0.8466389612F, 0.8469460154F, 0.8472527170F, - 0.8475590661F, 0.8478650625F, 0.8481707063F, 0.8484759971F, - 0.8487809351F, 0.8490855201F, 0.8493897521F, 0.8496936308F, - 0.8499971564F, 0.8503003286F, 0.8506031474F, 0.8509056128F, - 0.8512077246F, 0.8515094828F, 0.8518108872F, 0.8521119379F, - 0.8524126348F, 0.8527129777F, 0.8530129666F, 0.8533126015F, - 0.8536118822F, 0.8539108087F, 0.8542093809F, 0.8545075988F, - 0.8548054623F, 0.8551029712F, 0.8554001257F, 0.8556969255F, - 0.8559933707F, 0.8562894611F, 0.8565851968F, 0.8568805775F, - 0.8571756034F, 0.8574702743F, 0.8577645902F, 0.8580585509F, - 0.8583521566F, 0.8586454070F, 0.8589383021F, 0.8592308420F, - 0.8595230265F, 0.8598148556F, 0.8601063292F, 0.8603974473F, - 0.8606882098F, 0.8609786167F, 0.8612686680F, 0.8615583636F, - 0.8618477034F, 0.8621366874F, 0.8624253156F, 0.8627135878F, - 0.8630015042F, 0.8632890646F, 0.8635762690F, 0.8638631173F, - 0.8641496096F, 0.8644357457F, 0.8647215257F, 0.8650069495F, - 0.8652920171F, 0.8655767283F, 0.8658610833F, 0.8661450820F, - 0.8664287243F, 0.8667120102F, 0.8669949397F, 0.8672775127F, - 0.8675597293F, 0.8678415894F, 0.8681230929F, 0.8684042398F, - 0.8686850302F, 0.8689654640F, 0.8692455412F, 0.8695252617F, - 0.8698046255F, 0.8700836327F, 0.8703622831F, 0.8706405768F, - 0.8709185138F, 0.8711960940F, 0.8714733174F, 0.8717501840F, - 0.8720266939F, 0.8723028469F, 0.8725786430F, 0.8728540824F, - 0.8731291648F, 0.8734038905F, 0.8736782592F, 0.8739522711F, - 0.8742259261F, 0.8744992242F, 0.8747721653F, 0.8750447496F, - 0.8753169770F, 0.8755888475F, 0.8758603611F, 0.8761315177F, - 0.8764023175F, 0.8766727603F, 0.8769428462F, 0.8772125752F, - 0.8774819474F, 0.8777509626F, 0.8780196209F, 0.8782879224F, - 0.8785558669F, 0.8788234546F, 0.8790906854F, 0.8793575594F, - 0.8796240765F, 0.8798902368F, 0.8801560403F, 0.8804214870F, - 0.8806865768F, 0.8809513099F, 0.8812156863F, 0.8814797059F, - 0.8817433687F, 0.8820066749F, 0.8822696243F, 0.8825322171F, - 0.8827944532F, 0.8830563327F, 0.8833178556F, 0.8835790219F, - 0.8838398316F, 0.8841002848F, 0.8843603815F, 0.8846201217F, - 0.8848795054F, 0.8851385327F, 0.8853972036F, 0.8856555182F, - 0.8859134764F, 0.8861710783F, 0.8864283239F, 0.8866852133F, - 0.8869417464F, 0.8871979234F, 0.8874537443F, 0.8877092090F, - 0.8879643177F, 0.8882190704F, 0.8884734671F, 0.8887275078F, - 0.8889811927F, 0.8892345216F, 0.8894874948F, 0.8897401122F, - 0.8899923738F, 0.8902442798F, 0.8904958301F, 0.8907470248F, - 0.8909978640F, 0.8912483477F, 0.8914984759F, 0.8917482487F, - 0.8919976662F, 0.8922467284F, 0.8924954353F, 0.8927437871F, - 0.8929917837F, 0.8932394252F, 0.8934867118F, 0.8937336433F, - 0.8939802199F, 0.8942264417F, 0.8944723087F, 0.8947178210F, - 0.8949629785F, 0.8952077815F, 0.8954522299F, 0.8956963239F, - 0.8959400634F, 0.8961834486F, 0.8964264795F, 0.8966691561F, - 0.8969114786F, 0.8971534470F, 0.8973950614F, 0.8976363219F, - 0.8978772284F, 0.8981177812F, 0.8983579802F, 0.8985978256F, - 0.8988373174F, 0.8990764556F, 0.8993152405F, 0.8995536720F, - 0.8997917502F, 0.9000294751F, 0.9002668470F, 0.9005038658F, - 0.9007405317F, 0.9009768446F, 0.9012128048F, 0.9014484123F, - 0.9016836671F, 0.9019185693F, 0.9021531191F, 0.9023873165F, - 0.9026211616F, 0.9028546546F, 0.9030877954F, 0.9033205841F, - 0.9035530210F, 0.9037851059F, 0.9040168392F, 0.9042482207F, - 0.9044792507F, 0.9047099293F, 0.9049402564F, 0.9051702323F, - 0.9053998569F, 0.9056291305F, 0.9058580531F, 0.9060866248F, - 0.9063148457F, 0.9065427159F, 0.9067702355F, 0.9069974046F, - 0.9072242233F, 0.9074506917F, 0.9076768100F, 0.9079025782F, - 0.9081279964F, 0.9083530647F, 0.9085777833F, 0.9088021523F, - 0.9090261717F, 0.9092498417F, 0.9094731623F, 0.9096961338F, - 0.9099187561F, 0.9101410295F, 0.9103629540F, 0.9105845297F, - 0.9108057568F, 0.9110266354F, 0.9112471656F, 0.9114673475F, - 0.9116871812F, 0.9119066668F, 0.9121258046F, 0.9123445945F, - 0.9125630367F, 0.9127811314F, 0.9129988786F, 0.9132162785F, - 0.9134333312F, 0.9136500368F, 0.9138663954F, 0.9140824073F, - 0.9142980724F, 0.9145133910F, 0.9147283632F, 0.9149429890F, - 0.9151572687F, 0.9153712023F, 0.9155847900F, 0.9157980319F, - 0.9160109282F, 0.9162234790F, 0.9164356844F, 0.9166475445F, - 0.9168590595F, 0.9170702296F, 0.9172810548F, 0.9174915354F, - 0.9177016714F, 0.9179114629F, 0.9181209102F, 0.9183300134F, - 0.9185387726F, 0.9187471879F, 0.9189552595F, 0.9191629876F, - 0.9193703723F, 0.9195774136F, 0.9197841119F, 0.9199904672F, - 0.9201964797F, 0.9204021495F, 0.9206074767F, 0.9208124616F, - 0.9210171043F, 0.9212214049F, 0.9214253636F, 0.9216289805F, - 0.9218322558F, 0.9220351896F, 0.9222377821F, 0.9224400335F, - 0.9226419439F, 0.9228435134F, 0.9230447423F, 0.9232456307F, - 0.9234461787F, 0.9236463865F, 0.9238462543F, 0.9240457822F, - 0.9242449704F, 0.9244438190F, 0.9246423282F, 0.9248404983F, - 0.9250383293F, 0.9252358214F, 0.9254329747F, 0.9256297896F, - 0.9258262660F, 0.9260224042F, 0.9262182044F, 0.9264136667F, - 0.9266087913F, 0.9268035783F, 0.9269980280F, 0.9271921405F, - 0.9273859160F, 0.9275793546F, 0.9277724566F, 0.9279652221F, - 0.9281576513F, 0.9283497443F, 0.9285415014F, 0.9287329227F, - 0.9289240084F, 0.9291147586F, 0.9293051737F, 0.9294952536F, - 0.9296849987F, 0.9298744091F, 0.9300634850F, 0.9302522266F, - 0.9304406340F, 0.9306287074F, 0.9308164471F, 0.9310038532F, - 0.9311909259F, 0.9313776654F, 0.9315640719F, 0.9317501455F, - 0.9319358865F, 0.9321212951F, 0.9323063713F, 0.9324911155F, - 0.9326755279F, 0.9328596085F, 0.9330433577F, 0.9332267756F, - 0.9334098623F, 0.9335926182F, 0.9337750434F, 0.9339571380F, - 0.9341389023F, 0.9343203366F, 0.9345014409F, 0.9346822155F, - 0.9348626606F, 0.9350427763F, 0.9352225630F, 0.9354020207F, - 0.9355811498F, 0.9357599503F, 0.9359384226F, 0.9361165667F, - 0.9362943830F, 0.9364718716F, 0.9366490327F, 0.9368258666F, - 0.9370023733F, 0.9371785533F, 0.9373544066F, 0.9375299335F, - 0.9377051341F, 0.9378800087F, 0.9380545576F, 0.9382287809F, - 0.9384026787F, 0.9385762515F, 0.9387494993F, 0.9389224223F, - 0.9390950209F, 0.9392672951F, 0.9394392453F, 0.9396108716F, - 0.9397821743F, 0.9399531536F, 0.9401238096F, 0.9402941427F, - 0.9404641530F, 0.9406338407F, 0.9408032061F, 0.9409722495F, - 0.9411409709F, 0.9413093707F, 0.9414774491F, 0.9416452062F, - 0.9418126424F, 0.9419797579F, 0.9421465528F, 0.9423130274F, - 0.9424791819F, 0.9426450166F, 0.9428105317F, 0.9429757274F, - 0.9431406039F, 0.9433051616F, 0.9434694005F, 0.9436333209F, - 0.9437969232F, 0.9439602074F, 0.9441231739F, 0.9442858229F, - 0.9444481545F, 0.9446101691F, 0.9447718669F, 0.9449332481F, - 0.9450943129F, 0.9452550617F, 0.9454154945F, 0.9455756118F, - 0.9457354136F, 0.9458949003F, 0.9460540721F, 0.9462129292F, - 0.9463714719F, 0.9465297003F, 0.9466876149F, 0.9468452157F, - 0.9470025031F, 0.9471594772F, 0.9473161384F, 0.9474724869F, - 0.9476285229F, 0.9477842466F, 0.9479396584F, 0.9480947585F, - 0.9482495470F, 0.9484040243F, 0.9485581906F, 0.9487120462F, - 0.9488655913F, 0.9490188262F, 0.9491717511F, 0.9493243662F, - 0.9494766718F, 0.9496286683F, 0.9497803557F, 0.9499317345F, - 0.9500828047F, 0.9502335668F, 0.9503840209F, 0.9505341673F, - 0.9506840062F, 0.9508335380F, 0.9509827629F, 0.9511316810F, - 0.9512802928F, 0.9514285984F, 0.9515765982F, 0.9517242923F, - 0.9518716810F, 0.9520187646F, 0.9521655434F, 0.9523120176F, - 0.9524581875F, 0.9526040534F, 0.9527496154F, 0.9528948739F, - 0.9530398292F, 0.9531844814F, 0.9533288310F, 0.9534728780F, - 0.9536166229F, 0.9537600659F, 0.9539032071F, 0.9540460470F, - 0.9541885858F, 0.9543308237F, 0.9544727611F, 0.9546143981F, - 0.9547557351F, 0.9548967723F, 0.9550375100F, 0.9551779485F, - 0.9553180881F, 0.9554579290F, 0.9555974714F, 0.9557367158F, - 0.9558756623F, 0.9560143112F, 0.9561526628F, 0.9562907174F, - 0.9564284752F, 0.9565659366F, 0.9567031017F, 0.9568399710F, - 0.9569765446F, 0.9571128229F, 0.9572488061F, 0.9573844944F, - 0.9575198883F, 0.9576549879F, 0.9577897936F, 0.9579243056F, - 0.9580585242F, 0.9581924497F, 0.9583260824F, 0.9584594226F, - 0.9585924705F, 0.9587252264F, 0.9588576906F, 0.9589898634F, - 0.9591217452F, 0.9592533360F, 0.9593846364F, 0.9595156465F, - 0.9596463666F, 0.9597767971F, 0.9599069382F, 0.9600367901F, - 0.9601663533F, 0.9602956279F, 0.9604246143F, 0.9605533128F, - 0.9606817236F, 0.9608098471F, 0.9609376835F, 0.9610652332F, - 0.9611924963F, 0.9613194733F, 0.9614461644F, 0.9615725699F, - 0.9616986901F, 0.9618245253F, 0.9619500757F, 0.9620753418F, - 0.9622003238F, 0.9623250219F, 0.9624494365F, 0.9625735679F, - 0.9626974163F, 0.9628209821F, 0.9629442656F, 0.9630672671F, - 0.9631899868F, 0.9633124251F, 0.9634345822F, 0.9635564585F, - 0.9636780543F, 0.9637993699F, 0.9639204056F, 0.9640411616F, - 0.9641616383F, 0.9642818359F, 0.9644017549F, 0.9645213955F, - 0.9646407579F, 0.9647598426F, 0.9648786497F, 0.9649971797F, - 0.9651154328F, 0.9652334092F, 0.9653511095F, 0.9654685337F, - 0.9655856823F, 0.9657025556F, 0.9658191538F, 0.9659354773F, - 0.9660515263F, 0.9661673013F, 0.9662828024F, 0.9663980300F, - 0.9665129845F, 0.9666276660F, 0.9667420750F, 0.9668562118F, - 0.9669700766F, 0.9670836698F, 0.9671969917F, 0.9673100425F, - 0.9674228227F, 0.9675353325F, 0.9676475722F, 0.9677595422F, - 0.9678712428F, 0.9679826742F, 0.9680938368F, 0.9682047309F, - 0.9683153569F, 0.9684257150F, 0.9685358056F, 0.9686456289F, - 0.9687551853F, 0.9688644752F, 0.9689734987F, 0.9690822564F, - 0.9691907483F, 0.9692989750F, 0.9694069367F, 0.9695146337F, - 0.9696220663F, 0.9697292349F, 0.9698361398F, 0.9699427813F, - 0.9700491597F, 0.9701552754F, 0.9702611286F, 0.9703667197F, - 0.9704720490F, 0.9705771169F, 0.9706819236F, 0.9707864695F, - 0.9708907549F, 0.9709947802F, 0.9710985456F, 0.9712020514F, - 0.9713052981F, 0.9714082859F, 0.9715110151F, 0.9716134862F, - 0.9717156993F, 0.9718176549F, 0.9719193532F, 0.9720207946F, - 0.9721219794F, 0.9722229080F, 0.9723235806F, 0.9724239976F, - 0.9725241593F, 0.9726240661F, 0.9727237183F, 0.9728231161F, - 0.9729222601F, 0.9730211503F, 0.9731197873F, 0.9732181713F, - 0.9733163027F, 0.9734141817F, 0.9735118088F, 0.9736091842F, - 0.9737063083F, 0.9738031814F, 0.9738998039F, 0.9739961760F, - 0.9740922981F, 0.9741881706F, 0.9742837938F, 0.9743791680F, - 0.9744742935F, 0.9745691707F, 0.9746637999F, 0.9747581814F, - 0.9748523157F, 0.9749462029F, 0.9750398435F, 0.9751332378F, - 0.9752263861F, 0.9753192887F, 0.9754119461F, 0.9755043585F, - 0.9755965262F, 0.9756884496F, 0.9757801291F, 0.9758715650F, - 0.9759627575F, 0.9760537071F, 0.9761444141F, 0.9762348789F, - 0.9763251016F, 0.9764150828F, 0.9765048228F, 0.9765943218F, - 0.9766835802F, 0.9767725984F, 0.9768613767F, 0.9769499154F, - 0.9770382149F, 0.9771262755F, 0.9772140976F, 0.9773016815F, - 0.9773890275F, 0.9774761360F, 0.9775630073F, 0.9776496418F, - 0.9777360398F, 0.9778222016F, 0.9779081277F, 0.9779938182F, - 0.9780792736F, 0.9781644943F, 0.9782494805F, 0.9783342326F, - 0.9784187509F, 0.9785030359F, 0.9785870877F, 0.9786709069F, - 0.9787544936F, 0.9788378484F, 0.9789209714F, 0.9790038631F, - 0.9790865238F, 0.9791689538F, 0.9792511535F, 0.9793331232F, - 0.9794148633F, 0.9794963742F, 0.9795776561F, 0.9796587094F, - 0.9797395345F, 0.9798201316F, 0.9799005013F, 0.9799806437F, - 0.9800605593F, 0.9801402483F, 0.9802197112F, 0.9802989483F, - 0.9803779600F, 0.9804567465F, 0.9805353082F, 0.9806136455F, - 0.9806917587F, 0.9807696482F, 0.9808473143F, 0.9809247574F, - 0.9810019778F, 0.9810789759F, 0.9811557519F, 0.9812323064F, - 0.9813086395F, 0.9813847517F, 0.9814606433F, 0.9815363147F, - 0.9816117662F, 0.9816869981F, 0.9817620108F, 0.9818368047F, - 0.9819113801F, 0.9819857374F, 0.9820598769F, 0.9821337989F, - 0.9822075038F, 0.9822809920F, 0.9823542638F, 0.9824273195F, - 0.9825001596F, 0.9825727843F, 0.9826451940F, 0.9827173891F, - 0.9827893700F, 0.9828611368F, 0.9829326901F, 0.9830040302F, - 0.9830751574F, 0.9831460720F, 0.9832167745F, 0.9832872652F, - 0.9833575444F, 0.9834276124F, 0.9834974697F, 0.9835671166F, - 0.9836365535F, 0.9837057806F, 0.9837747983F, 0.9838436071F, - 0.9839122072F, 0.9839805990F, 0.9840487829F, 0.9841167591F, - 0.9841845282F, 0.9842520903F, 0.9843194459F, 0.9843865953F, - 0.9844535389F, 0.9845202771F, 0.9845868101F, 0.9846531383F, - 0.9847192622F, 0.9847851820F, 0.9848508980F, 0.9849164108F, - 0.9849817205F, 0.9850468276F, 0.9851117324F, 0.9851764352F, - 0.9852409365F, 0.9853052366F, 0.9853693358F, 0.9854332344F, - 0.9854969330F, 0.9855604317F, 0.9856237309F, 0.9856868310F, - 0.9857497325F, 0.9858124355F, 0.9858749404F, 0.9859372477F, - 0.9859993577F, 0.9860612707F, 0.9861229871F, 0.9861845072F, - 0.9862458315F, 0.9863069601F, 0.9863678936F, 0.9864286322F, - 0.9864891764F, 0.9865495264F, 0.9866096826F, 0.9866696454F, - 0.9867294152F, 0.9867889922F, 0.9868483769F, 0.9869075695F, - 0.9869665706F, 0.9870253803F, 0.9870839991F, 0.9871424273F, - 0.9872006653F, 0.9872587135F, 0.9873165721F, 0.9873742415F, - 0.9874317222F, 0.9874890144F, 0.9875461185F, 0.9876030348F, - 0.9876597638F, 0.9877163057F, 0.9877726610F, 0.9878288300F, - 0.9878848130F, 0.9879406104F, 0.9879962225F, 0.9880516497F, - 0.9881068924F, 0.9881619509F, 0.9882168256F, 0.9882715168F, - 0.9883260249F, 0.9883803502F, 0.9884344931F, 0.9884884539F, - 0.9885422331F, 0.9885958309F, 0.9886492477F, 0.9887024838F, - 0.9887555397F, 0.9888084157F, 0.9888611120F, 0.9889136292F, - 0.9889659675F, 0.9890181273F, 0.9890701089F, 0.9891219128F, - 0.9891735392F, 0.9892249885F, 0.9892762610F, 0.9893273572F, - 0.9893782774F, 0.9894290219F, 0.9894795911F, 0.9895299853F, - 0.9895802049F, 0.9896302502F, 0.9896801217F, 0.9897298196F, - 0.9897793443F, 0.9898286961F, 0.9898778755F, 0.9899268828F, - 0.9899757183F, 0.9900243823F, 0.9900728753F, 0.9901211976F, - 0.9901693495F, 0.9902173314F, 0.9902651436F, 0.9903127865F, - 0.9903602605F, 0.9904075659F, 0.9904547031F, 0.9905016723F, - 0.9905484740F, 0.9905951086F, 0.9906415763F, 0.9906878775F, - 0.9907340126F, 0.9907799819F, 0.9908257858F, 0.9908714247F, - 0.9909168988F, 0.9909622086F, 0.9910073543F, 0.9910523364F, - 0.9910971552F, 0.9911418110F, 0.9911863042F, 0.9912306351F, - 0.9912748042F, 0.9913188117F, 0.9913626580F, 0.9914063435F, - 0.9914498684F, 0.9914932333F, 0.9915364383F, 0.9915794839F, - 0.9916223703F, 0.9916650981F, 0.9917076674F, 0.9917500787F, - 0.9917923323F, 0.9918344286F, 0.9918763679F, 0.9919181505F, - 0.9919597769F, 0.9920012473F, 0.9920425621F, 0.9920837217F, - 0.9921247263F, 0.9921655765F, 0.9922062724F, 0.9922468145F, - 0.9922872030F, 0.9923274385F, 0.9923675211F, 0.9924074513F, - 0.9924472294F, 0.9924868557F, 0.9925263306F, 0.9925656544F, - 0.9926048275F, 0.9926438503F, 0.9926827230F, 0.9927214461F, - 0.9927600199F, 0.9927984446F, 0.9928367208F, 0.9928748486F, - 0.9929128285F, 0.9929506608F, 0.9929883459F, 0.9930258841F, - 0.9930632757F, 0.9931005211F, 0.9931376207F, 0.9931745747F, - 0.9932113836F, 0.9932480476F, 0.9932845671F, 0.9933209425F, - 0.9933571742F, 0.9933932623F, 0.9934292074F, 0.9934650097F, - 0.9935006696F, 0.9935361874F, 0.9935715635F, 0.9936067982F, - 0.9936418919F, 0.9936768448F, 0.9937116574F, 0.9937463300F, - 0.9937808629F, 0.9938152565F, 0.9938495111F, 0.9938836271F, - 0.9939176047F, 0.9939514444F, 0.9939851465F, 0.9940187112F, - 0.9940521391F, 0.9940854303F, 0.9941185853F, 0.9941516044F, - 0.9941844879F, 0.9942172361F, 0.9942498495F, 0.9942823283F, - 0.9943146729F, 0.9943468836F, 0.9943789608F, 0.9944109047F, - 0.9944427158F, 0.9944743944F, 0.9945059408F, 0.9945373553F, - 0.9945686384F, 0.9945997902F, 0.9946308112F, 0.9946617017F, - 0.9946924621F, 0.9947230926F, 0.9947535937F, 0.9947839656F, - 0.9948142086F, 0.9948443232F, 0.9948743097F, 0.9949041683F, - 0.9949338995F, 0.9949635035F, 0.9949929807F, 0.9950223315F, - 0.9950515561F, 0.9950806549F, 0.9951096282F, 0.9951384764F, - 0.9951671998F, 0.9951957987F, 0.9952242735F, 0.9952526245F, - 0.9952808520F, 0.9953089564F, 0.9953369380F, 0.9953647971F, - 0.9953925340F, 0.9954201491F, 0.9954476428F, 0.9954750153F, - 0.9955022670F, 0.9955293981F, 0.9955564092F, 0.9955833003F, - 0.9956100720F, 0.9956367245F, 0.9956632582F, 0.9956896733F, - 0.9957159703F, 0.9957421494F, 0.9957682110F, 0.9957941553F, - 0.9958199828F, 0.9958456937F, 0.9958712884F, 0.9958967672F, - 0.9959221305F, 0.9959473784F, 0.9959725115F, 0.9959975300F, - 0.9960224342F, 0.9960472244F, 0.9960719011F, 0.9960964644F, - 0.9961209148F, 0.9961452525F, 0.9961694779F, 0.9961935913F, - 0.9962175930F, 0.9962414834F, 0.9962652627F, 0.9962889313F, - 0.9963124895F, 0.9963359377F, 0.9963592761F, 0.9963825051F, - 0.9964056250F, 0.9964286361F, 0.9964515387F, 0.9964743332F, - 0.9964970198F, 0.9965195990F, 0.9965420709F, 0.9965644360F, - 0.9965866946F, 0.9966088469F, 0.9966308932F, 0.9966528340F, - 0.9966746695F, 0.9966964001F, 0.9967180260F, 0.9967395475F, - 0.9967609651F, 0.9967822789F, 0.9968034894F, 0.9968245968F, - 0.9968456014F, 0.9968665036F, 0.9968873037F, 0.9969080019F, - 0.9969285987F, 0.9969490942F, 0.9969694889F, 0.9969897830F, - 0.9970099769F, 0.9970300708F, 0.9970500651F, 0.9970699601F, - 0.9970897561F, 0.9971094533F, 0.9971290522F, 0.9971485531F, - 0.9971679561F, 0.9971872617F, 0.9972064702F, 0.9972255818F, - 0.9972445968F, 0.9972635157F, 0.9972823386F, 0.9973010659F, - 0.9973196980F, 0.9973382350F, 0.9973566773F, 0.9973750253F, - 0.9973932791F, 0.9974114392F, 0.9974295059F, 0.9974474793F, - 0.9974653599F, 0.9974831480F, 0.9975008438F, 0.9975184476F, - 0.9975359598F, 0.9975533806F, 0.9975707104F, 0.9975879495F, - 0.9976050981F, 0.9976221566F, 0.9976391252F, 0.9976560043F, - 0.9976727941F, 0.9976894950F, 0.9977061073F, 0.9977226312F, - 0.9977390671F, 0.9977554152F, 0.9977716759F, 0.9977878495F, - 0.9978039361F, 0.9978199363F, 0.9978358501F, 0.9978516780F, - 0.9978674202F, 0.9978830771F, 0.9978986488F, 0.9979141358F, - 0.9979295383F, 0.9979448566F, 0.9979600909F, 0.9979752417F, - 0.9979903091F, 0.9980052936F, 0.9980201952F, 0.9980350145F, - 0.9980497515F, 0.9980644067F, 0.9980789804F, 0.9980934727F, - 0.9981078841F, 0.9981222147F, 0.9981364649F, 0.9981506350F, - 0.9981647253F, 0.9981787360F, 0.9981926674F, 0.9982065199F, - 0.9982202936F, 0.9982339890F, 0.9982476062F, 0.9982611456F, - 0.9982746074F, 0.9982879920F, 0.9983012996F, 0.9983145304F, - 0.9983276849F, 0.9983407632F, 0.9983537657F, 0.9983666926F, - 0.9983795442F, 0.9983923208F, 0.9984050226F, 0.9984176501F, - 0.9984302033F, 0.9984426827F, 0.9984550884F, 0.9984674208F, - 0.9984796802F, 0.9984918667F, 0.9985039808F, 0.9985160227F, - 0.9985279926F, 0.9985398909F, 0.9985517177F, 0.9985634734F, - 0.9985751583F, 0.9985867727F, 0.9985983167F, 0.9986097907F, - 0.9986211949F, 0.9986325297F, 0.9986437953F, 0.9986549919F, - 0.9986661199F, 0.9986771795F, 0.9986881710F, 0.9986990946F, - 0.9987099507F, 0.9987207394F, 0.9987314611F, 0.9987421161F, - 0.9987527045F, 0.9987632267F, 0.9987736829F, 0.9987840734F, - 0.9987943985F, 0.9988046584F, 0.9988148534F, 0.9988249838F, - 0.9988350498F, 0.9988450516F, 0.9988549897F, 0.9988648641F, - 0.9988746753F, 0.9988844233F, 0.9988941086F, 0.9989037313F, - 0.9989132918F, 0.9989227902F, 0.9989322269F, 0.9989416021F, - 0.9989509160F, 0.9989601690F, 0.9989693613F, 0.9989784931F, - 0.9989875647F, 0.9989965763F, 0.9990055283F, 0.9990144208F, - 0.9990232541F, 0.9990320286F, 0.9990407443F, 0.9990494016F, - 0.9990580008F, 0.9990665421F, 0.9990750257F, 0.9990834519F, - 0.9990918209F, 0.9991001331F, 0.9991083886F, 0.9991165877F, - 0.9991247307F, 0.9991328177F, 0.9991408491F, 0.9991488251F, - 0.9991567460F, 0.9991646119F, 0.9991724232F, 0.9991801801F, - 0.9991878828F, 0.9991955316F, 0.9992031267F, 0.9992106684F, - 0.9992181569F, 0.9992255925F, 0.9992329753F, 0.9992403057F, - 0.9992475839F, 0.9992548101F, 0.9992619846F, 0.9992691076F, - 0.9992761793F, 0.9992832001F, 0.9992901701F, 0.9992970895F, - 0.9993039587F, 0.9993107777F, 0.9993175470F, 0.9993242667F, - 0.9993309371F, 0.9993375583F, 0.9993441307F, 0.9993506545F, - 0.9993571298F, 0.9993635570F, 0.9993699362F, 0.9993762678F, - 0.9993825519F, 0.9993887887F, 0.9993949785F, 0.9994011216F, - 0.9994072181F, 0.9994132683F, 0.9994192725F, 0.9994252307F, - 0.9994311434F, 0.9994370107F, 0.9994428327F, 0.9994486099F, - 0.9994543423F, 0.9994600303F, 0.9994656739F, 0.9994712736F, - 0.9994768294F, 0.9994823417F, 0.9994878105F, 0.9994932363F, - 0.9994986191F, 0.9995039592F, 0.9995092568F, 0.9995145122F, - 0.9995197256F, 0.9995248971F, 0.9995300270F, 0.9995351156F, - 0.9995401630F, 0.9995451695F, 0.9995501352F, 0.9995550604F, - 0.9995599454F, 0.9995647903F, 0.9995695953F, 0.9995743607F, - 0.9995790866F, 0.9995837734F, 0.9995884211F, 0.9995930300F, - 0.9995976004F, 0.9996021324F, 0.9996066263F, 0.9996110822F, - 0.9996155004F, 0.9996198810F, 0.9996242244F, 0.9996285306F, - 0.9996327999F, 0.9996370326F, 0.9996412287F, 0.9996453886F, - 0.9996495125F, 0.9996536004F, 0.9996576527F, 0.9996616696F, - 0.9996656512F, 0.9996695977F, 0.9996735094F, 0.9996773865F, - 0.9996812291F, 0.9996850374F, 0.9996888118F, 0.9996925523F, - 0.9996962591F, 0.9996999325F, 0.9997035727F, 0.9997071798F, - 0.9997107541F, 0.9997142957F, 0.9997178049F, 0.9997212818F, - 0.9997247266F, 0.9997281396F, 0.9997315209F, 0.9997348708F, - 0.9997381893F, 0.9997414767F, 0.9997447333F, 0.9997479591F, - 0.9997511544F, 0.9997543194F, 0.9997574542F, 0.9997605591F, - 0.9997636342F, 0.9997666797F, 0.9997696958F, 0.9997726828F, - 0.9997756407F, 0.9997785698F, 0.9997814703F, 0.9997843423F, - 0.9997871860F, 0.9997900016F, 0.9997927894F, 0.9997955494F, - 0.9997982818F, 0.9998009869F, 0.9998036648F, 0.9998063157F, - 0.9998089398F, 0.9998115373F, 0.9998141082F, 0.9998166529F, - 0.9998191715F, 0.9998216642F, 0.9998241311F, 0.9998265724F, - 0.9998289884F, 0.9998313790F, 0.9998337447F, 0.9998360854F, - 0.9998384015F, 0.9998406930F, 0.9998429602F, 0.9998452031F, - 0.9998474221F, 0.9998496171F, 0.9998517885F, 0.9998539364F, - 0.9998560610F, 0.9998581624F, 0.9998602407F, 0.9998622962F, - 0.9998643291F, 0.9998663394F, 0.9998683274F, 0.9998702932F, - 0.9998722370F, 0.9998741589F, 0.9998760591F, 0.9998779378F, - 0.9998797952F, 0.9998816313F, 0.9998834464F, 0.9998852406F, - 0.9998870141F, 0.9998887670F, 0.9998904995F, 0.9998922117F, - 0.9998939039F, 0.9998955761F, 0.9998972285F, 0.9998988613F, - 0.9999004746F, 0.9999020686F, 0.9999036434F, 0.9999051992F, - 0.9999067362F, 0.9999082544F, 0.9999097541F, 0.9999112354F, - 0.9999126984F, 0.9999141433F, 0.9999155703F, 0.9999169794F, - 0.9999183709F, 0.9999197449F, 0.9999211014F, 0.9999224408F, - 0.9999237631F, 0.9999250684F, 0.9999263570F, 0.9999276289F, - 0.9999288843F, 0.9999301233F, 0.9999313461F, 0.9999325529F, - 0.9999337437F, 0.9999349187F, 0.9999360780F, 0.9999372218F, - 0.9999383503F, 0.9999394635F, 0.9999405616F, 0.9999416447F, - 0.9999427129F, 0.9999437665F, 0.9999448055F, 0.9999458301F, - 0.9999468404F, 0.9999478365F, 0.9999488185F, 0.9999497867F, - 0.9999507411F, 0.9999516819F, 0.9999526091F, 0.9999535230F, - 0.9999544236F, 0.9999553111F, 0.9999561856F, 0.9999570472F, - 0.9999578960F, 0.9999587323F, 0.9999595560F, 0.9999603674F, - 0.9999611666F, 0.9999619536F, 0.9999627286F, 0.9999634917F, - 0.9999642431F, 0.9999649828F, 0.9999657110F, 0.9999664278F, - 0.9999671334F, 0.9999678278F, 0.9999685111F, 0.9999691835F, - 0.9999698451F, 0.9999704960F, 0.9999711364F, 0.9999717662F, - 0.9999723858F, 0.9999729950F, 0.9999735942F, 0.9999741834F, - 0.9999747626F, 0.9999753321F, 0.9999758919F, 0.9999764421F, - 0.9999769828F, 0.9999775143F, 0.9999780364F, 0.9999785495F, - 0.9999790535F, 0.9999795485F, 0.9999800348F, 0.9999805124F, - 0.9999809813F, 0.9999814417F, 0.9999818938F, 0.9999823375F, - 0.9999827731F, 0.9999832005F, 0.9999836200F, 0.9999840316F, - 0.9999844353F, 0.9999848314F, 0.9999852199F, 0.9999856008F, - 0.9999859744F, 0.9999863407F, 0.9999866997F, 0.9999870516F, - 0.9999873965F, 0.9999877345F, 0.9999880656F, 0.9999883900F, - 0.9999887078F, 0.9999890190F, 0.9999893237F, 0.9999896220F, - 0.9999899140F, 0.9999901999F, 0.9999904796F, 0.9999907533F, - 0.9999910211F, 0.9999912830F, 0.9999915391F, 0.9999917896F, - 0.9999920345F, 0.9999922738F, 0.9999925077F, 0.9999927363F, - 0.9999929596F, 0.9999931777F, 0.9999933907F, 0.9999935987F, - 0.9999938018F, 0.9999940000F, 0.9999941934F, 0.9999943820F, - 0.9999945661F, 0.9999947456F, 0.9999949206F, 0.9999950912F, - 0.9999952575F, 0.9999954195F, 0.9999955773F, 0.9999957311F, - 0.9999958807F, 0.9999960265F, 0.9999961683F, 0.9999963063F, - 0.9999964405F, 0.9999965710F, 0.9999966979F, 0.9999968213F, - 0.9999969412F, 0.9999970576F, 0.9999971707F, 0.9999972805F, - 0.9999973871F, 0.9999974905F, 0.9999975909F, 0.9999976881F, - 0.9999977824F, 0.9999978738F, 0.9999979624F, 0.9999980481F, - 0.9999981311F, 0.9999982115F, 0.9999982892F, 0.9999983644F, - 0.9999984370F, 0.9999985072F, 0.9999985750F, 0.9999986405F, - 0.9999987037F, 0.9999987647F, 0.9999988235F, 0.9999988802F, - 0.9999989348F, 0.9999989873F, 0.9999990379F, 0.9999990866F, - 0.9999991334F, 0.9999991784F, 0.9999992217F, 0.9999992632F, - 0.9999993030F, 0.9999993411F, 0.9999993777F, 0.9999994128F, - 0.9999994463F, 0.9999994784F, 0.9999995091F, 0.9999995384F, - 0.9999995663F, 0.9999995930F, 0.9999996184F, 0.9999996426F, - 0.9999996657F, 0.9999996876F, 0.9999997084F, 0.9999997282F, - 0.9999997469F, 0.9999997647F, 0.9999997815F, 0.9999997973F, - 0.9999998123F, 0.9999998265F, 0.9999998398F, 0.9999998524F, - 0.9999998642F, 0.9999998753F, 0.9999998857F, 0.9999998954F, - 0.9999999045F, 0.9999999130F, 0.9999999209F, 0.9999999282F, - 0.9999999351F, 0.9999999414F, 0.9999999472F, 0.9999999526F, - 0.9999999576F, 0.9999999622F, 0.9999999664F, 0.9999999702F, - 0.9999999737F, 0.9999999769F, 0.9999999798F, 0.9999999824F, - 0.9999999847F, 0.9999999868F, 0.9999999887F, 0.9999999904F, - 0.9999999919F, 0.9999999932F, 0.9999999943F, 0.9999999953F, - 0.9999999961F, 0.9999999969F, 0.9999999975F, 0.9999999980F, - 0.9999999985F, 0.9999999988F, 0.9999999991F, 0.9999999993F, - 0.9999999995F, 0.9999999997F, 0.9999999998F, 0.9999999999F, - 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, - 1.0000000000F, 1.0000000000F, 1.0000000000F, 1.0000000000F, -}; - -static float *vwin[8] = { - vwin64, - vwin128, - vwin256, - vwin512, - vwin1024, - vwin2048, - vwin4096, - vwin8192, -}; - -float *_vorbis_window_get(int n){ - return vwin[n]; -} - -void _vorbis_apply_window(float *d,int *winno,long *blocksizes, - int lW,int W,int nW){ - lW=(W?lW:0); - nW=(W?nW:0); - - { - float *windowLW=vwin[winno[lW]]; - float *windowNW=vwin[winno[nW]]; - - long n=blocksizes[W]; - long ln=blocksizes[lW]; - long rn=blocksizes[nW]; - - long leftbegin=n/4-ln/4; - long leftend=leftbegin+ln/2; - - long rightbegin=n/2+n/4-rn/4; - long rightend=rightbegin+rn/2; - - int i,p; - - for(i=0;i, 1996 -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -win32_libid () { - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ - sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` - if test "X$win32_nmres" = "Ximport" ; then - win32_libid_type="x86 archive import" - else - win32_libid_type="x86 archive static" - fi - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $echo $win32_libid_type -} - -# End of Shell function definitions -##################################### - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" - preserve_args="${preserve_args}=$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 - exit 1 - ;; - esac - - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - ;; - *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - $echo - $echo "Copyright (C) 2003 Free Software Foundation, Inc." - $echo "This is free software; see the source for copying conditions. There is NO" - $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit 0 - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" - done - exit 0 - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - preserve_args="$preserve_args $arg" - ;; - - --dry-run | -n) - run=: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit 0 - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - preserve_args="$preserve_args $arg" - ;; - - --tag) prevopt="--tag" prev=tag ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - preserve_args="$preserve_args --tag" - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 - $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - - for arg - do - case "$arg_mode" in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 - fi - arg_mode=target - continue - ;; - - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - - * ) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - base_compile="$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit 1 - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSifmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.ii) xform=ii ;; - *.class) xform=class ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - *.java) xform=java ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 - ;; - esac - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base compile - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case "$base_compile " in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi - - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi - lobj=${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - $echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - else - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - fi - build_libtool_libs=no - build_old_libs=yes - prefer_static_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - base_compile="$base_compile $arg" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit 1 - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat $save_arg` - do -# moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - done - else - $echo "$modename: link input file \`$save_arg' does not exist" - exit 1 - fi - arg=$save_arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-mingw* | *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs -framework System" - continue - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - -pthread|-pthreads|-kthread|-Kthread|-mthreads|--thread-safe|-mt) - # deplibs="$deplibs $arg" - ;; - - -module) - module=yes - continue - ;; - - # gcc -m* arguments should be passed to the linker via $compiler_flags - # in order to pass architecture information to the linker - # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo - # but this is not reliable with gcc because gcc may use -mfoo to - # select a different linker, different libraries, etc, while - # -Wl,-mfoo simply passes -mfoo to the linker. - -m*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - if test "$with_gcc" = "yes" ; then - compiler_flags="$compiler_flags $arg" - fi - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # The PATH hackery in wrapper scripts is required on Windows - # in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - - *.$objext) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base link - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in $compile_command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then - exit $status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplcations in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) - duplicate_compiler_generated_deps=$duplicate_deps - ;; - esac - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$pre_post_deps $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - case $linkmode in - lib) - passes="conv link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -pthread|-pthreads|-kthread|-Kthread|-mthreads|--thread-safe|-mt) - deplibs="$deplib $deplibs" - # test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - for search_ext in .la $shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - library_names= - old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - if test "$deplibs_check_method" != pass_all; then - $echo - $echo "*** Warning: Trying to link with static lib archive $deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because the file extensions .$libext of this argument makes me believe" - $echo "*** that it is just a static archive that I should not used here." - else - $echo - $echo "*** Warning: Linking the shared library $output against the" - $echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$newdlfiles $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - # This is a shared library - - # Warn about portability, can't link against -module's on some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then - $echo - if test "$linkmode" = prog; then - $echo "*** Warning: Linking the executable $output against the loadable module" - else - $echo "*** Warning: Linking the shared library $output against the loadable module" - fi - $echo "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; shift - libname=`eval \\$echo \"$libname_spec\"` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5* ) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a module then we can not link against it, someone - # is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then - $echo "** Warning, lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - $echo - $echo "** And there doesn't seem to be a static archive available" - $echo "** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - $echo - $echo "*** Warning: This system can not link to static lib archive $lib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - $echo "*** But as you try to build a module library, libtool will still create " - $echo "*** a static module, that should work as long as the dlopening application" - $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) - # we do not want to link against static libs, but need to link against shared - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$path/$depdepl" ; then - depdepl="$path/$depdepl" - fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac - path="" - fi - ;; - *) - path="-L$path" - ;; - esac - - ;; - -l*) - case $host in - *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" - ;; - *) continue ;; - esac - ;; - *) continue ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$deplibs $depdepl" ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$deplibs $path" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" - $echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$2" - number_minor="$3" - number_revision="$4" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - current=`expr $number_major + $number_minor - 1` - age="$number_minor" - revision="$number_minor" - ;; - esac - ;; - no) - current="$2" - revision="$3" - age="$4" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $revision in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case $age in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - major=`expr $current - $age + 1` - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=.`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$echo "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` - deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` - dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` - done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $rm conftest.c - cat > conftest.c </dev/null` - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null \ - | grep " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for file magic test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a file magic. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval $echo \"$potent_lib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a regex pattern. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` - done - fi - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ - | grep . >/dev/null; then - $echo - if test "X$deplibs_check_method" = "Xnone"; then - $echo "*** Warning: inter-library dependencies are not supported in this platform." - else - $echo "*** Warning: inter-library dependencies are not known to be supported." - fi - $echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - fi - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - $echo - $echo "*** Warning: libtool could not satisfy all declared inter-library" - $echo "*** dependencies of module $libname. Therefore, libtool will create" - $echo "*** a static module, that should work as long as the dlopening" - $echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - $echo "*** The inter-library dependencies that have been dropped here will be" - $echo "*** automatically added whenever a program is linked with this library" - $echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - $echo - $echo "*** Since this library must not contain undefined symbols," - $echo "*** because either the platform does not support them or" - $echo "*** it was explicitly requested with -no-undefined," - $echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" - $run eval "$cmd" || exit $? - skipped_export=false - else - # The command line is too long to execute in one step. - $show "using reloadable object file for export list..." - skipped_export=: - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval cmds=\"$module_expsym_cmds\" - else - eval cmds=\"$module_cmds\" - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - eval cmds=\"$archive_cmds\" - fi - fi - - if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise. - $echo "creating reloadable object files..." - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - output=$output_objdir/$save_output-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi - last_robj=$output_objdir/$save_output-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$save_output-${k}.$objext - objlist=$obj - len=1 - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - if ${skipped_export-false}; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - libobjs=$output - # Append the command to create the export file. - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - - # Set up a command to remove the reloadale object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" - done - - $echo "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - eval cmds=\"$archive_cmds\" - fi - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? - exit 0 - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - eval cmds=\"$reload_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit 0 - ;; - - prog) - case $host in - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - else - $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval '$echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $mv "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - grep -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' - else - $echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit 0 - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - cwrappersource=`$echo ${objdir}/lt-${output}.c` - cwrapper=`$echo ${output}.exe` - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 - - cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -#define HAVE_DOS_BASED_FILE_SYSTEM -#ifndef DIR_SEPARATOR_2 -#define DIR_SEPARATOR_2 '\\' -#endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -char * basename (const char *name); -char * fnqualify(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name = (char *) xstrdup ((char *) basename (argv[0])); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = fnqualify(argv[0]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void * p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL -; -} - -char * -basename (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha (name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return (char *) base; -} - -char * -fnqualify(const char *path) -{ - size_t size; - char *p; - char tmp[LT_PATHMAX + 1]; - - assert(path != NULL); - - /* Is it qualified already? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha (path[0]) && path[1] == ':') - return xstrdup (path); -#endif - if (IS_DIR_SEPARATOR (path[0])) - return xstrdup (path); - - /* prepend the current directory */ - /* doesn't handle '~' */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ - p = XMALLOC(char, size); - sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); - return p; -} - -char * -strendzap(char *str, const char *pat) -{ - size_t len, patlen; - - assert(str != NULL); - assert(pat != NULL); - - len = strlen(str); - patlen = strlen(pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp(str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit 1" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $echo >> $output "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" - else - $rm \"\$progdir/\$file\" - fi" - - $echo >> $output "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" - exit 1 - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" - else - $echo >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" - chmod +x $output - fi - exit 0 - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" - else - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - # GNU ar 2.10+ was changed to match POSIX; thus no paths are - # encoded into archives. This makes 'ar r' malfunction in - # this piecewise linking case whenever conflicting object - # names appear in distinct ar calls; check, warn and compensate. - if (for obj in $save_oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 - $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 - AR_FLAGS=cq - fi - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*"` && - test "$len" -le "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlfiles="$newdlfiles $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlprefiles="$newdlprefiles $abs" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 - fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - file=`$echo $file|${SED} 's,.exe$,,'` - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : - else - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyways - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 $preserve_args --finish$current_libdirs' - else - exit 0 - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = : && exit 0 - - $echo "----------------------------------------------------------------------" - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" - done - $echo - $echo "If you ever happen to want to link against installed libraries" - $echo "in a given directory, LIBDIR, you must either use libtool, and" - $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - $echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - $echo " during execution" - fi - if test -n "$runpath_var"; then - $echo " - add LIBDIR to the \`$runpath_var' environment variable" - $echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $echo - $echo "See any operating system documentation about shared libraries for" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "----------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" - exit 0 - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ - || (test -h "$file") >/dev/null 2>&1 \ - || test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - - if test "$mode" = uninstall; then - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - fi - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - - # Read the .lo file - . $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; then - noexename=$name - case $file in - *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$noexename - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit 1 -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE. - -Report bugs to ." - exit 0 - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/libvorbis-1.0.1/macos/compat/strdup.c b/libvorbis-1.0.1/macos/compat/strdup.c deleted file mode 100644 index 2ef4279..0000000 --- a/libvorbis-1.0.1/macos/compat/strdup.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include - -char *strdup(const char *inStr) -{ - char *outStr = NULL; - - if (inStr == NULL) { - return NULL; - } - - outStr = _ogg_malloc(strlen(inStr) + 1); - - if (outStr != NULL) { - strcpy(outStr, inStr); - } - - return outStr; -} diff --git a/libvorbis-1.0.1/macos/compat/sys/types.h b/libvorbis-1.0.1/macos/compat/sys/types.h deleted file mode 100644 index b0d4f92..0000000 --- a/libvorbis-1.0.1/macos/compat/sys/types.h +++ /dev/null @@ -1 +0,0 @@ -#ifndef __SYS_TYPES_H__ #define __SYS_TYPES_H__ 1 #include #include #include typedef short int16_t; typedef long int32_t; typedef long long int64_t; #define vorbis_size32_t long #if defined(__cplusplus) extern "C" { #endif #pragma options align=power char *strdup(const char *inStr); #pragma options align=reset #if defined(__cplusplus) } #endif #endif /* __SYS_TYPES_H__ */ \ No newline at end of file diff --git a/libvorbis-1.0.1/macosx/English.lproj/InfoPlist.strings b/libvorbis-1.0.1/macosx/English.lproj/InfoPlist.strings deleted file mode 100644 index 3ac59d1a786745e41c9a55bbe7d396b8ebc29d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmbu5OAi4-5QOXOS8Nz_0dxQ^ z)CB%5(NUXShChYhhd(206}<4Yw3uA8H!U6$_q - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Vorbis - CFBundleIconFile - - CFBundleIdentifier - - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - Vrbs - CFBundleVersion - 0.0.1d1 - NSPrincipalClass - - - -"; - shouldUseHeadermap = 1; - }; - 0867D69DFE84028FC02AAC07 = { - buildActionMask = 2147483647; - files = ( - F58520BF0191D12B01A802FE, - F58520C00191D12B01A802FE, - F58520C10191D12B01A802FE, - F5D8F66403389C830112CE8F, - F5D8F66703389C830112CE8F, - F5D8F66D03389C830112CE8F, - F5D8F66F03389C830112CE8F, - F5D8F67703389C830112CE8F, - F5D8F67903389C830112CE8F, - F5D8F67A03389C830112CE8F, - F5D8F67C03389C830112CE8F, - F5D8F67F03389C830112CE8F, - F5D8F68203389C830112CE8F, - F5D8F68303389C830112CE8F, - F5D8F68603389C830112CE8F, - F5D8F68803389C830112CE8F, - F5D8F68C03389C830112CE8F, - F5D8F68E03389C830112CE8F, - F5D8F69003389C830112CE8F, - F5D8F69203389C830112CE8F, - F5D8F69503389C830112CE8F, - F5D8F69603389C830112CE8F, - F5D8F69703389C830112CE8F, - F5D8F69803389C830112CE8F, - F5D8F69903389C830112CE8F, - F5D8F69A03389C830112CE8F, - F5D8F69B03389C830112CE8F, - F5D8F69C03389C830112CE8F, - F5D8F69D03389C830112CE8F, - F5D8F69E03389C830112CE8F, - F5D8F69F03389C830112CE8F, - F5D8F6A003389C830112CE8F, - F5D8F6A103389C830112CE8F, - F5D8F6A203389C830112CE8F, - F5D8F6A303389C830112CE8F, - F5D8F6A403389C830112CE8F, - F5D8F6A503389C830112CE8F, - F5D8F6A703389C830112CE8F, - F5D8F6AA03389C830112CE8F, - F5D8F6AC03389C830112CE8F, - F5D8F6AF03389C830112CE8F, - F5D8F6B503389C830112CE8F, - ); - isa = PBXHeadersBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 0867D69EFE84028FC02AAC07 = { - buildActionMask = 2147483647; - files = ( - 089C1668FE841158C02AAC07, - F5D8F69103389C830112CE8F, - F5D8F69303389C830112CE8F, - F5D8F69403389C830112CE8F, - ); - isa = PBXResourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 0867D69FFE84028FC02AAC07 = { - buildActionMask = 2147483647; - files = ( - F5D8F66303389C830112CE8F, - F5D8F66603389C830112CE8F, - F5D8F66803389C830112CE8F, - F5D8F67803389C830112CE8F, - F5D8F67B03389C830112CE8F, - F5D8F67D03389C830112CE8F, - F5D8F67E03389C830112CE8F, - F5D8F68003389C830112CE8F, - F5D8F68103389C830112CE8F, - F5D8F68503389C830112CE8F, - F5D8F68703389C830112CE8F, - F5D8F68B03389C830112CE8F, - F5D8F68D03389C830112CE8F, - F5D8F6A603389C830112CE8F, - F5D8F6A903389C830112CE8F, - F5D8F6AB03389C830112CE8F, - F5D8F6AD03389C830112CE8F, - F5D8F6AE03389C830112CE8F, - F5D8F6B003389C830112CE8F, - F5D8F6B203389C830112CE8F, - F5D8F6B303389C830112CE8F, - F5D8F6B403389C830112CE8F, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 0867D6A0FE84028FC02AAC07 = { - buildActionMask = 2147483647; - files = ( - F53B253501D43CF701D65C57, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 0867D6A2FE84028FC02AAC07 = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXRezBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 089C1665FE841158C02AAC07 = { - children = ( - 089C1666FE841158C02AAC07, - ); - isa = PBXGroup; - name = Resources; - refType = 4; - }; - 089C1666FE841158C02AAC07 = { - children = ( - 089C1667FE841158C02AAC07, - ); - isa = PBXVariantGroup; - name = InfoPlist.strings; - refType = 4; - }; - 089C1667FE841158C02AAC07 = { - fileEncoding = 10; - isa = PBXFileReference; - name = English; - path = English.lproj/InfoPlist.strings; - refType = 4; - }; - 089C1668FE841158C02AAC07 = { - fileRef = 089C1666FE841158C02AAC07; - isa = PBXBuildFile; - settings = { - }; - }; -//080 -//081 -//082 -//083 -//084 -//F50 -//F51 -//F52 -//F53 -//F54 - F53B253401D43CF701D65C57 = { - isa = PBXFrameworkReference; - name = ogg.framework; - path = ../../ogg/macosx/build/ogg.framework; - refType = 2; - }; - F53B253501D43CF701D65C57 = { - fileRef = F53B253401D43CF701D65C57; - isa = PBXBuildFile; - settings = { - }; - }; - F58520B70191D12B01A802FE = { - children = ( - F58520B90191D12B01A802FE, - F58520BA0191D12B01A802FE, - F58520BB0191D12B01A802FE, - ); - isa = PBXGroup; - name = Headers; - path = ../include/vorbis; - refType = 2; - }; - F58520B90191D12B01A802FE = { - isa = PBXFileReference; - path = codec.h; - refType = 4; - }; - F58520BA0191D12B01A802FE = { - isa = PBXFileReference; - path = vorbisenc.h; - refType = 4; - }; - F58520BB0191D12B01A802FE = { - isa = PBXFileReference; - path = vorbisfile.h; - refType = 4; - }; - F58520BF0191D12B01A802FE = { - fileRef = F58520B90191D12B01A802FE; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; - }; - F58520C00191D12B01A802FE = { - fileRef = F58520BA0191D12B01A802FE; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; - }; - F58520C10191D12B01A802FE = { - fileRef = F58520BB0191D12B01A802FE; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - Public, - ); - }; - }; - F5AB589803389B2501837C5A = { - isa = PBXFrameworkReference; - path = Vorbis.framework; - refType = 3; - }; - F5D8F60803389C830112CE8F = { - children = ( - F5D8F60A03389C830112CE8F, - F5D8F60B03389C830112CE8F, - F5D8F60C03389C830112CE8F, - F5D8F60D03389C830112CE8F, - F5D8F60E03389C830112CE8F, - F5D8F60F03389C830112CE8F, - F5D8F61003389C830112CE8F, - F5D8F62303389C830112CE8F, - F5D8F62403389C830112CE8F, - F5D8F62503389C830112CE8F, - F5D8F62603389C830112CE8F, - F5D8F62703389C830112CE8F, - F5D8F62803389C830112CE8F, - F5D8F62903389C830112CE8F, - F5D8F62A03389C830112CE8F, - F5D8F62B03389C830112CE8F, - F5D8F62C03389C830112CE8F, - F5D8F62D03389C830112CE8F, - F5D8F62E03389C830112CE8F, - F5D8F63003389C830112CE8F, - F5D8F63103389C830112CE8F, - F5D8F63203389C830112CE8F, - F5D8F63303389C830112CE8F, - F5D8F63603389C830112CE8F, - F5D8F63703389C830112CE8F, - F5D8F63803389C830112CE8F, - F5D8F63903389C830112CE8F, - F5D8F63A03389C830112CE8F, - F5D8F63B03389C830112CE8F, - F5D8F63C03389C830112CE8F, - F5D8F65103389C830112CE8F, - F5D8F65203389C830112CE8F, - F5D8F65303389C830112CE8F, - F5D8F65403389C830112CE8F, - F5D8F65503389C830112CE8F, - F5D8F65603389C830112CE8F, - F5D8F65703389C830112CE8F, - F5D8F65803389C830112CE8F, - F5D8F65903389C830112CE8F, - F5D8F65A03389C830112CE8F, - F5D8F65B03389C830112CE8F, - F5D8F65C03389C830112CE8F, - F5D8F65D03389C830112CE8F, - F5D8F65E03389C830112CE8F, - F5D8F65F03389C830112CE8F, - F5D8F66003389C830112CE8F, - F5D8F66103389C830112CE8F, - ); - isa = PBXGroup; - name = lib; - path = ../lib; - refType = 4; - }; - F5D8F60A03389C830112CE8F = { - isa = PBXFileReference; - path = analysis.c; - refType = 4; - }; - F5D8F60B03389C830112CE8F = { - isa = PBXFileReference; - path = backends.h; - refType = 4; - }; - F5D8F60C03389C830112CE8F = { - isa = PBXFileReference; - path = barkmel.c; - refType = 4; - }; - F5D8F60D03389C830112CE8F = { - isa = PBXFileReference; - path = bitrate.c; - refType = 4; - }; - F5D8F60E03389C830112CE8F = { - isa = PBXFileReference; - path = bitrate.h; - refType = 4; - }; - F5D8F60F03389C830112CE8F = { - isa = PBXFileReference; - path = block.c; - refType = 4; - }; - F5D8F61003389C830112CE8F = { - children = ( - F5D8F61203389C830112CE8F, - F5D8F61703389C830112CE8F, - F5D8F61E03389C830112CE8F, - ); - isa = PBXGroup; - path = books; - refType = 4; - }; - F5D8F61203389C830112CE8F = { - children = ( - F5D8F61603389C830112CE8F, - ); - isa = PBXGroup; - path = coupled; - refType = 4; - }; - F5D8F61603389C830112CE8F = { - isa = PBXFileReference; - path = res_books_stereo.h; - refType = 4; - }; - F5D8F61703389C830112CE8F = { - children = ( - F5D8F61903389C830112CE8F, - ); - isa = PBXGroup; - path = floor; - refType = 4; - }; - F5D8F61903389C830112CE8F = { - isa = PBXFileReference; - path = floor_books.h; - refType = 4; - }; - F5D8F61E03389C830112CE8F = { - children = ( - F5D8F62203389C830112CE8F, - ); - isa = PBXGroup; - path = uncoupled; - refType = 4; - }; - F5D8F62203389C830112CE8F = { - isa = PBXFileReference; - path = res_books_uncoupled.h; - refType = 4; - }; - F5D8F62303389C830112CE8F = { - isa = PBXFileReference; - path = codebook.c; - refType = 4; - }; - F5D8F62403389C830112CE8F = { - isa = PBXFileReference; - path = codebook.h; - refType = 4; - }; - F5D8F62503389C830112CE8F = { - isa = PBXFileReference; - path = codec_internal.h; - refType = 4; - }; - F5D8F62603389C830112CE8F = { - isa = PBXFileReference; - path = envelope.c; - refType = 4; - }; - F5D8F62703389C830112CE8F = { - isa = PBXFileReference; - path = envelope.h; - refType = 4; - }; - F5D8F62803389C830112CE8F = { - isa = PBXFileReference; - path = floor0.c; - refType = 4; - }; - F5D8F62903389C830112CE8F = { - isa = PBXFileReference; - path = floor1.c; - refType = 4; - }; - F5D8F62A03389C830112CE8F = { - isa = PBXFileReference; - path = highlevel.h; - refType = 4; - }; - F5D8F62B03389C830112CE8F = { - isa = PBXFileReference; - path = info.c; - refType = 4; - }; - F5D8F62C03389C830112CE8F = { - isa = PBXFileReference; - path = lookup.c; - refType = 4; - }; - F5D8F62D03389C830112CE8F = { - isa = PBXFileReference; - path = lookup.h; - refType = 4; - }; - F5D8F62E03389C830112CE8F = { - isa = PBXFileReference; - path = lookup_data.h; - refType = 4; - }; - F5D8F63003389C830112CE8F = { - isa = PBXFileReference; - path = lpc.c; - refType = 4; - }; - F5D8F63103389C830112CE8F = { - isa = PBXFileReference; - path = lpc.h; - refType = 4; - }; - F5D8F63203389C830112CE8F = { - isa = PBXFileReference; - path = lsp.c; - refType = 4; - }; - F5D8F63303389C830112CE8F = { - isa = PBXFileReference; - path = lsp.h; - refType = 4; - }; - F5D8F63603389C830112CE8F = { - isa = PBXFileReference; - path = mapping0.c; - refType = 4; - }; - F5D8F63703389C830112CE8F = { - isa = PBXFileReference; - path = masking.h; - refType = 4; - }; - F5D8F63803389C830112CE8F = { - isa = PBXFileReference; - path = mdct.c; - refType = 4; - }; - F5D8F63903389C830112CE8F = { - isa = PBXFileReference; - path = mdct.h; - refType = 4; - }; - F5D8F63A03389C830112CE8F = { - isa = PBXFileReference; - path = misc.c; - refType = 4; - }; - F5D8F63B03389C830112CE8F = { - isa = PBXFileReference; - path = misc.h; - refType = 4; - }; - F5D8F63C03389C830112CE8F = { - children = ( - F5D8F63D03389C830112CE8F, - F5D8F63E03389C830112CE8F, - F5D8F63F03389C830112CE8F, - F5D8F64003389C830112CE8F, - F5D8F64103389C830112CE8F, - F5D8F64203389C830112CE8F, - F5D8F64303389C830112CE8F, - F5D8F64403389C830112CE8F, - F5D8F64503389C830112CE8F, - F5D8F64603389C830112CE8F, - F5D8F64703389C830112CE8F, - F5D8F64803389C830112CE8F, - F5D8F64903389C830112CE8F, - F5D8F64A03389C830112CE8F, - F5D8F64B03389C830112CE8F, - F5D8F64C03389C830112CE8F, - F5D8F64D03389C830112CE8F, - F5D8F64E03389C830112CE8F, - F5D8F64F03389C830112CE8F, - F5D8F65003389C830112CE8F, - ); - isa = PBXGroup; - path = modes; - refType = 4; - }; - F5D8F63D03389C830112CE8F = { - isa = PBXFileReference; - path = .cvsignore; - refType = 4; - }; - F5D8F63E03389C830112CE8F = { - isa = PBXFileReference; - path = floor_all.h; - refType = 4; - }; - F5D8F63F03389C830112CE8F = { - isa = PBXFileReference; - path = Makefile.am; - refType = 4; - }; - F5D8F64003389C830112CE8F = { - isa = PBXFileReference; - path = Makefile.in; - refType = 4; - }; - F5D8F64103389C830112CE8F = { - isa = PBXFileReference; - path = psych_11.h; - refType = 4; - }; - F5D8F64203389C830112CE8F = { - isa = PBXFileReference; - path = psych_16.h; - refType = 4; - }; - F5D8F64303389C830112CE8F = { - isa = PBXFileReference; - path = psych_44.h; - refType = 4; - }; - F5D8F64403389C830112CE8F = { - isa = PBXFileReference; - path = psych_8.h; - refType = 4; - }; - F5D8F64503389C830112CE8F = { - isa = PBXFileReference; - path = residue_16.h; - refType = 4; - }; - F5D8F64603389C830112CE8F = { - isa = PBXFileReference; - path = residue_44.h; - refType = 4; - }; - F5D8F64703389C830112CE8F = { - isa = PBXFileReference; - path = residue_44u.h; - refType = 4; - }; - F5D8F64803389C830112CE8F = { - isa = PBXFileReference; - path = residue_8.h; - refType = 4; - }; - F5D8F64903389C830112CE8F = { - isa = PBXFileReference; - path = setup_11.h; - refType = 4; - }; - F5D8F64A03389C830112CE8F = { - isa = PBXFileReference; - path = setup_16.h; - refType = 4; - }; - F5D8F64B03389C830112CE8F = { - isa = PBXFileReference; - path = setup_22.h; - refType = 4; - }; - F5D8F64C03389C830112CE8F = { - isa = PBXFileReference; - path = setup_32.h; - refType = 4; - }; - F5D8F64D03389C830112CE8F = { - isa = PBXFileReference; - path = setup_44.h; - refType = 4; - }; - F5D8F64E03389C830112CE8F = { - isa = PBXFileReference; - path = setup_44u.h; - refType = 4; - }; - F5D8F64F03389C830112CE8F = { - isa = PBXFileReference; - path = setup_8.h; - refType = 4; - }; - F5D8F65003389C830112CE8F = { - isa = PBXFileReference; - path = setup_X.h; - refType = 4; - }; - F5D8F65103389C830112CE8F = { - isa = PBXFileReference; - path = os.h; - refType = 4; - }; - F5D8F65203389C830112CE8F = { - isa = PBXFileReference; - path = psy.c; - refType = 4; - }; - F5D8F65303389C830112CE8F = { - isa = PBXFileReference; - path = psy.h; - refType = 4; - }; - F5D8F65403389C830112CE8F = { - isa = PBXFileReference; - path = psytune.c; - refType = 4; - }; - F5D8F65503389C830112CE8F = { - isa = PBXFileReference; - path = registry.c; - refType = 4; - }; - F5D8F65603389C830112CE8F = { - isa = PBXFileReference; - path = registry.h; - refType = 4; - }; - F5D8F65703389C830112CE8F = { - isa = PBXFileReference; - path = res0.c; - refType = 4; - }; - F5D8F65803389C830112CE8F = { - isa = PBXFileReference; - path = scales.h; - refType = 4; - }; - F5D8F65903389C830112CE8F = { - isa = PBXFileReference; - path = sharedbook.c; - refType = 4; - }; - F5D8F65A03389C830112CE8F = { - isa = PBXFileReference; - path = smallft.c; - refType = 4; - }; - F5D8F65B03389C830112CE8F = { - isa = PBXFileReference; - path = smallft.h; - refType = 4; - }; - F5D8F65C03389C830112CE8F = { - isa = PBXFileReference; - path = synthesis.c; - refType = 4; - }; - F5D8F65D03389C830112CE8F = { - isa = PBXFileReference; - path = tone.c; - refType = 4; - }; - F5D8F65E03389C830112CE8F = { - isa = PBXFileReference; - path = vorbisenc.c; - refType = 4; - }; - F5D8F65F03389C830112CE8F = { - isa = PBXFileReference; - path = vorbisfile.c; - refType = 4; - }; - F5D8F66003389C830112CE8F = { - isa = PBXFileReference; - path = window.c; - refType = 4; - }; - F5D8F66103389C830112CE8F = { - isa = PBXFileReference; - path = window.h; - refType = 4; - }; - F5D8F66303389C830112CE8F = { - fileRef = F5D8F60A03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66403389C830112CE8F = { - fileRef = F5D8F60B03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66603389C830112CE8F = { - fileRef = F5D8F60D03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66703389C830112CE8F = { - fileRef = F5D8F60E03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66803389C830112CE8F = { - fileRef = F5D8F60F03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66D03389C830112CE8F = { - fileRef = F5D8F61603389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F66F03389C830112CE8F = { - fileRef = F5D8F61903389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67703389C830112CE8F = { - fileRef = F5D8F62203389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67803389C830112CE8F = { - fileRef = F5D8F62303389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67903389C830112CE8F = { - fileRef = F5D8F62403389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67A03389C830112CE8F = { - fileRef = F5D8F62503389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67B03389C830112CE8F = { - fileRef = F5D8F62603389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67C03389C830112CE8F = { - fileRef = F5D8F62703389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67D03389C830112CE8F = { - fileRef = F5D8F62803389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67E03389C830112CE8F = { - fileRef = F5D8F62903389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F67F03389C830112CE8F = { - fileRef = F5D8F62A03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68003389C830112CE8F = { - fileRef = F5D8F62B03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68103389C830112CE8F = { - fileRef = F5D8F62C03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68203389C830112CE8F = { - fileRef = F5D8F62D03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68303389C830112CE8F = { - fileRef = F5D8F62E03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68503389C830112CE8F = { - fileRef = F5D8F63003389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68603389C830112CE8F = { - fileRef = F5D8F63103389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68703389C830112CE8F = { - fileRef = F5D8F63203389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68803389C830112CE8F = { - fileRef = F5D8F63303389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68B03389C830112CE8F = { - fileRef = F5D8F63603389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68C03389C830112CE8F = { - fileRef = F5D8F63703389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68D03389C830112CE8F = { - fileRef = F5D8F63803389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F68E03389C830112CE8F = { - fileRef = F5D8F63903389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69003389C830112CE8F = { - fileRef = F5D8F63B03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69103389C830112CE8F = { - fileRef = F5D8F63D03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69203389C830112CE8F = { - fileRef = F5D8F63E03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69303389C830112CE8F = { - fileRef = F5D8F63F03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69403389C830112CE8F = { - fileRef = F5D8F64003389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69503389C830112CE8F = { - fileRef = F5D8F64103389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69603389C830112CE8F = { - fileRef = F5D8F64203389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69703389C830112CE8F = { - fileRef = F5D8F64303389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69803389C830112CE8F = { - fileRef = F5D8F64403389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69903389C830112CE8F = { - fileRef = F5D8F64503389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69A03389C830112CE8F = { - fileRef = F5D8F64603389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69B03389C830112CE8F = { - fileRef = F5D8F64703389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69C03389C830112CE8F = { - fileRef = F5D8F64803389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69D03389C830112CE8F = { - fileRef = F5D8F64903389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69E03389C830112CE8F = { - fileRef = F5D8F64A03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F69F03389C830112CE8F = { - fileRef = F5D8F64B03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A003389C830112CE8F = { - fileRef = F5D8F64C03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A103389C830112CE8F = { - fileRef = F5D8F64D03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A203389C830112CE8F = { - fileRef = F5D8F64E03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A303389C830112CE8F = { - fileRef = F5D8F64F03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A403389C830112CE8F = { - fileRef = F5D8F65003389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A503389C830112CE8F = { - fileRef = F5D8F65103389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A603389C830112CE8F = { - fileRef = F5D8F65203389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A703389C830112CE8F = { - fileRef = F5D8F65303389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6A903389C830112CE8F = { - fileRef = F5D8F65503389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AA03389C830112CE8F = { - fileRef = F5D8F65603389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AB03389C830112CE8F = { - fileRef = F5D8F65703389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AC03389C830112CE8F = { - fileRef = F5D8F65803389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AD03389C830112CE8F = { - fileRef = F5D8F65903389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AE03389C830112CE8F = { - fileRef = F5D8F65A03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6AF03389C830112CE8F = { - fileRef = F5D8F65B03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6B003389C830112CE8F = { - fileRef = F5D8F65C03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6B203389C830112CE8F = { - fileRef = F5D8F65E03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6B303389C830112CE8F = { - fileRef = F5D8F65F03389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6B403389C830112CE8F = { - fileRef = F5D8F66003389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - F5D8F6B503389C830112CE8F = { - fileRef = F5D8F66103389C830112CE8F; - isa = PBXBuildFile; - settings = { - }; - }; - }; - rootObject = 0867D690FE84028FC02AAC07; -} diff --git a/libvorbis-1.0.1/missing b/libvorbis-1.0.1/missing deleted file mode 100755 index 22e101a..0000000 --- a/libvorbis-1.0.1/missing +++ /dev/null @@ -1,198 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc. -# Franc,ois Pinard , 1996. - -# 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, 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., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.in; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`$configure_ac'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`$configure_ac'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`$configure_ac'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/libvorbis-1.0.1/mkinstalldirs b/libvorbis-1.0.1/mkinstalldirs deleted file mode 100755 index 4f58503..0000000 --- a/libvorbis-1.0.1/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/libvorbis-1.0.1/vq/Makefile.am b/libvorbis-1.0.1/vq/Makefile.am deleted file mode 100644 index 1832104..0000000 --- a/libvorbis-1.0.1/vq/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -INCLUDES = -I../lib -I$(top_srcdir)/include @OGG_CFLAGS@ - -EXTRA_PROGRAMS = latticebuild latticepare latticehint\ - latticetune huffbuild distribution -CLEANFILES = $(EXTRA_PROGRAMS) - -LDFLAGS = -static -LDADD = ../lib/libvorbis.la - -latticebuild_SOURCES = latticebuild.c vqgen.c bookutil.c\ - vqgen.h bookutil.h -latticepare_SOURCES = latticepare.c vqgen.c bookutil.c vqsplit.c\ - vqgen.h bookutil.h -latticehint_SOURCES = latticehint.c bookutil.c\ - bookutil.h -latticetune_SOURCES = latticetune.c vqgen.c bookutil.c\ - vqgen.h bookutil.h -huffbuild_SOURCES = huffbuild.c vqgen.c bookutil.c\ - vqgen.h bookutil.h -distribution_SOURCES = distribution.c bookutil.c\ - bookutil.h - -EXTRA_DIST = residue_entropy auxpartition.pl - -debugvq: - $(MAKE) vq CFLAGS="@DEBUG@" - -profilevq: - $(MAKE) vq CFLAGS="@PROFILE@" - -vq: - $(MAKE) $(EXTRA_PROGRAMS) diff --git a/libvorbis-1.0.1/vq/Makefile.in b/libvorbis-1.0.1/vq/Makefile.in deleted file mode 100644 index 2656247..0000000 --- a/libvorbis-1.0.1/vq/Makefile.in +++ /dev/null @@ -1,386 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -INCLUDES = -I../lib -I$(top_srcdir)/include @OGG_CFLAGS@ - -EXTRA_PROGRAMS = latticebuild latticepare latticehint latticetune huffbuild distribution - -CLEANFILES = $(EXTRA_PROGRAMS) - -LDFLAGS = -static -LDADD = ../lib/libvorbis.la - -latticebuild_SOURCES = latticebuild.c vqgen.c bookutil.c vqgen.h bookutil.h - -latticepare_SOURCES = latticepare.c vqgen.c bookutil.c vqsplit.c vqgen.h bookutil.h - -latticehint_SOURCES = latticehint.c bookutil.c bookutil.h - -latticetune_SOURCES = latticetune.c vqgen.c bookutil.c vqgen.h bookutil.h - -huffbuild_SOURCES = huffbuild.c vqgen.c bookutil.c vqgen.h bookutil.h - -distribution_SOURCES = distribution.c bookutil.c bookutil.h - - -EXTRA_DIST = residue_entropy auxpartition.pl -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = - -DEFS = @DEFS@ -I. -I$(srcdir) -CPPFLAGS = @CPPFLAGS@ -latticebuild_OBJECTS = latticebuild.$(OBJEXT) vqgen.$(OBJEXT) \ -bookutil.$(OBJEXT) -latticebuild_LDADD = $(LDADD) -latticebuild_DEPENDENCIES = ../lib/libvorbis.la -latticebuild_LDFLAGS = -latticepare_OBJECTS = latticepare.$(OBJEXT) vqgen.$(OBJEXT) \ -bookutil.$(OBJEXT) vqsplit.$(OBJEXT) -latticepare_LDADD = $(LDADD) -latticepare_DEPENDENCIES = ../lib/libvorbis.la -latticepare_LDFLAGS = -latticehint_OBJECTS = latticehint.$(OBJEXT) bookutil.$(OBJEXT) -latticehint_LDADD = $(LDADD) -latticehint_DEPENDENCIES = ../lib/libvorbis.la -latticehint_LDFLAGS = -latticetune_OBJECTS = latticetune.$(OBJEXT) vqgen.$(OBJEXT) \ -bookutil.$(OBJEXT) -latticetune_LDADD = $(LDADD) -latticetune_DEPENDENCIES = ../lib/libvorbis.la -latticetune_LDFLAGS = -huffbuild_OBJECTS = huffbuild.$(OBJEXT) vqgen.$(OBJEXT) \ -bookutil.$(OBJEXT) -huffbuild_LDADD = $(LDADD) -huffbuild_DEPENDENCIES = ../lib/libvorbis.la -huffbuild_LDFLAGS = -distribution_OBJECTS = distribution.$(OBJEXT) bookutil.$(OBJEXT) -distribution_LDADD = $(LDADD) -distribution_DEPENDENCIES = ../lib/libvorbis.la -distribution_LDFLAGS = -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -SOURCES = $(latticebuild_SOURCES) $(latticepare_SOURCES) $(latticehint_SOURCES) $(latticetune_SOURCES) $(huffbuild_SOURCES) $(distribution_SOURCES) -OBJECTS = $(latticebuild_OBJECTS) $(latticepare_OBJECTS) $(latticehint_OBJECTS) $(latticetune_OBJECTS) $(huffbuild_OBJECTS) $(distribution_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps vq/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - - -.c.o: - $(COMPILE) -c $< - -# FIXME: We should only use cygpath when building on Windows, -# and only if it is available. -.c.obj: - $(COMPILE) -c `cygpath -w $<` - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -rm -f *.$(OBJEXT) - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -.c.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.s.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -.S.lo: - $(LIBTOOL) --mode=compile $(COMPILE) -c $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -maintainer-clean-libtool: - -latticebuild$(EXEEXT): $(latticebuild_OBJECTS) $(latticebuild_DEPENDENCIES) - @rm -f latticebuild$(EXEEXT) - $(LINK) $(latticebuild_LDFLAGS) $(latticebuild_OBJECTS) $(latticebuild_LDADD) $(LIBS) - -latticepare$(EXEEXT): $(latticepare_OBJECTS) $(latticepare_DEPENDENCIES) - @rm -f latticepare$(EXEEXT) - $(LINK) $(latticepare_LDFLAGS) $(latticepare_OBJECTS) $(latticepare_LDADD) $(LIBS) - -latticehint$(EXEEXT): $(latticehint_OBJECTS) $(latticehint_DEPENDENCIES) - @rm -f latticehint$(EXEEXT) - $(LINK) $(latticehint_LDFLAGS) $(latticehint_OBJECTS) $(latticehint_LDADD) $(LIBS) - -latticetune$(EXEEXT): $(latticetune_OBJECTS) $(latticetune_DEPENDENCIES) - @rm -f latticetune$(EXEEXT) - $(LINK) $(latticetune_LDFLAGS) $(latticetune_OBJECTS) $(latticetune_LDADD) $(LIBS) - -huffbuild$(EXEEXT): $(huffbuild_OBJECTS) $(huffbuild_DEPENDENCIES) - @rm -f huffbuild$(EXEEXT) - $(LINK) $(huffbuild_LDFLAGS) $(huffbuild_OBJECTS) $(huffbuild_LDADD) $(LIBS) - -distribution$(EXEEXT): $(distribution_OBJECTS) $(distribution_DEPENDENCIES) - @rm -f distribution$(EXEEXT) - $(LINK) $(distribution_LDFLAGS) $(distribution_OBJECTS) $(distribution_LDADD) $(LIBS) - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = vq - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done - -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-compile mostlyclean-libtool \ - mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-compile clean-libtool clean-tags clean-generic \ - mostlyclean-am - -clean: clean-am - -distclean-am: distclean-compile distclean-libtool distclean-tags \ - distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-compile maintainer-clean-libtool \ - maintainer-clean-tags maintainer-clean-generic \ - distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile mostlyclean-libtool distclean-libtool \ -clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ -install-exec install-data-am install-data install-am install \ -uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -debugvq: - $(MAKE) vq CFLAGS="@DEBUG@" - -profilevq: - $(MAKE) vq CFLAGS="@PROFILE@" - -vq: - $(MAKE) $(EXTRA_PROGRAMS) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/vq/auxpartition.pl b/libvorbis-1.0.1/vq/auxpartition.pl deleted file mode 100755 index 05c5ed9..0000000 --- a/libvorbis-1.0.1/vq/auxpartition.pl +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/perl - -if($#ARGV<0){ - &usage; -} - -$|=1; - -$bands=0; - -foreach $arg (@ARGV){ - ($entries[$bands],$file[$bands])=split(/,/,$arg); - $bands++; -} - -# no time to deal with globs right now -if($bands>0){ - die unless open(ONE,"<".$file[0]); -} -if($bands>1){ - die unless open(TWO,"<".$file[1]); -} -if($bands>2){ - die unless open(THREE,"<".$file[2]); -} - - -while () { - my@nums = (); - @nums = split(/,/); - my$cols=$#nums; - for($i=0;$i<$cols;$i++){ - print 0+$nums[$i].", "; - } - if($bands>1){ - $_=; - @nums = (); - @nums = split(/,/); - $cols=$#nums; - for($i=0;$i<$cols;$i++){ - print $nums[$i]+$entries[0].", "; - } - if($bands>2){ - $_=; - @nums = (); - @nums = split(/,/); - $cols=$#nums; - for($i=0;$i<$cols;$i++){ - print $nums[$i]+$entries[0]+$entries[1].", "; - } - } - } - print "\n"; - -} - -if($bands>0){ - close ONE; -} -if($bands>1){ - close TWO; -} -if($bands>2){ - close THREE; -} - -sub usage{ - print "\nOggVorbis auxbook spectral partitioner\n\n"; - print "auxpartition.pl ,file [,file...]\n\n"; - exit(1); -} diff --git a/libvorbis-1.0.1/vq/bookutil.c b/libvorbis-1.0.1/vq/bookutil.c deleted file mode 100644 index 40b6187..0000000 --- a/libvorbis-1.0.1/vq/bookutil.c +++ /dev/null @@ -1,717 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: utility functions for loading .vqh and .vqd files - last mod: $Id: bookutil.c,v 1.27 2002/06/28 22:19:56 xiphmont Exp $ - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "bookutil.h" - -/* A few little utils for reading files */ -/* read a line. Use global, persistent buffering */ -static char *linebuffer=NULL; -static int lbufsize=0; -char *get_line(FILE *in){ - long sofar=0; - if(feof(in))return NULL; - - while(1){ - int gotline=0; - - while(!gotline){ - if(sofar+1>=lbufsize){ - if(!lbufsize){ - lbufsize=1024; - linebuffer=_ogg_malloc(lbufsize); - }else{ - lbufsize*=2; - linebuffer=_ogg_realloc(linebuffer,lbufsize); - } - } - { - long c=fgetc(in); - switch(c){ - case EOF: - if(sofar==0)return(NULL); - /* fallthrough correct */ - case '\n': - linebuffer[sofar]='\0'; - gotline=1; - break; - default: - linebuffer[sofar++]=c; - linebuffer[sofar]='\0'; - break; - } - } - } - - if(linebuffer[0]=='#'){ - sofar=0; - }else{ - return(linebuffer); - } - } -} - -/* read the next numerical value from the given file */ -static char *value_line_buff=NULL; - -int get_line_value(FILE *in,float *value){ - char *next; - - if(!value_line_buff)return(-1); - - *value=strtod(value_line_buff, &next); - if(next==value_line_buff){ - value_line_buff=NULL; - return(-1); - }else{ - value_line_buff=next; - while(*value_line_buff>44)value_line_buff++; - if(*value_line_buff==44)value_line_buff++; - return(0); - } -} - -int get_next_value(FILE *in,float *value){ - while(1){ - if(get_line_value(in,value)){ - value_line_buff=get_line(in); - if(!value_line_buff)return(-1); - }else{ - return(0); - } - } -} - -int get_next_ivalue(FILE *in,long *ivalue){ - float value; - int ret=get_next_value(in,&value); - *ivalue=value; - return(ret); -} - -static float sequence_base=0.f; -static int v_sofar=0; -void reset_next_value(void){ - value_line_buff=NULL; - sequence_base=0.f; - v_sofar=0; -} - -char *setup_line(FILE *in){ - reset_next_value(); - value_line_buff=get_line(in); - return(value_line_buff); -} - - -int get_vector(codebook *b,FILE *in,int start, int n,float *a){ - int i; - const static_codebook *c=b->c; - - while(1){ - - if(v_sofar==n || get_line_value(in,a)){ - reset_next_value(); - if(get_next_value(in,a)) - break; - for(i=0;idim;i++) - if(get_line_value(in,a+i)) - break; - - if(i==c->dim){ - float temp=a[c->dim-1]; - for(i=0;idim;i++)a[i]-=sequence_base; - if(c->q_sequencep)sequence_base=temp; - v_sofar++; - return(0); - } - sequence_base=0.f; - } - - return(-1); -} - -/* read lines fromt he beginning until we find one containing the - specified string */ -char *find_seek_to(FILE *in,char *s){ - rewind(in); - while(1){ - char *line=get_line(in); - if(line){ - if(strstr(line,s)) - return(line); - }else - return(NULL); - } -} - - -/* this reads the format as written by vqbuild/latticebuild; innocent - (legal) tweaking of the file that would not affect its valid - header-ness will break this routine */ - -codebook *codebook_load(char *filename){ - codebook *b=_ogg_calloc(1,sizeof(codebook)); - static_codebook *c=(static_codebook *)(b->c=_ogg_calloc(1,sizeof(static_codebook))); - encode_aux_nearestmatch *a=NULL; - encode_aux_threshmatch *t=NULL; - encode_aux_pigeonhole *p=NULL; - int quant_to_read=0; - FILE *in=fopen(filename,"r"); - char *line; - long i; - - if(in==NULL){ - fprintf(stderr,"Couldn't open codebook %s\n",filename); - exit(1); - } - - /* find the codebook struct */ - find_seek_to(in,"static static_codebook "); - - /* get the major important values */ - line=get_line(in); - if(sscanf(line,"%ld, %ld,", - &(c->dim),&(c->entries))!=2){ - fprintf(stderr,"1: syntax in %s in line:\t %s",filename,line); - exit(1); - } - line=get_line(in); - line=get_line(in); - if(sscanf(line,"%d, %ld, %ld, %d, %d,", - &(c->maptype),&(c->q_min),&(c->q_delta),&(c->q_quant), - &(c->q_sequencep))!=5){ - fprintf(stderr,"1: syntax in %s in line:\t %s",filename,line); - exit(1); - } - - /* find the auxiliary encode struct[s] (if any) */ - if(find_seek_to(in,"static encode_aux_nearestmatch _vq_aux")){ - /* how big? */ - c->nearest_tree=a=_ogg_calloc(1,sizeof(encode_aux_nearestmatch)); - line=get_line(in); - line=get_line(in); - line=get_line(in); - line=get_line(in); - line=get_line(in); - if(sscanf(line,"%ld, %ld",&(a->aux),&(a->alloc))!=2){ - fprintf(stderr,"2: syntax in %s in line:\t %s",filename,line); - exit(1); - } - - /* load ptr0 */ - find_seek_to(in,"static long _vq_ptr0"); - reset_next_value(); - a->ptr0=_ogg_malloc(sizeof(long)*a->aux); - for(i=0;iaux;i++) - if(get_next_ivalue(in,a->ptr0+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - - /* load ptr1 */ - find_seek_to(in,"static long _vq_ptr1"); - reset_next_value(); - a->ptr1=_ogg_malloc(sizeof(long)*a->aux); - for(i=0;iaux;i++) - if(get_next_ivalue(in,a->ptr1+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - - - /* load p */ - find_seek_to(in,"static long _vq_p_"); - reset_next_value(); - a->p=_ogg_malloc(sizeof(long)*a->aux); - for(i=0;iaux;i++) - if(get_next_ivalue(in,a->p+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - - /* load q */ - find_seek_to(in,"static long _vq_q_"); - reset_next_value(); - a->q=_ogg_malloc(sizeof(long)*a->aux); - for(i=0;iaux;i++) - if(get_next_ivalue(in,a->q+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - } - - if(find_seek_to(in,"static encode_aux_threshmatch _vq_aux")){ - /* how big? */ - c->thresh_tree=t=_ogg_calloc(1,sizeof(encode_aux_threshmatch)); - line=get_line(in); - line=get_line(in); - line=get_line(in); - if(sscanf(line,"%d",&(t->quantvals))!=1){ - fprintf(stderr,"3: syntax in %s in line:\t %s",filename,line); - exit(1); - } - line=get_line(in); - if(sscanf(line,"%d",&(t->threshvals))!=1){ - fprintf(stderr,"4: syntax in %s in line:\t %s",filename,line); - exit(1); - } - /* load quantthresh */ - find_seek_to(in,"static float _vq_quantthresh_"); - reset_next_value(); - t->quantthresh=_ogg_malloc(sizeof(float)*t->threshvals); - for(i=0;ithreshvals-1;i++) - if(get_next_value(in,t->quantthresh+i)){ - fprintf(stderr,"out of data 1 while reading codebook %s\n",filename); - exit(1); - } - /* load quantmap */ - find_seek_to(in,"static long _vq_quantmap_"); - reset_next_value(); - t->quantmap=_ogg_malloc(sizeof(long)*t->threshvals); - for(i=0;ithreshvals;i++) - if(get_next_ivalue(in,t->quantmap+i)){ - fprintf(stderr,"out of data 2 while reading codebook %s\n",filename); - exit(1); - } - } - - if(find_seek_to(in,"static encode_aux_pigeonhole _vq_aux")){ - int pigeons=1,i; - /* how big? */ - c->pigeon_tree=p=_ogg_calloc(1,sizeof(encode_aux_pigeonhole)); - line=get_line(in); - if(sscanf(line,"%f, %f, %d, %d",&(p->min),&(p->del), - &(p->mapentries),&(p->quantvals))!=4){ - fprintf(stderr,"5: syntax in %s in line:\t %s",filename,line); - exit(1); - } - line=get_line(in); - line=get_line(in); - if(sscanf(line,"%ld",&(p->fittotal))!=1){ - fprintf(stderr,"6: syntax in %s in line:\t %s",filename,line); - exit(1); - } - /* load pigeonmap */ - find_seek_to(in,"static long _vq_pigeonmap_"); - reset_next_value(); - p->pigeonmap=_ogg_malloc(sizeof(long)*p->mapentries); - for(i=0;imapentries;i++) - if(get_next_ivalue(in,p->pigeonmap+i)){ - fprintf(stderr,"out of data (pigeonmap) while reading codebook %s\n",filename); - exit(1); - } - /* load fitlist */ - find_seek_to(in,"static long _vq_fitlist_"); - reset_next_value(); - p->fitlist=_ogg_malloc(sizeof(long)*p->fittotal); - for(i=0;ifittotal;i++) - if(get_next_ivalue(in,p->fitlist+i)){ - fprintf(stderr,"out of data (fitlist) while reading codebook %s\n",filename); - exit(1); - } - /* load fitmap */ - find_seek_to(in,"static long _vq_fitmap_"); - reset_next_value(); - for(i=0;idim;i++)pigeons*=p->quantvals; - p->fitmap=_ogg_malloc(sizeof(long)*pigeons); - for(i=0;ifitmap+i)){ - fprintf(stderr,"out of data (fitmap) while reading codebook %s\n",filename); - exit(1); - } - - /* load fitlength */ - find_seek_to(in,"static long _vq_fitlength_"); - reset_next_value(); - p->fitlength=_ogg_malloc(sizeof(long)*pigeons); - for(i=0;ifitlength+i)){ - fprintf(stderr,"out of data (fitlength) while reading codebook %s\n",filename); - exit(1); - } - } - - switch(c->maptype){ - case 0: - quant_to_read=0; - break; - case 1: - quant_to_read=_book_maptype1_quantvals(c); - break; - case 2: - quant_to_read=c->entries*c->dim; - break; - } - - /* load the quantized entries */ - find_seek_to(in,"static long _vq_quantlist_"); - reset_next_value(); - c->quantlist=_ogg_malloc(sizeof(long)*quant_to_read); - for(i=0;iquantlist+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - - /* load the lengthlist */ - find_seek_to(in,"_lengthlist"); - reset_next_value(); - c->lengthlist=_ogg_malloc(sizeof(long)*c->entries); - for(i=0;ientries;i++) - if(get_next_ivalue(in,c->lengthlist+i)){ - fprintf(stderr,"out of data while reading codebook %s\n",filename); - exit(1); - } - - /* got it all */ - fclose(in); - - vorbis_book_init_encode(b,c); - - return(b); -} - -void spinnit(char *s,int n){ - static int p=0; - static long lasttime=0; - long test; - struct timeval thistime; - - gettimeofday(&thistime,NULL); - test=thistime.tv_sec*10+thistime.tv_usec/100000; - if(lasttime!=test){ - lasttime=test; - - fprintf(stderr,"%s%d ",s,n); - - p++;if(p>3)p=0; - switch(p){ - case 0: - fprintf(stderr,"| \r"); - break; - case 1: - fprintf(stderr,"/ \r"); - break; - case 2: - fprintf(stderr,"- \r"); - break; - case 3: - fprintf(stderr,"\\ \r"); - break; - } - fflush(stderr); - } -} - -void build_tree_from_lengths(int vals, long *hist, long *lengths){ - int i,j; - long *membership=_ogg_malloc(vals*sizeof(long)); - long *histsave=alloca(vals*sizeof(long)); - memcpy(histsave,hist,vals*sizeof(long)); - - for(i=0;i1;i--){ - int first=-1,second=-1; - long least=-1; - - spinnit("building... ",i); - - /* find the two nodes to join */ - for(j=0;j0) - newhist[upper++]=hist[i]; - - if(upper != vals){ - fprintf(stderr,"\rEliminating %d unused entries; %d entries remain\n", - vals-upper,upper); - } - - build_tree_from_lengths(upper,newhist,lengthlist); - - upper=0; - for(i=0;i0) - lengths[i]=lengthlist[upper++]; - else - lengths[i]=0; - - free(lengthlist); -} - -void write_codebook(FILE *out,char *name,const static_codebook *c){ - encode_aux_pigeonhole *p=c->pigeon_tree; - encode_aux_threshmatch *t=c->thresh_tree; - encode_aux_nearestmatch *n=c->nearest_tree; - int i,j,k; - - /* save the book in C header form */ - - /* first, the static vectors, then the book structure to tie it together. */ - /* quantlist */ - if(c->quantlist){ - long vals=(c->maptype==1?_book_maptype1_quantvals(c):c->entries*c->dim); - fprintf(out,"static long _vq_quantlist_%s[] = {\n",name); - for(j=0;jquantlist[j]); - } - fprintf(out,"};\n\n"); - } - - /* lengthlist */ - fprintf(out,"static long _vq_lengthlist_%s[] = {\n",name); - for(j=0;jentries;){ - fprintf(out,"\t"); - for(k=0;k<16 && jentries;k++,j++) - fprintf(out,"%2ld,",c->lengthlist[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - if(t){ - /* quantthresh */ - fprintf(out,"static float _vq_quantthresh_%s[] = {\n",name); - for(j=0;jthreshvals-1;){ - fprintf(out,"\t"); - for(k=0;k<8 && jthreshvals-1;k++,j++) - fprintf(out,"%.5g, ",t->quantthresh[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - /* quantmap */ - fprintf(out,"static long _vq_quantmap_%s[] = {\n",name); - for(j=0;jthreshvals;){ - fprintf(out,"\t"); - for(k=0;k<8 && jthreshvals;k++,j++) - fprintf(out,"%5ld,",t->quantmap[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - fprintf(out,"static encode_aux_threshmatch _vq_auxt_%s = {\n",name); - fprintf(out,"\t_vq_quantthresh_%s,\n",name); - fprintf(out,"\t_vq_quantmap_%s,\n",name); - fprintf(out,"\t%d,\n",t->quantvals); - fprintf(out,"\t%d\n};\n\n",t->threshvals); - } - - if(p){ - int pigeons=1; - for(i=0;idim;i++)pigeons*=p->quantvals; - - /* pigeonmap */ - fprintf(out,"static long _vq_pigeonmap_%s[] = {\n",name); - for(j=0;jmapentries;){ - fprintf(out,"\t"); - for(k=0;k<8 && jmapentries;k++,j++) - fprintf(out,"%5ld, ",p->pigeonmap[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - /* fitlist */ - fprintf(out,"static long _vq_fitlist_%s[] = {\n",name); - for(j=0;jfittotal;){ - fprintf(out,"\t"); - for(k=0;k<8 && jfittotal;k++,j++) - fprintf(out,"%5ld, ",p->fitlist[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - /* fitmap */ - fprintf(out,"static long _vq_fitmap_%s[] = {\n",name); - for(j=0;jfitmap[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - /* fitlength */ - fprintf(out,"static long _vq_fitlength_%s[] = {\n",name); - for(j=0;jfitlength[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - fprintf(out,"static encode_aux_pigeonhole _vq_auxp_%s = {\n",name); - fprintf(out,"\t%g, %g, %d, %d,\n", - p->min,p->del,p->mapentries,p->quantvals); - - fprintf(out,"\t_vq_pigeonmap_%s,\n",name); - - fprintf(out,"\t%ld,\n",p->fittotal); - fprintf(out,"\t_vq_fitlist_%s,\n",name); - fprintf(out,"\t_vq_fitmap_%s,\n",name); - fprintf(out,"\t_vq_fitlength_%s\n};\n\n",name); - } - - if(n){ - - /* ptr0 */ - fprintf(out,"static long _vq_ptr0_%s[] = {\n",name); - for(j=0;jaux;){ - fprintf(out,"\t"); - for(k=0;k<8 && jaux;k++,j++) - fprintf(out,"%6ld,",n->ptr0[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - /* ptr1 */ - fprintf(out,"static long _vq_ptr1_%s[] = {\n",name); - for(j=0;jaux;){ - fprintf(out,"\t"); - for(k=0;k<8 && jaux;k++,j++) - fprintf(out,"%6ld,",n->ptr1[j]); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - /* p */ - fprintf(out,"static long _vq_p_%s[] = {\n",name); - for(j=0;jaux;){ - fprintf(out,"\t"); - for(k=0;k<8 && jaux;k++,j++) - fprintf(out,"%6ld,",n->p[j]*c->dim); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - /* q */ - fprintf(out,"static long _vq_q_%s[] = {\n",name); - for(j=0;jaux;){ - fprintf(out,"\t"); - for(k=0;k<8 && jaux;k++,j++) - fprintf(out,"%6ld,",n->q[j]*c->dim); - fprintf(out,"\n"); - } - fprintf(out,"};\n\n"); - - fprintf(out,"static encode_aux_nearestmatch _vq_auxn_%s = {\n",name); - fprintf(out,"\t_vq_ptr0_%s,\n",name); - fprintf(out,"\t_vq_ptr1_%s,\n",name); - fprintf(out,"\t_vq_p_%s,\n",name); - fprintf(out,"\t_vq_q_%s,\n",name); - fprintf(out,"\t%ld, %ld\n};\n\n",n->aux,n->aux); - } - - /* tie it all together */ - - fprintf(out,"static static_codebook %s = {\n",name); - - fprintf(out,"\t%ld, %ld,\n",c->dim,c->entries); - fprintf(out,"\t_vq_lengthlist_%s,\n",name); - fprintf(out,"\t%d, %ld, %ld, %d, %d,\n", - c->maptype,c->q_min,c->q_delta,c->q_quant,c->q_sequencep); - if(c->quantlist) - fprintf(out,"\t_vq_quantlist_%s,\n",name); - else - fprintf(out,"\tNULL,\n"); - - if(n) - fprintf(out,"\t&_vq_auxn_%s,\n",name); - else - fprintf(out,"\tNULL,\n"); - if(t) - fprintf(out,"\t&_vq_auxt_%s,\n",name); - else - fprintf(out,"\tNULL,\n"); - if(p) - fprintf(out,"\t&_vq_auxp_%s,\n",name); - else - fprintf(out,"\tNULL,\n"); - - fprintf(out,"\t0\n};\n\n"); -} diff --git a/libvorbis-1.0.1/vq/latticehint.c b/libvorbis-1.0.1/vq/latticehint.c deleted file mode 100644 index d6ef8fe..0000000 --- a/libvorbis-1.0.1/vq/latticehint.c +++ /dev/null @@ -1,430 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: utility main for building thresh/pigeonhole encode hints - last mod: $Id: latticehint.c,v 1.12 2001/12/20 01:00:39 segher Exp $ - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "../lib/scales.h" -#include "bookutil.h" -#include "vqgen.h" -#include "vqsplit.h" - -/* The purpose of this util is to build encode hints for lattice - codebooks so that brute forcing each codebook entry isn't needed. - Threshhold hints are for books in which each scalar in the vector - is independant (eg, residue) and pigeonhole lookups provide a - minimum error fit for words where the scalars are interdependant - (each affecting the fit of the next in sequence) as in an LSP - sequential book (or can be used along with a sparse threshhold map, - like a splitting tree that need not be trained) - - If the input book is non-sequential, a threshhold hint is built. - If the input book is sequential, a pigeonholing hist is built. - If the book is sparse, a pigeonholing hint is built, possibly in addition - to the threshhold hint - - command line: - latticehint book.vqh [threshlist] - - latticehint produces book.vqh on stdout */ - -static int longsort(const void *a, const void *b){ - return(**((long **)a)-**((long **)b)); -} - -static int addtosearch(int entry,long **tempstack,long *tempcount,int add){ - long *ptr=tempstack[entry]; - long i=tempcount[entry]; - - if(ptr){ - while(i--) - if(*ptr++==add)return(0); - tempstack[entry]=_ogg_realloc(tempstack[entry], - (tempcount[entry]+1)*sizeof(long)); - }else{ - tempstack[entry]=_ogg_malloc(sizeof(long)); - } - - tempstack[entry][tempcount[entry]++]=add; - return(1); -} - -static void setvals(int dim,encode_aux_pigeonhole *p, - long *temptrack,float *tempmin,float *tempmax, - int seqp){ - int i; - float last=0.f; - for(i=0;idel+p->min+last; - tempmax[i]=tempmin[i]+p->del; - if(seqp)last=tempmin[i]; - } -} - -/* note that things are currently set up such that input fits that - quantize outside the pigeonmap are dropped and brute-forced. So we - can ignore the <0 and >=n boundary cases in min/max error */ - -static float minerror(int dim,float *a,encode_aux_pigeonhole *p, - long *temptrack,float *tempmin,float *tempmax){ - int i; - float err=0.f; - for(i=0;itempmax[i]){ - eval=a[i]-tempmax[i]; - } - err+=eval*eval; - } - return(err); -} - -static float maxerror(int dim,float *a,encode_aux_pigeonhole *p, - long *temptrack,float *tempmin,float *tempmax){ - int i; - float err=0.f,eval; - for(i=0;itempmax[i]){ - eval=a[i]-tempmin[i]; - }else{ - float t1=a[i]-tempmin[i]; - eval=tempmax[i]-a[i]; - if(t1>eval)eval=t1; - } - err+=eval*eval; - } - return(err); -} - -int main(int argc,char *argv[]){ - codebook *b; - static_codebook *c; - int entries=-1,dim=-1; - float min,del; - char *name; - long i,j; - float *suggestions; - int suggcount=0; - - if(argv[1]==NULL){ - fprintf(stderr,"Need a lattice book on the command line.\n"); - exit(1); - } - - { - char *ptr; - char *filename=strdup(argv[1]); - - b=codebook_load(filename); - c=(static_codebook *)(b->c); - - ptr=strrchr(filename,'.'); - if(ptr){ - *ptr='\0'; - name=strdup(filename); - }else{ - name=strdup(filename); - } - } - - if(c->maptype!=1){ - fprintf(stderr,"Provided book is not a latticebook.\n"); - exit(1); - } - - entries=b->entries; - dim=b->dim; - min=_float32_unpack(c->q_min); - del=_float32_unpack(c->q_delta); - - /* Do we want to gen a threshold hint? */ - if(c->q_sequencep==0){ - /* yes. Discard any preexisting threshhold hint */ - long quantvals=_book_maptype1_quantvals(c); - long **quantsort=alloca(quantvals*sizeof(long *)); - encode_aux_threshmatch *t=_ogg_calloc(1,sizeof(encode_aux_threshmatch)); - c->thresh_tree=t; - - fprintf(stderr,"Adding threshold hint to %s...\n",name); - - /* partial/complete suggestions */ - if(argv[2]){ - char *ptr=strdup(argv[2]); - suggestions=alloca(sizeof(float)*quantvals); - - for(suggcount=0;ptr && suggcountquantthresh=_ogg_calloc(quantvals-1,sizeof(float)); - t->quantmap=_ogg_calloc(quantvals,sizeof(int)); - t->threshvals=quantvals; - t->quantvals=quantvals; - - /* the quantvals may not be in order; sort em first */ - for(i=0;iquantlist+i; - qsort(quantsort,quantvals,sizeof(long *),longsort); - - /* ok, gen the map and thresholds */ - for(i=0;iquantmap[i]=quantsort[i]-c->quantlist; - for(i=0;iquantthresh[i]=suggestions[j]; - break; - } - - if(j==suggcount){ - t->quantthresh[i]=(v1+v2)*.5; - } - } - } - - /* Do we want to gen a pigeonhole hint? */ -#if 0 - for(i=0;ilengthlist[i]==0)break; - if(c->q_sequencep || ipigeon_tree=p; - - fprintf(stderr,"Adding pigeonhole hint to %s...\n",name); - - /* the idea is that we quantize uniformly, even in a nonuniform - lattice, so that quantization of one scalar has a predictable - result on the next sequential scalar in a greedy matching - algorithm. We generate a lookup based on the quantization of - the vector (pigeonmap groups quantized entries together) and - list the entries that could possible be the best fit for any - given member of that pigeonhole. The encode process then has a - much smaller list to brute force */ - - /* find our pigeonhole-specific quantization values, fill in the - quant value->pigeonhole map */ - factor=3; - p->del=del; - p->min=min; - p->quantvals=quantvals; - { - int max=0; - for(i=0;iquantlist[i])max=c->quantlist[i]; - p->mapentries=max; - } - p->pigeonmap=_ogg_malloc(p->mapentries*sizeof(long)); - p->quantvals=(quantvals+factor-1)/factor; - - /* pigeonhole roughly on the boundaries of the quantvals; the - exact pigeonhole grouping is an optimization issue, not a - correctness issue */ - for(i=0;imapentries;i++){ - float thisval=del*i+min; /* middle of the quant zone */ - int quant=0; - float err=fabs(c->quantlist[0]*del+min-thisval); - for(j=1;jquantlist[j]*del+min-thisval); - if(thiserrpigeonmap[i]=quant; - } - - /* pigeonmap complete. Now do the grungy business of finding the - entries that could possibly be the best fit for a value appearing - in the pigeonhole. The trick that allows the below to work is the - uniform quantization; even though the scalars may be 'sequential' - (each a delta from the last), the uniform quantization means that - the error variance is *not* dependant. Given a pigeonhole and an - entry, we can find the minimum and maximum possible errors - (relative to the entry) for any point that could appear in the - pigeonhole */ - - /* must iterate over both pigeonholes and entries */ - /* temporarily (in order to avoid thinking hard), we grow each - pigeonhole seperately, the build a stack of 'em later */ - pigeons=1; - subpigeons=1; - for(i=0;imapentries; - for(i=0;iquantvals; - temptrack=_ogg_calloc(dim,sizeof(long)); - tempmin=_ogg_calloc(dim,sizeof(float)); - tempmax=_ogg_calloc(dim,sizeof(float)); - tempstack=_ogg_calloc(pigeons,sizeof(long *)); - tempcount=_ogg_calloc(pigeons,sizeof(long)); - - while(1){ - float errorpost=-1; - char buffer[80]; - - /* map our current pigeonhole to a 'big pigeonhole' so we know - what list we're after */ - int entry=0; - for(i=dim-1;i>=0;i--)entry=entry*p->quantvals+p->pigeonmap[temptrack[i]]; - setvals(dim,p,temptrack,tempmin,tempmax,c->q_sequencep); - sprintf(buffer,"Building pigeonhole search list [%ld]...",totalstack); - - - /* Search all entries to find the one with the minimum possible - maximum error. Record that error */ - for(i=0;ilengthlist[i]>0){ - float this=maxerror(dim,b->valuelist+i*dim,p, - temptrack,tempmin,tempmax); - if(errorpost==-1 || thislengthlist[i]>0){ - spinnit(buffer,subpigeons); - if(minerror(dim,b->valuelist+i*dim,p, - temptrack,tempmin,tempmax)mapentries)break; - temptrack[i]=0; - } - if(i==dim)break; - subpigeons--; - } - - fprintf(stderr,"\r " - "\rTotal search list size (all entries): %ld\n",totalstack); - - /* pare the index of lists for improbable quantizations (where - improbable is determined by c->lengthlist; we assume that - pigeonholing is in sync with the codeword cells, which it is */ - /*for(i=0;ilengthlist[i]); - if(c->lengthlist[i]==0 || probability*entriesfitmap=_ogg_malloc(pigeons*sizeof(long)); - for(i=0;ifitmap[i]=-1; - while(changep){ - char buffer[80]; - changep=0; - - for(i=0;ifitmap[i]<0 && tempcount[i]){ - for(j=i+1;jfitmap[j]<0 && tempcount[j]){ - /* is one list a superset, or are they sufficiently similar? */ - int amiss=0,bmiss=0,ii,jj; - for(ii=0;iifitmap[j]=i; - changep=1; - } - } - } - sprintf(buffer,"Consolidating [%ld total, %s]... ",totalstack, - changep?"reit":"nochange"); - spinnit(buffer,pigeons-i); - } - } - } - - /* repack the temp stack in final form */ - fprintf(stderr,"\r " - "\rFinal total list size: %ld\n",totalstack); - - - p->fittotal=totalstack; - p->fitlist=_ogg_malloc((totalstack+1)*sizeof(long)); - p->fitlength=_ogg_malloc(pigeons*sizeof(long)); - { - long usage=0; - for(i=0;ifitmap[i]==-1){ - if(tempcount[i]) - memcpy(p->fitlist+usage,tempstack[i],tempcount[i]*sizeof(long)); - p->fitmap[i]=usage; - p->fitlength[i]=tempcount[i]; - usage+=tempcount[i]; - if(usage>totalstack){ - fprintf(stderr,"Internal error; usage>totalstack\n"); - exit(1); - } - }else{ - p->fitlength[i]=p->fitlength[p->fitmap[i]]; - p->fitmap[i]=p->fitmap[p->fitmap[i]]; - } - } - } - } -#endif - - write_codebook(stdout,name,c); - fprintf(stderr,"\r " - "\nDone.\n"); - exit(0); -} diff --git a/libvorbis-1.0.1/vq/latticepare.c b/libvorbis-1.0.1/vq/latticepare.c deleted file mode 100644 index 222b7e0..0000000 --- a/libvorbis-1.0.1/vq/latticepare.c +++ /dev/null @@ -1,595 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: utility for paring low hit count cells from lattice codebook - last mod: $Id: latticepare.c,v 1.11 2001/12/20 01:00:39 segher Exp $ - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "../lib/scales.h" -#include "bookutil.h" -#include "vqgen.h" -#include "vqsplit.h" -#include "../lib/os.h" - -/* Lattice codebooks have two strengths: important fetaures that are - poorly modelled by global error minimization training (eg, strong - peaks) are not neglected 2) compact quantized representation. - - A fully populated lattice codebook, however, swings point 1 too far - in the opposite direction; rare features need not be modelled quite - so religiously and as such, we waste bits unless we eliminate the - least common cells. The codebook rep supports unused cells, so we - need to tag such cells and build an auxiliary (non-thresh) search - mechanism to find the proper match quickly */ - -/* two basic steps; first is pare the cell for which dispersal creates - the least additional error. This will naturally choose - low-population cells and cells that have not taken on points from - neighboring paring (but does not result in the lattice collapsing - inward and leaving low population ares totally unmodelled). After - paring has removed the desired number of cells, we need to build an - auxiliary search for each culled point */ - -/* Although lattice books (due to threshhold-based matching) do not - actually use error to make cell selections (in fact, it need not - bear any relation), the 'secondbest' entry finder here is in fact - error/distance based, so latticepare is only useful on such books */ - -/* command line: - latticepare latticebook.vqh input_data.vqd - - produces a new output book on stdout -*/ - -static float _dist(int el,float *a, float *b){ - int i; - float acc=0.f; - for(i=0;idim,i,j; - int step=n/dim; - for(i=0;ic->thresh_tree; - int dim=b->dim; - int i,k,o; - int best=0; - - /* what would be the closest match if the codebook was fully - populated? */ - - for(k=0,o=dim-1;kthreshvals-1;i++) - if(vec[o]quantthresh[i])break; - best=(best*tt->quantvals)+tt->quantmap[i]; - } - return(best); -} - -static int closest(codebook *b,float *vec,int current){ - encode_aux_threshmatch *tt=b->c->thresh_tree; - int dim=b->dim; - int i,k,o; - - float bestmetric=0; - int bestentry=-1; - int best=bestm(b,vec); - - if(current<0 && b->c->lengthlist[best]>0)return best; - - for(i=0;ientries;i++){ - if(b->c->lengthlist[i]>0 && i!=best && i!=current){ - float thismetric=_dist(dim, vec, b->valuelist+i*dim); - if(bestentry==-1 || thismetricvaluelist+secondbest*b->dim; - int best=bestm(b,ppt); - float *firstcell=b->valuelist+best*b->dim; - float error=_dist(b->dim,firstcell,secondcell); - float *zero=alloca(b->dim*sizeof(float)); - float fromzero; - - memset(zero,0,b->dim*sizeof(float)); - fromzero=sqrt(_dist(b->dim,firstcell,zero)); - - return(error/fromzero); -} - -static int longsort(const void *a, const void *b){ - return **(long **)b-**(long **)a; -} - -void usage(void){ - fprintf(stderr,"Ogg/Vorbis lattice codebook paring utility\n\n" - "usage: latticepare book.vqh data.vqd base\n" - "where is the desired number of final cells (or -1\n" - " for no change)\n" - " is the number of highest-hit count cells\n" - " to protect from dispersal\n" - " base is the base name (not including .vqh) of the new\n" - " book\n\n"); - exit(1); -} - -int main(int argc,char *argv[]){ - char *basename; - codebook *b=NULL; - int entries=0; - int dim=0; - long i,j,target=-1,protect=-1; - FILE *out=NULL; - - int argnum=0; - - argv++; - if(*argv==NULL){ - usage(); - exit(1); - } - - while(*argv){ - if(*argv[0]=='-'){ - - argv++; - - }else{ - switch (argnum++){ - case 0:case 1: - { - /* yes, this is evil. However, it's very convenient to parse file - extentions */ - - /* input file. What kind? */ - char *dot; - char *ext=NULL; - char *name=strdup(*argv++); - dot=strrchr(name,'.'); - if(dot) - ext=dot+1; - else{ - ext=""; - - } - - - /* codebook */ - if(!strcmp(ext,"vqh")){ - - basename=strrchr(name,'/'); - if(basename) - basename=strdup(basename)+1; - else - basename=strdup(name); - dot=strrchr(basename,'.'); - if(dot)*dot='\0'; - - b=codebook_load(name); - dim=b->dim; - entries=b->entries; - } - - /* data file; we do actually need to suck it into memory */ - /* we're dealing with just one book, so we can de-interleave */ - if(!strcmp(ext,"vqd") && !points){ - int cols; - long lines=0; - char *line; - float *vec; - FILE *in=fopen(name,"r"); - if(!in){ - fprintf(stderr,"Could not open input file %s\n",name); - exit(1); - } - - reset_next_value(); - line=setup_line(in); - /* count cols before we start reading */ - { - char *temp=line; - while(*temp==' ')temp++; - for(cols=0;*temp;cols++){ - while(*temp>32)temp++; - while(*temp==' ')temp++; - } - } - vec=alloca(cols*sizeof(float)); - /* count, then load, to avoid fragmenting the hell out of - memory */ - while(line){ - lines++; - for(j=0;jvaluelist[i*dim+j]; - - points/=dim; - - /* set up auxiliary vectors for error tracking */ - { - encode_aux_nearestmatch *nt=NULL; - long pointssofar=0; - long *pointindex; - long indexedpoints=0; - long *entryindex; - long *reventry; - long *membership=_ogg_malloc(points*sizeof(long)); - long *firsthead=_ogg_malloc(entries*sizeof(long)); - long *secondary=_ogg_malloc(points*sizeof(long)); - long *secondhead=_ogg_malloc(entries*sizeof(long)); - - long *cellcount=_ogg_calloc(entries,sizeof(long)); - long *cellcount2=_ogg_calloc(entries,sizeof(long)); - float *cellerror=_ogg_calloc(entries,sizeof(float)); - float *cellerrormax=_ogg_calloc(entries,sizeof(float)); - long cellsleft=entries; - for(i=0;ivaluelist+dim*firstentry,ppt); - float secondmetric=_dist(dim,b->valuelist+dim*secondentry,ppt); - - if(!(i&0xff))spinnit("initializing... ",points-i); - - membership[i]=firsthead[firstentry]; - firsthead[firstentry]=i; - secondary[i]=secondhead[secondentry]; - secondhead[secondentry]=i; - - if(ic->thresh_tree->quantvals); - entry/=b->c->thresh_tree->quantvals; - } - - fprintf(stderr,":%ld/%ld, ",cellcount[i],cellcount2[i]); - } - fprintf(stderr,"\n"); - } - - /* do the automatic cull request */ - while(cellsleft>target){ - int bestcell=-1; - float besterror=0; - float besterror2=0; - long head=-1; - char spinbuf[80]; - sprintf(spinbuf,"cells left to eliminate: %ld : ",cellsleft-target); - - /* find the cell with lowest removal impact */ - for(i=0;ic->lengthlist[i]>0){ - if(bestcell==-1 || cellerrormax[i]<=besterror2){ - if(bestcell==-1 || cellerrormax[i]cellerror[i]){ - besterror=cellerror[i]; - besterror2=cellerrormax[i]; - bestcell=i; - } - } - } - } - - fprintf(stderr,"\reliminating cell %d \n" - " dispersal error of %g max/%g total (%ld hits)\n", - bestcell,besterror2,besterror,cellcount[bestcell]); - - /* disperse it. move each point out, adding it (properly) to - the second best */ - b->c->lengthlist[bestcell]=0; - head=firsthead[bestcell]; - firsthead[bestcell]=-1; - while(head!=-1){ - /* head is a point number */ - float *ppt=pointlist+head*dim; - int firstentry=closest(b,ppt,-1); - int secondentry=closest(b,ppt,firstentry); - float firstmetric=_dist(dim,b->valuelist+dim*firstentry,ppt); - float secondmetric=_dist(dim,b->valuelist+dim*secondentry,ppt); - long next=membership[head]; - - if(headvaluelist+dim*bestcell,ppt); - /* new second closest error */ - float secondmetric=_dist(dim,b->valuelist+dim*secondentry,ppt); - long next=secondary[head]; - - if(headc->lengthlist[i]>0) - entryindex[target++]=i; - } - - /* make working space for a reverse entry index */ - reventry=_ogg_malloc(entries*sizeof(long)); - - /* do the split */ - nt=b->c->nearest_tree= - _ogg_calloc(1,sizeof(encode_aux_nearestmatch)); - - nt->alloc=4096; - nt->ptr0=_ogg_malloc(sizeof(long)*nt->alloc); - nt->ptr1=_ogg_malloc(sizeof(long)*nt->alloc); - nt->p=_ogg_malloc(sizeof(long)*nt->alloc); - nt->q=_ogg_malloc(sizeof(long)*nt->alloc); - nt->aux=0; - - fprintf(stderr,"Leaves added: %d \n", - lp_split(pointlist,points, - b,entryindex,target, - pointindex,indexedpoints, - membership,reventry, - 0,&pointssofar)); - free(membership); - free(reventry); - free(pointindex); - - /* hack alert. I should just change the damned splitter and - codebook writer */ - for(i=0;iaux;i++)nt->p[i]*=dim; - for(i=0;iaux;i++)nt->q[i]*=dim; - - /* recount hits. Build new lengthlist. reuse entryindex storage */ - for(i=0;iaux;i++)nt->p[i]/=dim; - for(i=0;iaux;i++)nt->q[i]/=dim; - - /* the lengthlist builder doesn't actually deal with 0 hit entries. - So, we pack the 'sparse' hit list into a dense list, then unpack - the lengths after the build */ - { - int upper=0; - long *lengthlist=_ogg_calloc(entries,sizeof(long)); - for(i=0;ic->lengthlist[i]>0) - entryindex[upper++]=entryindex[i]; - else{ - if(entryindex[i]>1){ - fprintf(stderr,"\nINTERNAL ERROR; _best matched to unused entry\n"); - exit(1); - } - } - } - - /* sanity check */ - if(upper != target){ - fprintf(stderr,"\nINTERNAL ERROR; packed the wrong number of entries\n"); - exit(1); - } - - build_tree_from_lengths(upper,entryindex,lengthlist); - - upper=0; - for(i=0;ic->lengthlist[i]>0) - b->c->lengthlist[i]=lengthlist[upper++]; - } - - } - } - /* we're done. write it out. */ - write_codebook(out,basename,b->c); - - fprintf(stderr,"\r \nDone.\n"); - return(0); -} - - - - diff --git a/libvorbis-1.0.1/vq/residue_entropy b/libvorbis-1.0.1/vq/residue_entropy deleted file mode 100755 index 49c55a5..0000000 --- a/libvorbis-1.0.1/vq/residue_entropy +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/perl - -@quant=( - 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 -); - - -use POSIX; -my($groupn)=@ARGV; -my%hash; -my$count=0; -my$lines=0; - -if(!defined($groupn)){ - print "Usage: residue_entropy \n"; - exit(1); -} -$|=1; - -while () { - chop; - my@nums = (); - @nums = split(/,/); - $lines++; - - my$step=$#nums/$groupn; - for(my$i=0;$i<$step;$i++){ - my$key=""; - for(my$j=$i;$j<$#nums;$j+=$step){ - if($nums[$j]<0){ - $num=-$quant[int(-$nums[$j]*2)]; - }else{ - $num=$quant[int($nums[$j]*2)]; - } - $key.=":$num"; - } - - if(!defined($hash{$key})){ - $count++; - $hash{$key}=1; - } - } - - if(($lines % 1000)==0){ - print "\rworking... $lines lines, found $count values so far"; - } -} - -foreach $key (keys %hash){ - print "\t$key\n"; -} - -print "\r$count values total \n"; -print "Done.\n\n"; diff --git a/libvorbis-1.0.1/vq/vqsplit.c b/libvorbis-1.0.1/vq/vqsplit.c deleted file mode 100644 index b79e807..0000000 --- a/libvorbis-1.0.1/vq/vqsplit.c +++ /dev/null @@ -1,612 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: build a VQ codebook and the encoding decision 'tree' - last mod: $Id: vqsplit.c,v 1.26 2001/12/20 01:00:40 segher Exp $ - - ********************************************************************/ - -/* This code is *not* part of libvorbis. It is used to generate - trained codebooks offline and then spit the results into a - pregenerated codebook that is compiled into libvorbis. It is an - expensive (but good) algorithm. Run it on big iron. */ - -/* There are so many optimizations to explore in *both* stages that - considering the undertaking is almost withering. For now, we brute - force it all */ - -#include -#include -#include -#include -#include - -#include "vqgen.h" -#include "vqsplit.h" -#include "bookutil.h" - -/* Codebook generation happens in two steps: - - 1) Train the codebook with data collected from the encoder: We use - one of a few error metrics (which represent the distance between a - given data point and a candidate point in the training set) to - divide the training set up into cells representing roughly equal - probability of occurring. - - 2) Generate the codebook and auxiliary data from the trained data set -*/ - -/* Building a codebook from trained set ********************************** - - The codebook in raw form is technically finished once it's trained. - However, we want to finalize the representative codebook values for - each entry and generate auxiliary information to optimize encoding. - We generate the auxiliary coding tree using collected data, - probably the same data as in the original training */ - -/* At each recursion, the data set is split in half. Cells with data - points on side A go into set A, same with set B. The sets may - overlap. If the cell overlaps the deviding line only very slightly - (provided parameter), we may choose to ignore the overlap in order - to pare the tree down */ - -long *isortvals; -int iascsort(const void *a,const void *b){ - long av=isortvals[*((long *)a)]; - long bv=isortvals[*((long *)b)]; - return(av-bv); -} - -static float _Ndist(int el,float *a, float *b){ - int i; - float acc=0.f; - for(i=0;ic->nearest_tree; - - /* The encoder, regardless of book, will be using a straight - euclidian distance-to-point metric to determine closest point. - Thus we split the cells using the same (we've already trained the - codebook set spacing and distribution using special metrics and - even a midpoint division won't disturb the basic properties) */ - - int dim=b->dim; - float *entrylist=b->valuelist; - long ret; - long *entryA=_ogg_calloc(entries,sizeof(long)); - long *entryB=_ogg_calloc(entries,sizeof(long)); - long entriesA=0; - long entriesB=0; - long entriesC=0; - long pointsA=0; - long i,j,k; - - long besti=-1; - long bestj=-1; - - char spinbuf[80]; - sprintf(spinbuf,"splitting [%ld left]... ",totalpoints-*pointsofar); - - /* one reverse index needed */ - for(i=0;ientries;i++)reventry[i]=-1; - for(i=0;ivaluelist,pointlist,dim, - membership,reventry, - entryindex,entries, - pointindex,points,0, - entryA,entryB, - entryindex[i],entryindex[j], - &entriesA,&entriesB,&entriesC); - this=(entriesA-entriesC)*(entriesB-entriesC); - - /* when choosing best, we also want some form of stability to - make sure more branches are pared later; secondary - weighting isn;t needed as the entry lists are in ascending - order, and we always try p/q in the same sequence */ - - if( (besti==-1) || - (this>best) ){ - - best=this; - besti=entryindex[i]; - bestj=entryindex[j]; - - } - } - } - }else{ - float *p=alloca(dim*sizeof(float)); - float *q=alloca(dim*sizeof(float)); - float best=0.f; - - /* try COG/normal and furthest pairs */ - /* meanpoint */ - /* eventually, we want to select the closest entry and figure n/c - from p/q (because storing n/c is too large */ - for(k=0;kvaluelist[entryindex[j]*dim+k]; - p[k]/=entries; - - } - - /* we go through the entries one by one, looking for the entry on - the other side closest to the point of reflection through the - center */ - - for(i=0;ivaluelist,pointlist,dim, - membership,reventry, - entryindex,entries, - pointindex,points,0, - entryA,entryB, - entryindex[i],ref_j, - &entriesA,&entriesB,&entriesC); - this=(entriesA-entriesC)*(entriesB-entriesC); - - /* when choosing best, we also want some form of stability to - make sure more branches are pared later; secondary - weighting isn;t needed as the entry lists are in ascending - order, and we always try p/q in the same sequence */ - - if( (besti==-1) || - (this>best) ){ - - best=this; - besti=entryindex[i]; - bestj=ref_j; - - } - } - if(besti>bestj){ - long temp=besti; - besti=bestj; - bestj=temp; - } - - } - - /* find cells enclosing points */ - /* count A/B points */ - - pointsA=vqsp_count(b->valuelist,pointlist,dim, - membership,reventry, - entryindex,entries, - pointindex,points,1, - entryA,entryB, - besti,bestj, - &entriesA,&entriesB,&entriesC); - - /* fprintf(stderr,"split: total=%ld depth=%ld set A=%ld:%ld:%ld=B\n", - entries,depth,entriesA-entriesC,entriesC,entriesB-entriesC);*/ - { - long thisaux=t->aux++; - if(t->aux>=t->alloc){ - t->alloc*=2; - t->ptr0=_ogg_realloc(t->ptr0,sizeof(long)*t->alloc); - t->ptr1=_ogg_realloc(t->ptr1,sizeof(long)*t->alloc); - t->p=_ogg_realloc(t->p,sizeof(long)*t->alloc); - t->q=_ogg_realloc(t->q,sizeof(long)*t->alloc); - } - - t->p[thisaux]=besti; - t->q[thisaux]=bestj; - - if(entriesA==1){ - ret=1; - t->ptr0[thisaux]=entryA[0]; - *pointsofar+=pointsA; - }else{ - t->ptr0[thisaux]= -t->aux; - ret=lp_split(pointlist,totalpoints,b,entryA,entriesA,pointindex,pointsA, - membership,reventry,depth+1,pointsofar); - } - if(entriesB==1){ - ret++; - t->ptr1[thisaux]=entryB[0]; - *pointsofar+=points-pointsA; - }else{ - t->ptr1[thisaux]= -t->aux; - ret+=lp_split(pointlist,totalpoints,b,entryB,entriesB,pointindex+pointsA, - points-pointsA,membership,reventry, - depth+1,pointsofar); - } - } - free(entryA); - free(entryB); - return(ret); -} - -static int _node_eq(encode_aux_nearestmatch *v, long a, long b){ - long Aptr0=v->ptr0[a]; - long Aptr1=v->ptr1[a]; - long Bptr0=v->ptr0[b]; - long Bptr1=v->ptr1[b]; - - /* the possibility of choosing the same p and q, but switched, can;t - happen because we always look for the best p/q in the same search - order and the search is stable */ - - if(Aptr0==Bptr0 && Aptr1==Bptr1) - return(1); - - return(0); -} - -void vqsp_book(vqgen *v, codebook *b, long *quantlist){ - long i,j; - static_codebook *c=(static_codebook *)b->c; - encode_aux_nearestmatch *t; - - memset(b,0,sizeof(codebook)); - memset(c,0,sizeof(static_codebook)); - b->c=c; - t=c->nearest_tree=_ogg_calloc(1,sizeof(encode_aux_nearestmatch)); - c->maptype=2; - - /* make sure there are no duplicate entries and that every - entry has points */ - - for(i=0;ientries;){ - /* duplicate? if so, eliminate */ - for(j=0;jelements,_now(v,i),_now(v,j))==0.f){ - fprintf(stderr,"found a duplicate entry! removing...\n"); - v->entries--; - memcpy(_now(v,i),_now(v,v->entries),sizeof(float)*v->elements); - memcpy(quantlist+i*v->elements,quantlist+v->entries*v->elements, - sizeof(long)*v->elements); - break; - } - } - if(j==i)i++; - } - - { - v->assigned=_ogg_calloc(v->entries,sizeof(long)); - for(i=0;ipoints;i++){ - float *ppt=_point(v,i); - float firstmetric=_Ndist(v->elements,_now(v,0),ppt); - long firstentry=0; - - if(!(i&0xff))spinnit("checking... ",v->points-i); - - for(j=0;jentries;j++){ - float thismetric=_Ndist(v->elements,_now(v,j),ppt); - if(thismetricassigned[firstentry]++; - } - - for(j=0;jentries;){ - if(v->assigned[j]==0){ - fprintf(stderr,"found an unused entry! removing...\n"); - v->entries--; - memcpy(_now(v,j),_now(v,v->entries),sizeof(float)*v->elements); - v->assigned[j]=v->assigned[v->elements]; - memcpy(quantlist+j*v->elements,quantlist+v->entries*v->elements, - sizeof(long)*v->elements); - continue; - } - j++; - } - } - - fprintf(stderr,"Building a book with %ld unique entries...\n",v->entries); - - { - long *entryindex=_ogg_malloc(v->entries*sizeof(long *)); - long *pointindex=_ogg_malloc(v->points*sizeof(long)); - long *membership=_ogg_malloc(v->points*sizeof(long)); - long *reventry=_ogg_malloc(v->entries*sizeof(long)); - long pointssofar=0; - - for(i=0;ientries;i++)entryindex[i]=i; - for(i=0;ipoints;i++)pointindex[i]=i; - - t->alloc=4096; - t->ptr0=_ogg_malloc(sizeof(long)*t->alloc); - t->ptr1=_ogg_malloc(sizeof(long)*t->alloc); - t->p=_ogg_malloc(sizeof(long)*t->alloc); - t->q=_ogg_malloc(sizeof(long)*t->alloc); - t->aux=0; - c->dim=v->elements; - c->entries=v->entries; - c->lengthlist=_ogg_calloc(c->entries,sizeof(long)); - b->valuelist=v->entrylist; /* temporary; replaced later */ - b->dim=c->dim; - b->entries=c->entries; - - for(i=0;ipoints;i++)membership[i]=-1; - for(i=0;ipoints;i++){ - float *ppt=_point(v,i); - long firstentry=0; - float firstmetric=_Ndist(v->elements,_now(v,0),ppt); - - if(!(i&0xff))spinnit("assigning... ",v->points-i); - - for(j=1;jentries;j++){ - if(v->assigned[j]!=-1){ - float thismetric=_Ndist(v->elements,_now(v,j),ppt); - if(thismetric<=firstmetric){ - firstmetric=thismetric; - firstentry=j; - } - } - } - - membership[i]=firstentry; - } - - fprintf(stderr,"Leaves added: %d \n", - lp_split(v->pointlist,v->points, - b,entryindex,v->entries, - pointindex,v->points, - membership,reventry, - 0,&pointssofar)); - - free(pointindex); - free(membership); - free(reventry); - - fprintf(stderr,"Paring/rerouting redundant branches... "); - - /* The tree is likely big and redundant. Pare and reroute branches */ - { - int changedflag=1; - - while(changedflag){ - changedflag=0; - - /* span the tree node by node; list unique decision nodes and - short circuit redundant branches */ - - for(i=0;iaux;){ - int k; - - /* check list of unique decisions */ - for(j=0;jaux;k++){ - if(t->ptr0[k]==-i)t->ptr0[k]=-j; - if(t->ptr1[k]==-i)t->ptr1[k]=-j; - } - - /* Now, we need to fill in the hole from this redundant - entry in the listing. Insert the last entry in the list. - Fix the forward pointers to that last entry */ - t->aux--; - t->ptr0[i]=t->ptr0[t->aux]; - t->ptr1[i]=t->ptr1[t->aux]; - t->p[i]=t->p[t->aux]; - t->q[i]=t->q[t->aux]; - for(k=0;kaux;k++){ - if(t->ptr0[k]==-t->aux)t->ptr0[k]=-i; - if(t->ptr1[k]==-t->aux)t->ptr1[k]=-i; - } - /* hole plugged */ - - }else - i++; - } - - fprintf(stderr,"\rParing/rerouting redundant branches... " - "%ld remaining ",t->aux); - } - fprintf(stderr,"\n"); - } - } - - /* run all training points through the decision tree to get a final - probability count */ - { - long *probability=_ogg_malloc(c->entries*sizeof(long)); - for(i=0;ientries;i++)probability[i]=1; /* trivial guard */ - b->dim=c->dim; - - /* sigh. A necessary hack */ - for(i=0;iaux;i++)t->p[i]*=c->dim; - for(i=0;iaux;i++)t->q[i]*=c->dim; - - for(i=0;ipoints;i++){ - /* we use the linear matcher regardless becuase the trainer - doesn't convert log to linear */ - int ret=_best(b,v->pointlist+i*v->elements,1); - probability[ret]++; - if(!(i&0xff))spinnit("counting hits... ",v->points-i); - } - for(i=0;iaux;i++)t->p[i]/=c->dim; - for(i=0;iaux;i++)t->q[i]/=c->dim; - - build_tree_from_lengths(c->entries,probability,c->lengthlist); - - free(probability); - } - - /* Sort the entries by codeword length, short to long (eases - assignment and packing to do it now) */ - { - long *wordlen=c->lengthlist; - long *index=_ogg_malloc(c->entries*sizeof(long)); - long *revindex=_ogg_malloc(c->entries*sizeof(long)); - int k; - for(i=0;ientries;i++)index[i]=i; - isortvals=c->lengthlist; - qsort(index,c->entries,sizeof(long),iascsort); - - /* rearrange storage; ptr0/1 first as it needs a reverse index */ - /* n and c stay unchanged */ - for(i=0;ientries;i++)revindex[index[i]]=i; - for(i=0;iaux;i++){ - if(!(i&0x3f))spinnit("sorting... ",t->aux-i); - - if(t->ptr0[i]>=0)t->ptr0[i]=revindex[t->ptr0[i]]; - if(t->ptr1[i]>=0)t->ptr1[i]=revindex[t->ptr1[i]]; - t->p[i]=revindex[t->p[i]]; - t->q[i]=revindex[t->q[i]]; - } - free(revindex); - - /* map lengthlist and vallist with index */ - c->lengthlist=_ogg_calloc(c->entries,sizeof(long)); - b->valuelist=_ogg_malloc(sizeof(float)*c->entries*c->dim); - c->quantlist=_ogg_malloc(sizeof(long)*c->entries*c->dim); - for(i=0;ientries;i++){ - long e=index[i]; - for(k=0;kdim;k++){ - b->valuelist[i*c->dim+k]=v->entrylist[e*c->dim+k]; - c->quantlist[i*c->dim+k]=quantlist[e*c->dim+k]; - } - c->lengthlist[i]=wordlen[e]; - } - - free(wordlen); - } - - fprintf(stderr,"Done. \n\n"); -} - diff --git a/libvorbis-1.0.1/win32/Makefile.am b/libvorbis-1.0.1/win32/Makefile.am deleted file mode 100644 index 535e3b4..0000000 --- a/libvorbis-1.0.1/win32/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -## Process this with automake to create Makefile.in - -AUTOMAKE_OPTIONS = foreign - - -EXTRA_DIST = vorbis.def vorbis_dynamic.dsp vorbis_static.dsp\ - vorbisfile.def vorbisfile_dynamic.dsp vorbisfile_static.dsp\ - vorbisenc.def vorbisenc_dynamic.dsp vorbisenc_static.dsp\ - build_vorbis_dynamic.bat build_vorbis_dynamic_debug.bat\ - build_vorbis_static.bat build_vorbis_static_debug.bat\ - build_vorbisenc_dynamic.bat build_vorbisenc_dynamic_debug.bat\ - build_vorbisenc_static.bat build_vorbisenc_static_debug.bat\ - build_vorbisfile_dynamic.bat build_vorbisfile_dynamic_debug.bat\ - build_vorbisfile_static.bat build_vorbisfile_static_debug.bat vorbis.dsw diff --git a/libvorbis-1.0.1/win32/Makefile.in b/libvorbis-1.0.1/win32/Makefile.in deleted file mode 100644 index 6716f3f..0000000 --- a/libvorbis-1.0.1/win32/Makefile.in +++ /dev/null @@ -1,212 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEBUG = @DEBUG@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -HAVE_LIB = @HAVE_LIB@ -LIB = @LIB@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIB = @LTLIB@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OGG_CFLAGS = @OGG_CFLAGS@ -OGG_LIBS = @OGG_LIBS@ -PACKAGE = @PACKAGE@ -PDFXMLTEX = @PDFXMLTEX@ -PROFILE = @PROFILE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -VE_LIB_AGE = @VE_LIB_AGE@ -VE_LIB_CURRENT = @VE_LIB_CURRENT@ -VE_LIB_REVISION = @VE_LIB_REVISION@ -VF_LIB_AGE = @VF_LIB_AGE@ -VF_LIB_CURRENT = @VF_LIB_CURRENT@ -VF_LIB_REVISION = @VF_LIB_REVISION@ -V_LIB_AGE = @V_LIB_AGE@ -V_LIB_CURRENT = @V_LIB_CURRENT@ -V_LIB_REVISION = @V_LIB_REVISION@ -XSLTPROC = @XSLTPROC@ -pthread_lib = @pthread_lib@ - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = vorbis.def vorbis_dynamic.dsp vorbis_static.dsp vorbisfile.def vorbisfile_dynamic.dsp vorbisfile_static.dsp vorbisenc.def vorbisenc_dynamic.dsp vorbisenc_static.dsp build_vorbis_dynamic.bat build_vorbis_dynamic_debug.bat build_vorbis_static.bat build_vorbis_static_debug.bat build_vorbisenc_dynamic.bat build_vorbisenc_dynamic_debug.bat build_vorbisenc_static.bat build_vorbisenc_static_debug.bat build_vorbisfile_dynamic.bat build_vorbisfile_dynamic_debug.bat build_vorbisfile_static.bat build_vorbisfile_static_debug.bat vorbis.dsw - -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = tar -GZIP_ENV = --best -all: all-redirect -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps win32/Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -tags: TAGS -TAGS: - - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) - -subdir = win32 - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: all-am -check: check-am -installcheck-am: -installcheck: installcheck-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-generic mostlyclean-am - -clean: clean-am - -distclean-am: distclean-generic clean-am - -rm -f libtool - -distclean: distclean-am - -maintainer-clean-am: maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -.PHONY: tags distdir info-am info dvi-am dvi check check-am \ -installcheck-am installcheck install-exec-am install-exec \ -install-data-am install-data install-am install uninstall-am uninstall \ -all-redirect all-am all installdirs mostlyclean-generic \ -distclean-generic clean-generic maintainer-clean-generic clean \ -mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libvorbis-1.0.1/win32/build_vorbis_dynamic.bat b/libvorbis-1.0.1/win32/build_vorbis_dynamic.bat deleted file mode 100644 index 9434779..0000000 --- a/libvorbis-1.0.1/win32/build_vorbis_dynamic.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbis (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Release -echo Compiling... -msdev vorbis_dynamic.dsp /useenv /make "vorbis_dynamic - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbis_dynamic_debug.bat b/libvorbis-1.0.1/win32/build_vorbis_dynamic_debug.bat deleted file mode 100644 index ffe5bd6..0000000 --- a/libvorbis-1.0.1/win32/build_vorbis_dynamic_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbis (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Debug -echo Compiling... -msdev vorbis_dynamic.dsp /useenv /make "vorbis_dynamic - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbis_static.bat b/libvorbis-1.0.1/win32/build_vorbis_static.bat deleted file mode 100644 index 35cb60a..0000000 --- a/libvorbis-1.0.1/win32/build_vorbis_static.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbis (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Release -echo Compiling... -msdev vorbis_static.dsp /useenv /make "vorbis_static - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbis_static_debug.bat b/libvorbis-1.0.1/win32/build_vorbis_static_debug.bat deleted file mode 100644 index fd30294..0000000 --- a/libvorbis-1.0.1/win32/build_vorbis_static_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbis (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Debug -echo Compiling... -msdev vorbis_static.dsp /useenv /make "vorbis_static - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisenc_dynamic.bat b/libvorbis-1.0.1/win32/build_vorbisenc_dynamic.bat deleted file mode 100644 index 7cbcd94..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisenc_dynamic.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisenc (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Release;%SRCROOT%\vorbis\win32\Dynamic_Release -echo Compiling... -msdev vorbisenc_dynamic.dsp /useenv /make "vorbisenc_dynamic - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisenc_dynamic_debug.bat b/libvorbis-1.0.1/win32/build_vorbisenc_dynamic_debug.bat deleted file mode 100644 index eb99784..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisenc_dynamic_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisenc (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Debug;%SRCROOT%\vorbis\win32\Dynamic_Debug -echo Compiling... -msdev vorbisenc_dynamic.dsp /useenv /make "vorbisenc_dynamic - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisenc_static.bat b/libvorbis-1.0.1/win32/build_vorbisenc_static.bat deleted file mode 100644 index 338c460..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisenc_static.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisenc (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Release;%SRCROOT%\vorbis\win32\Dynamic_Release -echo Compiling... -msdev vorbisenc_static.dsp /useenv /make "vorbisenc_static - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisenc_static_debug.bat b/libvorbis-1.0.1/win32/build_vorbisenc_static_debug.bat deleted file mode 100644 index 2141b5d..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisenc_static_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisenc (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Debug;%SRCROOT%\vorbis\win32\Dynamic_Debug -echo Compiling... -msdev vorbisenc_static.dsp /useenv /make "vorbisenc_static - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisfile_dynamic.bat b/libvorbis-1.0.1/win32/build_vorbisfile_dynamic.bat deleted file mode 100644 index 5a38fee..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisfile_dynamic.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisfile (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Release;%SRCROOT%\vorbis\win32\Dynamic_Release -echo Compiling... -msdev vorbisfile_dynamic.dsp /useenv /make "vorbisfile_dynamic - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisfile_dynamic_debug.bat b/libvorbis-1.0.1/win32/build_vorbisfile_dynamic_debug.bat deleted file mode 100644 index 8210162..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisfile_dynamic_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisfile (Dynamic) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Dynamic_Debug;%SRCROOT%\vorbis\win32\Dynamic_Debug -echo Compiling... -msdev vorbisfile_dynamic.dsp /useenv /make "vorbisfile_dynamic - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisfile_static.bat b/libvorbis-1.0.1/win32/build_vorbisfile_static.bat deleted file mode 100644 index 1de7846..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisfile_static.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisfile (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Release;%SRCROOT%\vorbis\win32\Dynamic_Release -echo Compiling... -msdev vorbisfile_static.dsp /useenv /make "vorbisfile_static - Win32 Release" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/build_vorbisfile_static_debug.bat b/libvorbis-1.0.1/win32/build_vorbisfile_static_debug.bat deleted file mode 100644 index 7f2250e..0000000 --- a/libvorbis-1.0.1/win32/build_vorbisfile_static_debug.bat +++ /dev/null @@ -1,19 +0,0 @@ -@echo off -echo ---+++--- Building Vorbisfile (Static) ---+++--- - -if .%SRCROOT%==. set SRCROOT=i:\xiph - -set OLDPATH=%PATH% -set OLDINCLUDE=%INCLUDE% -set OLDLIB=%LIB% - -call "c:\program files\microsoft visual studio\vc98\bin\vcvars32.bat" -echo Setting include/lib paths for Vorbis -set INCLUDE=%INCLUDE%;%SRCROOT%\ogg\include;%SRCROOT%\vorbis\include -set LIB=%LIB%;%SRCROOT%\ogg\win32\Static_Debug;%SRCROOT%\vorbis\win32\Dynamic_Debug -echo Compiling... -msdev vorbisfile_static.dsp /useenv /make "vorbisfile_static - Win32 Debug" /rebuild - -set PATH=%OLDPATH% -set INCLUDE=%OLDINCLUDE% -set LIB=%OLDLIB% diff --git a/libvorbis-1.0.1/win32/vorbis.dsw b/libvorbis-1.0.1/win32/vorbis.dsw deleted file mode 100644 index ce5c6f4..0000000 --- a/libvorbis-1.0.1/win32/vorbis.dsw +++ /dev/null @@ -1,101 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "vorbis_dynamic"=.\vorbis_dynamic.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "vorbis_static"=.\vorbis_static.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "vorbisenc_dynamic"=.\vorbisenc_dynamic.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name vorbis_dynamic - End Project Dependency -}}} - -############################################################################### - -Project: "vorbisenc_static"=.\vorbisenc_static.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name vorbis_static - End Project Dependency -}}} - -############################################################################### - -Project: "vorbisfile_dynamic"=.\vorbisfile_dynamic.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name vorbis_dynamic - End Project Dependency -}}} - -############################################################################### - -Project: "vorbisfile_static"=.\vorbisfile_static.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name vorbis_static - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/libvorbis-1.0.1/win32/vorbis_dynamic.dsp b/libvorbis-1.0.1/win32/vorbis_dynamic.dsp deleted file mode 100644 index fd7cc32..0000000 --- a/libvorbis-1.0.1/win32/vorbis_dynamic.dsp +++ /dev/null @@ -1,281 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbis_dynamic" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=vorbis_dynamic - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbis_dynamic.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbis_dynamic.mak" CFG="vorbis_dynamic - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbis_dynamic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "vorbis_dynamic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbis_dynamic - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Vorbis_Dynamic_Release" -# PROP Intermediate_Dir "Vorbis_Dynamic_Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBIS_DYNAMIC_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\ogg\include" /I "..\include" /I "..\win32\src" /I "..\..\vorbis\lib" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBIS_IEEE_FLOAT32" /D "_USE_NON_INTEL_COMPILER" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ogg.lib /nologo /dll /machine:I386 /out:"Vorbis_Dynamic_Release/vorbis.dll" /libpath:"..\..\ogg\win32\Dynamic_Release" - -!ELSEIF "$(CFG)" == "vorbis_dynamic - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "vorbis_dynamic___Win32_Debug" -# PROP BASE Intermediate_Dir "vorbis_dynamic___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Vorbis_Dynamic_Debug" -# PROP Intermediate_Dir "Vorbis_Dynamic_Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBIS_DYNAMIC_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\ogg\include" /I "..\include" /I "..\win32\src" /I "..\..\vorbis\lib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c -# SUBTRACT CPP /Fr /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ogg_d.lib /nologo /dll /debug /machine:I386 /out:"Vorbis_Dynamic_Debug/vorbis_d.dll" /pdbtype:sept /libpath:"..\..\ogg\win32\Dynamic_Debug" -# SUBTRACT LINK32 /verbose /pdb:none - -!ENDIF - -# Begin Target - -# Name "vorbis_dynamic - Win32 Release" -# Name "vorbis_dynamic - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\analysis.c -# End Source File -# Begin Source File - -SOURCE=..\lib\bitrate.c -# End Source File -# Begin Source File - -SOURCE=..\lib\block.c -# End Source File -# Begin Source File - -SOURCE=..\lib\codebook.c -# End Source File -# Begin Source File - -SOURCE=..\lib\envelope.c -# End Source File -# Begin Source File - -SOURCE=..\lib\floor0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\floor1.c -# End Source File -# Begin Source File - -SOURCE=..\lib\info.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lpc.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lsp.c -# End Source File -# Begin Source File - -SOURCE=..\lib\mapping0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\mdct.c -# End Source File -# Begin Source File - -SOURCE=..\lib\psy.c -# End Source File -# Begin Source File - -SOURCE=..\lib\registry.c -# End Source File -# Begin Source File - -SOURCE=..\lib\res0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\sharedbook.c -# End Source File -# Begin Source File - -SOURCE=..\lib\smallft.c -# End Source File -# Begin Source File - -SOURCE=..\lib\synthesis.c -# End Source File -# Begin Source File - -SOURCE=..\lib\vorbisenc.c -# End Source File -# Begin Source File - -SOURCE=..\lib\window.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\lib\backends.h -# End Source File -# Begin Source File - -SOURCE=..\lib\bitbuffer.h -# End Source File -# Begin Source File - -SOURCE=..\lib\bitrate.h -# End Source File -# Begin Source File - -SOURCE=..\lib\codebook.h -# End Source File -# Begin Source File - -SOURCE=..\include\vorbis\codec.h -# End Source File -# Begin Source File - -SOURCE=..\lib\codec_internal.h -# End Source File -# Begin Source File - -SOURCE=..\lib\envelope.h -# End Source File -# Begin Source File - -SOURCE=..\lib\highlevel.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup_data.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lpc.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lsp.h -# End Source File -# Begin Source File - -SOURCE=..\lib\masking.h -# End Source File -# Begin Source File - -SOURCE=..\lib\mdct.h -# End Source File -# Begin Source File - -SOURCE=..\lib\misc.h -# End Source File -# Begin Source File - -SOURCE=..\lib\os.h -# End Source File -# Begin Source File - -SOURCE=..\lib\psy.h -# End Source File -# Begin Source File - -SOURCE=..\lib\registry.h -# End Source File -# Begin Source File - -SOURCE=..\lib\scales.h -# End Source File -# Begin Source File - -SOURCE=..\lib\smallft.h -# End Source File -# Begin Source File - -SOURCE=..\lib\window.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Group "Other Files" - -# PROP Default_Filter ".def" -# Begin Source File - -SOURCE=.\vorbis.def -# End Source File -# End Group -# End Target -# End Project diff --git a/libvorbis-1.0.1/win32/vorbis_static.dsp b/libvorbis-1.0.1/win32/vorbis_static.dsp deleted file mode 100644 index 1def842..0000000 --- a/libvorbis-1.0.1/win32/vorbis_static.dsp +++ /dev/null @@ -1,257 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbis_static" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=vorbis_static - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbis_static.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbis_static.mak" CFG="vorbis_static - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbis_static - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "vorbis_static - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbis_static - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Vorbis_Static_Release" -# PROP Intermediate_Dir "Vorbis_Static_Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /O3 /QaxK /Qsox- /Qip /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "vorbis_static - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Vorbis_Static_Debug" -# PROP Intermediate_Dir "Vorbis_Static_Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Vorbis_Static_Debug\vorbis_static_d.lib" - -!ENDIF - -# Begin Target - -# Name "vorbis_static - Win32 Release" -# Name "vorbis_static - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\analysis.c -# End Source File -# Begin Source File - -SOURCE=..\lib\bitrate.c -# End Source File -# Begin Source File - -SOURCE=..\lib\block.c -# End Source File -# Begin Source File - -SOURCE=..\lib\codebook.c -# End Source File -# Begin Source File - -SOURCE=..\lib\envelope.c -# End Source File -# Begin Source File - -SOURCE=..\lib\floor0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\floor1.c -# End Source File -# Begin Source File - -SOURCE=..\lib\info.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lpc.c -# End Source File -# Begin Source File - -SOURCE=..\lib\lsp.c -# End Source File -# Begin Source File - -SOURCE=..\lib\mapping0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\mdct.c -# End Source File -# Begin Source File - -SOURCE=..\lib\psy.c -# End Source File -# Begin Source File - -SOURCE=..\lib\registry.c -# End Source File -# Begin Source File - -SOURCE=..\lib\res0.c -# End Source File -# Begin Source File - -SOURCE=..\lib\sharedbook.c -# End Source File -# Begin Source File - -SOURCE=..\lib\smallft.c -# End Source File -# Begin Source File - -SOURCE=..\lib\synthesis.c -# End Source File -# Begin Source File - -SOURCE=..\lib\window.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\include\vorbis\backends.h -# End Source File -# Begin Source File - -SOURCE=..\lib\bitbuffer.h -# End Source File -# Begin Source File - -SOURCE=..\lib\bitrate.h -# End Source File -# Begin Source File - -SOURCE=..\include\vorbis\codebook.h -# End Source File -# Begin Source File - -SOURCE=..\include\vorbis\codec.h -# End Source File -# Begin Source File - -SOURCE=..\lib\codec_internal.h -# End Source File -# Begin Source File - -SOURCE=..\lib\envelope.h -# End Source File -# Begin Source File - -SOURCE=..\lib\highlevel.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lookup_data.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lpc.h -# End Source File -# Begin Source File - -SOURCE=..\lib\lsp.h -# End Source File -# Begin Source File - -SOURCE=..\lib\masking.h -# End Source File -# Begin Source File - -SOURCE=..\lib\mdct.h -# End Source File -# Begin Source File - -SOURCE=..\lib\misc.h -# End Source File -# Begin Source File - -SOURCE=..\lib\os.h -# End Source File -# Begin Source File - -SOURCE=..\lib\psy.h -# End Source File -# Begin Source File - -SOURCE=..\lib\registry.h -# End Source File -# Begin Source File - -SOURCE=..\lib\scales.h -# End Source File -# Begin Source File - -SOURCE=..\lib\smallft.h -# End Source File -# Begin Source File - -SOURCE=..\lib\window.h -# End Source File -# End Group -# End Target -# End Project diff --git a/libvorbis-1.0.1/win32/vorbisenc_dynamic.dsp b/libvorbis-1.0.1/win32/vorbisenc_dynamic.dsp deleted file mode 100644 index 5b9c36c..0000000 --- a/libvorbis-1.0.1/win32/vorbisenc_dynamic.dsp +++ /dev/null @@ -1,121 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbisenc_dynamic" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=vorbisenc_dynamic - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbisenc_dynamic.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbisenc_dynamic.mak" CFG="vorbisenc_dynamic - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbisenc_dynamic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "vorbisenc_dynamic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbisenc_dynamic - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "VorbisEnc_Dynamic_Release" -# PROP Intermediate_Dir "VorbisEnc_Dynamic_Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISENC_DYNAMIC_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\ogg\include" /I "..\include" /I "..\win32\src" /I "..\..\vorbis\lib" /D "WIN32" /D "_WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISDLL_IMPORT" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ogg.lib vorbis.lib /nologo /dll /machine:I386 /out:"VorbisEnc_Dynamic_Release/vorbisenc.dll" /libpath:"..\..\ogg\win32\Dynamic_Release" /libpath:".\Vorbis_Dynamic_Release" - -!ELSEIF "$(CFG)" == "vorbisenc_dynamic - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "vorbisenc_dynamic___Win32_Debug" -# PROP BASE Intermediate_Dir "vorbisenc_dynamic___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "VorbisEnc_Dynamic_Debug" -# PROP Intermediate_Dir "VorbisEnc_Dynamic_Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISENC_DYNAMIC_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\ogg\include" /I "..\include" /I "..\win32\src" /I "..\..\vorbis\lib" /D "WIN32" /D "_WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISDLL_IMPORT" /FD /GZ /c -# SUBTRACT CPP /Fr /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib vorbis_d.lib /nologo /dll /debug /machine:I386 /out:"VorbisEnc_Dynamic_Debug/vorbisenc_d.dll" /pdbtype:sept /libpath:"../../vorbis/win32/Vorbis_Dynamic_Debug" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "vorbisenc_dynamic - Win32 Release" -# Name "vorbisenc_dynamic - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\vorbisenc.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\include\vorbis\vorbisenc.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Group "Other Files" - -# PROP Default_Filter ".def" -# Begin Source File - -SOURCE=.\vorbisenc.def -# End Source File -# End Group -# End Target -# End Project diff --git a/libvorbis-1.0.1/win32/vorbisenc_static.dsp b/libvorbis-1.0.1/win32/vorbisenc_static.dsp deleted file mode 100644 index 4c0953a..0000000 --- a/libvorbis-1.0.1/win32/vorbisenc_static.dsp +++ /dev/null @@ -1,100 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbisenc_static" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=vorbisenc_static - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbisenc_static.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbisenc_static.mak" CFG="vorbisenc_static - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbisenc_static - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "vorbisenc_static - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbisenc_static - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "VorbisEnc_Static_Release" -# PROP Intermediate_Dir "VorbisEnc_Static_Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /O3 /QaxK /Qsox- /Qip /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "vorbisenc_static - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "VorbisEnc_Static_Debug" -# PROP Intermediate_Dir "VorbisEnc_Static_Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"VorbisEnc_Static_Debug\vorbisenc_static_d.lib" - -!ENDIF - -# Begin Target - -# Name "vorbisenc_static - Win32 Release" -# Name "vorbisenc_static - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\vorbisenc.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\include\vorbis\vorbisenc.h -# End Source File -# End Group -# End Target -# End Project diff --git a/libvorbis-1.0.1/win32/vorbisfile_dynamic.dsp b/libvorbis-1.0.1/win32/vorbisfile_dynamic.dsp deleted file mode 100644 index ee5eeea..0000000 --- a/libvorbis-1.0.1/win32/vorbisfile_dynamic.dsp +++ /dev/null @@ -1,119 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbisfile_dynamic" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=vorbisfile_dynamic - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbisfile_dynamic.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbisfile_dynamic.mak" CFG="vorbisfile_dynamic - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbisfile_dynamic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "vorbisfile_dynamic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbisfile_dynamic - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "VorbisFile_Dynamic_Release" -# PROP Intermediate_Dir "VorbisFile_Dynamic_Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISFILE_DYNAMIC_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\ogg\include" /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WIN32" /D "VORBIS_IEEE_FLOAT32" /D "_USE_NON_INTEL_COMPILER" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ogg.lib vorbis.lib /nologo /dll /machine:I386 /out:"VorbisFile_Dynamic_Release/vorbisfile.dll" /libpath:"..\..\ogg\win32\Dynamic_Release" /libpath:".\Vorbis_Dynamic_Release" - -!ELSEIF "$(CFG)" == "vorbisfile_dynamic - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "vorbisfile_dynamic___Win32_Debug" -# PROP BASE Intermediate_Dir "vorbisfile_dynamic___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "VorbisFile_Dynamic_Debug" -# PROP Intermediate_Dir "VorbisFile_Dynamic_Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VORBISFILE_DYNAMIC_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\ogg\include" /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WIN32" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ogg_d.lib vorbis_d.lib /nologo /dll /debug /machine:I386 /out:"VorbisFile_Dynamic_Debug/vorbisfile_d.dll" /pdbtype:sept /libpath:"..\..\ogg\win32\Dynamic_Debug" /libpath:".\Vorbis_Dynamic_Debug" - -!ENDIF - -# Begin Target - -# Name "vorbisfile_dynamic - Win32 Release" -# Name "vorbisfile_dynamic - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\vorbisfile.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\include\vorbis\vorbisfile.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Group "Other Files" - -# PROP Default_Filter ".def" -# Begin Source File - -SOURCE=.\vorbisfile.def -# End Source File -# End Group -# End Target -# End Project diff --git a/libvorbis-1.0.1/win32/vorbisfile_static.dsp b/libvorbis-1.0.1/win32/vorbisfile_static.dsp deleted file mode 100644 index 39bb14f..0000000 --- a/libvorbis-1.0.1/win32/vorbisfile_static.dsp +++ /dev/null @@ -1,100 +0,0 @@ -# Microsoft Developer Studio Project File - Name="vorbisfile_static" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=vorbisfile_static - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "vorbisfile_static.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "vorbisfile_static.mak" CFG="vorbisfile_static - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "vorbisfile_static - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "vorbisfile_static - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=xicl6.exe -RSC=rc.exe - -!IF "$(CFG)" == "vorbisfile_static - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "VorbisFile_Static_Release" -# PROP Intermediate_Dir "VorbisFile_Static_Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /GB /MT /W3 /GX /O2 /Ob1 /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "_WIN32" /YX /FD /O3 /QaxK /Qsox- /Qip /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "vorbisfile_static - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "VorbisFile_Static_Debug" -# PROP Intermediate_Dir "VorbisFile_Static_Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\ogg\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"VorbisFile_Static_Debug\vorbisfile_static_d.lib" - -!ENDIF - -# Begin Target - -# Name "vorbisfile_static - Win32 Release" -# Name "vorbisfile_static - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\lib\vorbisfile.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\include\vorbis\vorbisfile.h -# End Source File -# End Group -# End Target -# End Project -- 2.39.5